first commit
This commit is contained in:
74
components/com_jce/editor/libraries/classes/linkhelper.php
Normal file
74
components/com_jce/editor/libraries/classes/linkhelper.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (c) 2009-2022 Ryan Demmer. All rights reserved
|
||||
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
* JCE 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
|
||||
*/
|
||||
defined('JPATH_PLATFORM') or die('RESTRICTED');
|
||||
|
||||
abstract class WFLinkHelper
|
||||
{
|
||||
/**
|
||||
* Translates an internal Joomla URL to a humanly readible URL.
|
||||
*
|
||||
* @param string $url Absolute or Relative URI to Joomla resource
|
||||
*
|
||||
* @return The translated humanly readible URL
|
||||
*/
|
||||
public static function route($url)
|
||||
{
|
||||
$app = Joomla\CMS\Application\CMSApplication::getInstance('site');
|
||||
$router = $app->getRouter('site');
|
||||
|
||||
if (!$router) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$uri = $router->build($url);
|
||||
$url = $uri->toString();
|
||||
$url = str_replace('/administrator/', '/', $url);
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
public static function removeItemId($url)
|
||||
{
|
||||
$url = preg_replace('#&Itemid=[0-9]+#', '', $url);
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
public static function removeHomeItemId($url) {
|
||||
if (strpos($url, 'Itemid') === false) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$parsed = parse_url($url, PHP_URL_QUERY);
|
||||
$parsed = str_replace('&', '&', $parsed);
|
||||
|
||||
parse_str($parsed, $vars);
|
||||
|
||||
if (!array_key_exists('Itemid', $vars)) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
// get menus
|
||||
$menus = JFactory::getApplication()->getMenu('site');
|
||||
// get "default" menu
|
||||
$default = $menus->getDefault();
|
||||
|
||||
// Itemid is unique
|
||||
if ($default->id != $vars['Itemid']) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
// remove "default" Itemid
|
||||
$url = self::removeItemId($url);
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user