* Invision Power Services * IP.Board v3.4.6 * IP.Content custom bbcode * Last Updated: $Date: 2012-06-01 13:11:08 -0400 (Fri, 01 Jun 2012) $ * * * @author $author$ * @copyright (c) 2001 - 2009 Invision Power Services, Inc. * @license http://www.invisionpower.com/company/standards.php#license * @package IP.Content * @link http://www.invisionpower.com * @version $Rev: 10855 $ */ if( !class_exists('bbcode_parent_main_class') ) { require_once( IPS_ROOT_PATH . 'sources/classes/text/parser/bbcode/defaults.php' );/*noLibHook*/ } class bbcode_plugin_page extends bbcode_parent_main_class { /** * Constructor * * @access public * @param object Registry object * @param object Parent * @return @e void */ public function __construct( ipsRegistry $registry, $_parent=null ) { $this->currentBbcode = 'page'; parent::__construct( $registry, $_parent ); } /** * Do the actual replacement * * @access protected * @param string $txt Parsed text from database to be edited * @return string BBCode content, ready for editing */ protected function _replaceText( $txt ) { //----------------------------------------- // INIT //----------------------------------------- $tag = '[' . $this->currentBbcode . ']'; $_curPage = $this->request['pg'] ? $this->request['pg'] : 1; $_ttlPages = 1; $_ttlPages += substr_count( $txt, $tag ); if( $this->caches['pagination_url'] ) { $_reconstructed = rtrim( $this->caches['pagination_url'], '/' ); } else { $_requestUri = rtrim( $_SERVER['REQUEST_URI'] ? $_SERVER['REQUEST_URI'] : @getenv('REQUEST_URI'), '/' ); $_reconstructed = ( ( $_SERVER['HTTPS'] and $_SERVER['HTTPS'] != 'off' ) ? "https://" : "http://" ) . $_SERVER['HTTP_HOST'] . ( substr( $_requestUri, 0, 1 ) == '/' ? $_requestUri : '/' . $_requestUri ); } //----------------------------------------- // Get rid of existing pg= params //----------------------------------------- $_reconstructed = preg_replace( "/pg=(\d+)/", '', $_reconstructed ); $_reconstructed = rtrim($_reconstructed, '?&' ); $_reconstructed = str_replace( '&', '&', $_reconstructed ); //----------------------------------------- // Add on the parameter separator //----------------------------------------- if( $this->settings['url_type'] == 'query_string' ) { if( substr_count( $_reconstructed, '?' ) > 1 ) { $_reconstructed .= '&'; } else { $_reconstructed .= '?'; } } else { if( strpos( $_reconstructed, '?' ) !== false ) { $_reconstructed .= '&'; } else { $_reconstructed .= '?'; } } //----------------------------------------- // If no pages, no need to have links //----------------------------------------- if( $_ttlPages < 2 ) { return $txt; } //----------------------------------------- // Do replacements //----------------------------------------- if( !$_curPage ) { $txt = substr( $txt, 0, strpos( $txt, $tag ) ); } else { $bits = explode( $tag, $txt ); $txt = $bits[ $_curPage - 1 ]; } //----------------------------------------- // Clean up leading
tags //----------------------------------------- $txt = trim($txt); if( substr( $txt, 0, 15 ) == '~~~~~_____~~~~~' ) { $txt = substr( $txt, 15 ); } //----------------------------------------- // And start generating output //----------------------------------------- $txt .= $this->registry->output->getTemplate('ccs_global')->articlePages( $_ttlPages, $_curPage, $_reconstructed ); return $txt; } }