Вход Регистрация
Файл: admin/sources/classes/share/plugins/blogthis.php
Строк: 102
<?php
/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.3.3
 * Blog This plug in for share links library.
 *
 * Created by Mark Wade
 * Last Updated: $Date: 2011-05-05 12:03:47 +0100 (Thu, 05 May 2011) $
 * </pre>
 *
 * @author         $Author: ips_terabyte $
 * @copyright    © 2011 Invision Power Services, Inc.
 * @license        http://www.invisionpower.com/company/standards.php#license
 * @package        IP.Board
 * @link        http://www.invisionpower.com
 * @version        $Rev: 8644 $
 *
 */

class sl_blogthis
{
    
/**
     * Requires a permission check
     *
     * @access    public
     * @param    array        Data array
     * @return    boolean
     */
    
public function requiresPermissionCheck$array )
    {
        return 
true;
    }
    
    
/**
     * Share
     *
     * @access    private
     * @param    string        Plug in
     */
    
public function share$title$url )
    {
        
/* Init vars */
        
$appChosen NULL;
        
$furlRegex NULL;
        
        
/* Which app should we load? */
        
if ( !empty( ipsRegistry::$request['overrideApp'] ) )
        {
            
$appChosen trim(ipsRegistry::$request['overrideApp']);
        }
        
/* If friendly URLs are off, this is really easy */
        
elseif ( empty( ipsRegistry::$settings['use_friendly_urls'] ) )
        {
            
$urlParsed parse_url$url );
            
parse_str$urlParsed['query'], $check );
            
            if ( empty( 
$check['app'] ) )
            {
                
$classToLoad IPSLib::loadLibraryIPS_ROOT_PATH 'sources/classes/share/links.php''share_links' );
                
$share = new $classToLoadipsRegistry::instance(), 'blogthis' );
                
                
$url array_merge$check$share->deconstructUrl$url ) );
                
$appChosen $url['data_app'];
            }
            else
            {
                
$url       $check;
                
$appChosen $check['app'];
            }
        }
        
/* It's not that easy.. Work out what app this URL belongs to */
        
else
        {
            
$url str_replaceipsRegistry::$settings['_original_base_url'], ''$url );
            
$url str_replace( array( '/index.php/''/index.php?/' ), '/'$url );
            
            foreach ( 
ipsRegistry::$applications as $app )
            {
                
$_file IPSLib::getAppDir$app['app_directory'] ) . '/extensions/furlTemplates.php';
                
                if ( 
is_file$_file ) )
                {
                    
$_SEOTEMPLATES = array();
                    require( 
$_file );/*noLibHook*/
                    
                    
foreach ( $_SEOTEMPLATES as $k => $data )
                    {
                        if ( 
preg_match$data['in']['regex'], $url ) )
                        {
                            
$appChosen $app['app_directory'];
                            
$furlRegex $data['in']['regex'];
                            break 
2;
                        }
                    }
                }
            }
        }
        
        
/* Got a blogthis extension file for it? */
        
if ( ! empty( $appChosen ) && IPSLib::appIsInstalled$appChosen ) )
        {
            
$file '';
            
            if ( 
is_fileIPSLib::getAppDir$appChosen ) . '/extensions/blogthis/bt_'$appChosen .'.php' ) )
            {
                
$file IPSLib::getAppDir$appChosen ) . '/extensions/blogthis/bt_'$appChosen .'.php';
            }
            elseif ( 
is_fileIPSLib::getAppDir'blog' ) . '/extensions/blogthis/bt_'$appChosen .'.php' ) )
            {
                
$file IPSLib::getAppDir'blog' ) . '/extensions/blogthis/bt_'$appChosen .'.php';
            }
            
            if ( 
$file )
            {
                require_once( 
IPSLib::getAppDir'blog' ) . '/sources/classes/blogthis/bt.php' );/*noLibHook*/
                
$className IPSLib::loadLibrary$file'bt_' $appChosen$appChosen );
                
$class = new $classNameipsRegistry::instance(), $appChosen );
                
                if ( 
method_exists$class'getIds' ) )
                {
                    
$ids $class->getIds$url$furlRegex );
                    
$idString '';
                    
                    foreach ( 
$ids as $k => $v )
                    {
                        
$idString .= '&id' intval$k ) . '=' urlencode$v );
                    }
                    
                    
ipsRegistry::getClass('output')->silentRedirectipsRegistry::getClass('output')->buildUrl"app=blog&module=post&section=post&do=showform&btapp={$appChosen}{$idString}) );
                }
            }
        }
        
        
/* Still here? Use a generic return then */
        
$encodedTitle base64_encode$title );
        
$encodedUrl   base64_encode$url );
        
ipsRegistry::getClass('output')->silentRedirectipsRegistry::getClass('output')->buildUrl"app=blog&module=post&section=post&do=showform&btapp=0&title={$encodedTitle}&url={$encodedUrl}) );
    }
}
Онлайн: 0
Реклама