Current Path : /var/www/html/clients/kampol.e-nk.ru/OLD/mambots/content/ |
Current File : /var/www/html/clients/kampol.e-nk.ru/OLD/mambots/content/mossef.php |
<?php /** * @version $Id: mossef.php 4859 2006-08-31 13:55:47Z predator $ * @package Joomla * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ // no direct access defined( '_VALID_MOS' ) or die( 'Äîñòóï çàïðåùåí' ); $_MAMBOTS->registerFunction( 'onPrepareContent', 'botMosSef' ); /** * Converting internal relative links to SEF URLs * * <b>Usage:</b> * <code><a href="...relative link..."></code> */ function botMosSef( $published, &$row, &$params, $page=0 ) { global $mosConfig_sef; // check whether mambot has been unpublished if ( !$published ) { return true; } // check whether SEF is off if ( !$mosConfig_sef ) { return true; } // simple performance check to determine whether bot should process further if ( strpos( $row->text, 'href="' ) === false ) { return true; } // define the regular expression for the bot $regex = "#href=\"(.*?)\"#s"; // perform the replacement $row->text = preg_replace_callback( $regex, 'botMosSef_replacer', $row->text ); return true; } /** * Replaces the matched tags * @param array An array of matches (see preg_match_all) * @return string */ function botMosSef_replacer( &$matches ) { // original text that might be replaced $original = 'href="'. $matches[1] .'"'; // array list of non http/https URL schemes $url_schemes = explode( ', ', _URL_SCHEMES ); foreach ( $url_schemes as $url ) { // disable bot from being applied to specific URL Scheme tag if ( strpos( $matches[1], $url ) !== false ) { return $original; } } if ( strpos( $matches[1], 'index.php?option' ) !== false ) { // links containing 'index.php?option // convert url to SEF link $link = sefRelToAbs( $matches[1] ); // reconstruct html output $replace = 'href="'. $link .'"'; return $replace; } else if ( strpos( $matches[1], '#' ) === 0 ) { // special handling for anchor only links $url = $_SERVER['REQUEST_URI']; $url = explode( '?option', $url ); if (is_array($url) && isset($url[1])) { $link = 'index.php?option'. $url[1] ; // convert url to SEF link $link = sefRelToAbs( $link ) . $matches[1]; } else { $link = $matches[1]; // convert url to SEF link $link = sefRelToAbs( $link ); } // reconstruct html output $replace = 'href="'. $link .'"'; return $replace; } else { return $original; } } ?>