Version 3.3.4
This commit is contained in:
1 parent
78706903a2
commit
fb6b5baabc
2206 files changed
+409828
-382984
No files matched your search
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
/**
|
||||
* <pre>
|
||||
* Invision Power Services
|
||||
* IP.Board v3.3.4
|
||||
* 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::loadLibrary( IPS_ROOT_PATH . 'sources/classes/share/links.php', 'share_links' );
|
||||
$share = new $classToLoad( ipsRegistry::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_replace( ipsRegistry::$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_file( IPSLib::getAppDir( $appChosen ) . '/extensions/blogthis/bt_'. $appChosen .'.php' ) )
|
||||
{
|
||||
$file = IPSLib::getAppDir( $appChosen ) . '/extensions/blogthis/bt_'. $appChosen .'.php';
|
||||
}
|
||||
elseif ( is_file( IPSLib::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 $className( ipsRegistry::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')->silentRedirect( ipsRegistry::getClass('output')->buildUrl( "app=blog&module=post§ion=post&do=showform&btapp={$appChosen}{$idString}" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Still here? Use a generic return then */
|
||||
$encodedTitle = base64_encode( $title );
|
||||
$encodedUrl = base64_encode( $url );
|
||||
ipsRegistry::getClass('output')->silentRedirect( ipsRegistry::getClass('output')->buildUrl( "app=blog&module=post§ion=post&do=showform&btapp=0&title={$encodedTitle}&url={$encodedUrl}" ) );
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user