function create($string, &$vars, &$shAppendString, $shLanguage, $shSaveString = '', &$originalUri) { $sefConfig =& shRouter::shGetConfig(); // get DB $database =& JFactory::getDBO(); _log('Calling sef404 create function with ' . $string); if ($sefConfig->shInsertGlobalItemidIfNone && !empty($GLOBALS['Itemid'])) { // V 1.2.4.t $shCurrentItemid = $GLOBALS['Itemid']; } else { $shCurrentItemid = null; } _log('CurrentItemid = ' . $shCurrentItemid); $index = str_replace($GLOBALS['shConfigLiveSite'], '', $_SERVER['PHP_SELF']); $base = dirname($index); $base .= $base == '/' ? '' : '/'; _log('Extracting $vars:', $vars); extract($vars); if (isset($title)) { // V 1.2.4.r : protect against components using 'title' as GET vars (com_jim for instance) $sh404SEF_title = $title; } // means that $sh404SEF_title has to be used in plugins or extensions $title = array(); // V 1.2.4.r // get extension plugin $extPlugin =& Sh404sefFactory::getExtensionPlugin($option); // which plugin file are we supposed to use? $extPluginPath = $extPlugin->getSefPluginPath($vars); $pluginType = $extPlugin->getPluginType(); // use Joomla router.php file in extension dir switch ($pluginType) { case Sh404sefClassBaseextplugin::TYPE_JOOMLA_ROUTER: // Load the plug-in file. _log('Loading component own router.php file'); $functionName = ucfirst(str_replace('com_', '', $option)) . 'BuildRoute'; if (!function_exists($functionName)) { include JPATH_ROOT . DS . 'components' . DS . $option . DS . 'router.php'; } $originalVars = empty($originalUri) ? $vars : $originalUri->getQuery($asArray = true); $title = $functionName($originalVars); //$title = shRemoveSlugs( $title, $removeWhat = 'removeId'); global $mainframe; $router =& $mainframe->getRouter(); $title = $router->_encodeSegments($title); // manage GET var lists ourselves, as Joomla router.php does not do it if (!empty($vars)) { // there are some unused GET vars, we must transfer them to our mechanism, so // that they are eventually appended to the sef url foreach ($vars as $k => $v) { switch ($k) { case 'option': case 'Itemid': shRemoveFromGETVarsList($k); break; default: // if variable has not been used in sef url, add it to list of variables to be // appended to the url as query string elements if (array_key_exists($k, $originalVars)) { shAddToGETVarsList($k, $v); } else { shRemoveFromGETVarsList($k); } break; } } } // special case for search component, as router.php encode the search word in the url // wa can't do that, as we are storing each url in the db if (isset($originalVars['option']) && $originalVars['option'] == 'com_search' && !empty($vars['searchword'])) { // router.php has encoded that in the url, we need to undo $title = array(); $originalVars['searchword'] = $vars['searchword']; shAddToGETVarsList('searchword', $vars['searchword']); if (!empty($vars['view'])) { $vars['view'] = $vars['view']; shAddToGETVarsList('view', $vars['view']); } } // handle menu items, having only a single Itemid in the url // (router.php will return an empty array in that case, even if we have restored // the full non-sef url, as we already did) /* * Build the application route */ $tmp = ''; if (empty($title) && isset($vars['Itemid']) && !empty($vars['Itemid'])) { $menu =& shRouter::shGetMenu(); $item = $menu->getItem($vars['Itemid']); if (is_object($item) && $vars['option'] == $item->component) { $title[] = $item->route; } } if (empty($title)) { //$title[] = 'comp'; $title[] = substr($vars['option'], 4); } // add user defined prefix $prefix = shGetComponentPrefix($option); if (!empty($prefix)) { array_unshift($title, $prefix); } // now process the resulting title string $string = shFinalizePlugin($string, $title, $shAppendString, '', isset($limit) ? @$limit : null, isset($limitstart) ? @$limitstart : null, isset($shLangName) ? @$shLangName : null, isset($showall) ? @$showall : null); break; // use sh404sef plugins, either in ext. dir or in sh404sef dir // use sh404sef plugins, either in ext. dir or in sh404sef dir case Sh404sefClassBaseextplugin::TYPE_SH404SEF_ROUTER: _log('Loading sh404SEF plugin in ' . $extPluginPath); include $extPluginPath; break; case Sh404sefClassBaseextplugin::TYPE_JOOMSEF_ROUTER: Sh404sefHelperExtplugins::loadJoomsefCompatLibs(); include_once $extPluginPath; $className = 'SefExt_' . $option; $plugin = new $className(); if (!shIsHomepage($string)) { // make sure the plugin does not try to calculate pagination $params =& SEFTools::GetExtParams('com_content'); $params->set('pagination', '1'); // ask plugin to build url $plugin->beforeCreate($originalUri); $result = $plugin->create($originalUri); $title = empty($result['title']) ? array() : $result['title']; $plugin->afterCreate($originalUri); // make sure we have a url if (empty($title) && isset($vars['Itemid']) && !empty($vars['Itemid'])) { $menu =& shRouter::shGetMenu(); $item = $menu->getItem($vars['Itemid']); if (is_object($item) && $vars['option'] == $item->component) { $title[] = $item->route; } } $prefix = shGetComponentPrefix($option); if (!empty($prefix)) { array_unshift($title, $prefix); } if (empty($title) && !shIsHomepage($string)) { $title[] = substr($vars['option'], 4); } list($usedVars, $ignore) = $plugin->getNonSefVars($result); if (!empty($ignore)) { $usedVars = array_merge($usedVars, $ignore); } } else { $string = ''; $title[] = '/'; $usedVars = array(); } // post process result to adjust to our workflow if (!empty($vars)) { foreach ($vars as $key => $value) { if (!array_key_exists($key, $usedVars)) { shRemoveFromGETVarsList($key); } } } // finalize url $string = shFinalizePlugin($string, $title, $shAppendString = '', $shItemidString = '', isset($limit) ? @$limit : null, isset($limitstart) ? @$limitstart : null, isset($shLangName) ? @$shLangName : null, isset($showall) ? @$showall : null); break; case Sh404sefClassBaseextplugin::TYPE_ACESEF_ROUTER: Sh404sefHelperExtplugins::loadAcesefCompatLibs(); include_once $extPluginPath; $className = 'AceSEF_' . $option; $plugin = new $className(); $plugin->AcesefConfig = AcesefFactory::getConfig(); // some plugins appear to not call the constructor parent, and so AcesefConfig is not set $tmp =& JPluginHelper::getPlugin('sh404sefextacesef', $option); $params = new JParameter($tmp->params); $plugin->setParams($params); $segments = array(); $do_sef = true; $metadata = array(); $item_limitstart = 0; $plugin->beforeBuild($originalUri); $originalVars = empty($originalUri) ? $vars : $originalUri->getQuery($asArray = true); $plugin->build($originalVars, $title, $do_sef, $metadata, $item_limitstart); $plugin->afterBuild($originalUri); $prefix = shGetComponentPrefix($option); if (empty($title) && isset($vars['Itemid']) && !empty($vars['Itemid'])) { $menu =& shRouter::shGetMenu(); $item = $menu->getItem($vars['Itemid']); if (is_object($item) && $vars['option'] == $item->component) { $title[] = $item->route; } } if (!empty($prefix)) { array_unshift($title, $prefix); } if (empty($title) && !shIsHomepage($string)) { $title[] = substr($vars['option'], 4); } // acesef plugin don't remove used vars from our GET var manager // we'll do it now. Vars used are those not present anymore in // $originalVars // they will be reappended to the SEF url by shFinalizePlugin $usedVars = array_diff($vars, $originalVars); if (!empty($usedVars)) { foreach ($usedVars as $key => $value) { shRemoveFromGETVarsList($key); } } // remove Itemid and option, as these are not unset by plugin shRemoveFromGETVarsList('Itemid'); shRemoveFromGETVarsList('option'); // finalize url $string = shFinalizePlugin($string, $title, $shAppendString = '', $shItemidString = '', isset($limit) ? @$limit : null, isset($limitstart) ? @$limitstart : null, isset($shLangName) ? @$shLangName : null, isset($showall) ? @$showall : null); break; default: _log('Falling back to sefGetLocation'); if (empty($sefConfig->defaultComponentStringList[str_replace('com_', '', $option)])) { $title[] = getMenuTitle($option, isset($task) ? @$task : null, null, null, $shLanguage); } else { $title[] = $sefConfig->defaultComponentStringList[str_replace('com_', '', $option)]; } if ($title[0] != '/') { $title[] = '/'; } // V 1.2.4.q getMenuTitle can now return '/' if (count($title) > 0) { // V 1.2.4.q use $shLanguage insted of $lang (lang name rather than lang code) $string = sef_404::sefGetLocation($string, $title, isset($task) ? @$task : null, isset($limit) ? @$limit : null, isset($limitstart) ? @$limitstart : null, isset($shLanguage) ? @$shLanguage : null); } break; } return $string; }
} // ------------------ standard plugin initialize function - don't change --------------------------- // ------------------ load language file - adjust as needed ---------------------------------------- $shLangIso = shLoadPluginLanguage('com_hotproperty', $shLangIso, '_HP_SEF_PROPERTY'); // ------------------ load language file - adjust as needed ---------------------------------------- /******************************************************** * Utility Functions ********************************************************/ # Include the config file require sh404SEF_ABS_PATH . 'administrator/components/com_hotproperty/config.hotproperty.php'; // V 1.2.4.s make sure user param prevails on guessed Itemid if (empty($Itemid) && $sefConfig->shInsertGlobalItemidIfNone && !empty($shCurrentItemid)) { $string .= '&Itemid=' . $shCurrentItemid; // append current Itemid $Itemid = $shCurrentItemid; shAddToGETVarsList('Itemid', $Itemid); // V 1.2.4.m } $task = isset($task) ? $task : null; $id = isset($id) ? $id : null; $agent_id = isset($agent_id) ? $agent_id : null; $limit = isset($limit) ? $limit : null; $limitstart = isset($limitstart) ? $limitstart : null; // $search // not processed, passed as GET var // $type // not processed, passed as GET var // $search_id // not processed, passed as GET var // shumisha : insert component name from menu // Configuration variable $shInsertHotPropName = true; // if yes, name is inserted $shHotPropName = shGetComponentPrefix($option);
// V 1.2.4.s shRemoveFromGETVarsList('vmcchk'); } if (!empty($limit)) { // V 1.2.4.t bug #167 shRemoveFromGETVarsList('limit'); } if (isset($limitstart)) { // V 1.2.4.t bug #167 //if (!empty($limitstart)) // V x shRemoveFromGETVarsList('limitstart'); } else { // no limistart, insert one with value 0 // to counter VM session-based storage of limitstart $limitstart = 0; shAddToGETVarsList('limitstart', $limitstart); shRemoveFromGETVarsList('limitstart'); } // start VM specific stuff $shVmCChk = false; $page = isset($page) ? @$page : null; $task = isset($task) ? @$task : null; $Itemid = isset($Itemid) ? @$Itemid : null; if (!empty($page)) { shRemoveFromGETVarsList('page'); } if (empty($keyword)) { // V 1.3.1 shRemoveFromGETVarsList('keyword'); } if (empty($orderby)) {
$tmpParam = str_replace('menu', $menu, $urlParam); $title[] = rtrim($tmpParam, '/'); $newUrl .= $tmpParam . '/'; // Internal to external parameter conversion } else { $bits = explode($_PARAM_CHAR, $urlParam); shAddToGETVarsList($bits[0], stripslashes(urldecode($bits[1]))); } } } shAddToGETVarsList('url', 'menu'); shRemoveFromGETVarsList('url'); } } if (isset($page)) { shAddToGETVarsList('page', $page); } // Home page - there's no query string if (isset($Itemid) && $Itemid != '') { shRemoveFromGETVarsList('Itemid'); } else { unset($shGETVars['Itemid']); } shRemoveFromGETVarsList('option'); shRemoveFromGETVarsList('lang'); unset($shGETVars['view']); // This param is not required for JReviews //shRemoveFromGETVarsList('section'); //shRemoveFromGETVarsList('dir'); // ------------------ standard plugin finalize function - don't change --------------------------- if ($dosef) {
function shComputeItemidString( $nonSefUrl, &$title, $shLangName) { $sefConfig = & shRouter::shGetConfig(); $shHomePageFlag = shIsHomepage ($nonSefUrl); if (!$shHomePageFlag) { // we may have found that this is homepage, so we msut return an empty string // do something about that Itemid thing if (!preg_match( '/Itemid=[0-9]+/i', $nonSefUrl)) { // if no Itemid in non-sef URL // V 1.2.4.t moved back here $shCurrentItemid = JRequest::getInt( 'Itemid'); if ($sefConfig->shInsertGlobalItemidIfNone && !empty($shCurrentItemid)) { $nonSefUrl .= '&Itemid='.$shCurrentItemid; ; // append current Itemid $Itemid = $shCurrentItemid; shAddToGETVarsList('Itemid', $Itemid); // V 1.2.4.m } $shItemidString = ''; if ($sefConfig->shAlwaysInsertItemid && (!empty($Itemid) || !empty($shCurrentItemid))) { $shItemidString = JText::_('COM_SH404SEF_ALWAYS_INSERT_ITEMID_PREFIX').$sefConfig->replacement .(empty($Itemid)? $shCurrentItemid :$Itemid); } } else { // if Itemid in non-sef URL $shItemidString = $sefConfig->shAlwaysInsertItemid ? JText::_('COM_SH404SEF_ALWAYS_INSERT_ITEMID_PREFIX').$sefConfig->replacement . shGetURLVar($nonSefUrl, 'Itemid') : ''; } } return $shItemidString; }
} $title = empty($title) ? $title : $pageInfo->router->encodeSegments($title); } // manage GET var lists ourselves, as Joomla router.php does not do it if (!empty($vars)) { // there are some unused GET vars, we must transfer them to our mechanism, so // that they are eventually appended to the sef url foreach ($vars as $k => $v) { switch ($k) { case 'option': case 'Itemid': case 'lang': shRemoveFromGETVarsList($k); break; default: // if variable has not been used in sef url, add it to list of variables to be // appended to the url as query string elements if (array_key_exists($k, $originalVars)) { shAddToGETVarsList($k, $v); } else { shRemoveFromGETVarsList($k); } break; } } } // ------------------ standard plugin finalize function - don't change --------------------------- if ($dosef) { $string = shFinalizePlugin($string, $title, $shAppendString, $shItemidString, isset($limit) ? $limit : null, isset($limitstart) ? $limitstart : null, isset($shLangName) ? $shLangName : null, isset($showall) ? $showall : null, $suppressPagination = true); } // ------------------ standard plugin finalize function - don't change ---------------------------
$title = array(); $shItemidString = ''; $dosef = shInitializePlugin($lang, $shLangName, $shLangIso, $option); if ($dosef == false) { return; } // ------------------ standard plugin initialize function - don't change --------------------------- // ------------------ load language file - adjust as needed ---------------------------------------- $shLangIso = shLoadPluginLanguage('com_letterman', $shLangIso, 'COM_SH404SEF_LETTERMAN'); // ------------------ load language file - adjust as needed ---------------------------------------- shRemoveFromGETVarsList('option'); if (!empty($lang)) { shRemoveFromGETVarsList('lang'); } if (!empty($sefConfig->shLMDefaultItemid)) { shAddToGETVarsList('Itemid', $sefConfig->shLMDefaultItemid); // V 1.2.4.q // we add then remove value to GET Vars, sounds weird, but Itemid value has been added to // non sef string in the process shRemoveFromGETVarsList('Itemid'); } if (!empty($Itemid)) { shRemoveFromGETVarsList('Itemid'); } $title[] = $sh_LANG[$shLangIso]['COM_SH404SEF_LETTERMAN']; $task = isset($task) ? @$task : null; switch ($task) { case 'confirm': $title[] = $sh_LANG[$shLangIso]['COM_SH404SEF_LM_CONFIRM']; shRemoveFromGETVarsList('task'); break;
$title[] = $sh_LANG[$shLangIso]['_SH404SEF_CB_TEAM_CREDITS']; shRemoveFromGETVarsList('task'); break; case '': if ($sefConfig->shInsertCBName) { $title[] = $shCBName; } // V 1.2.4.t $title[] = $sh_LANG[$shLangIso]['_SH404SEF_CB_MAIN_PAGE']; shRemoveFromGETVarsList('task'); break; default: $dosef = false; break; } // V 1.2.4.s : fix for CB not passing $limit value in some URL : breaks pagination if (isset($limitstart) && empty($limit)) { if (empty($ueConfig)) { $sh_CB_joomla_adminpath = sh404SEF_ABS_PATH . 'administrator'; $sh_CB_adminpath = $sh_CB_joomla_adminpath . '/components/com_comprofiler'; include $sh_CB_adminpath . "/ue_config.php"; } $limit = $ueConfig['num_per_page']; shAddToGETVarsList('limit', $limit); shRemoveFromGETVarsList('limit'); } // ------------------ standard plugin finalize function - don't change --------------------------- if ($dosef) { $string = shFinalizePlugin($string, $title, $shAppendString, $shItemidString, isset($limit) ? @$limit : null, isset($limitstart) ? @$limitstart : null, isset($shLangName) ? @$shLangName : null); } // ------------------ standard plugin finalize function - don't change ---------------------------
function create($string, &$vars, &$shAppendString, $shLanguage, $shSaveString = '', &$originalUri) { $sefConfig =& shRouter::shGetConfig(); // get DB $database =& JFactory::getDBO(); _log('Calling sef404 create function with ' . $string); if ($sefConfig->shInsertGlobalItemidIfNone && !empty($GLOBALS['Itemid'])) { // V 1.2.4.t $shCurrentItemid = $GLOBALS['Itemid']; } else { $shCurrentItemid = null; } $index = str_replace($GLOBALS['shConfigLiveSite'], '', $_SERVER['PHP_SELF']); $base = dirname($index); $base .= $base == '/' ? '' : '/'; extract($vars); if (isset($title)) { // V 1.2.4.r : protect against components using 'title' as GET vars (com_jim for instance) $sh404SEF_title = $title; } // means that $sh404SEF_title has to be used in plugins or extensions $title = array(); // V 1.2.4.r // Plug-in system. $shDoNotOverride = in_array(str_replace('com_', '', $option), $sefConfig->shDoNotOverrideOwnSef); // look first in component owndir for a joomla sef router.php file if (shFileExists(JPATH_ROOT . DS . 'components' . DS . $option . DS . 'router.php') && ($shDoNotOverride || !$shDoNotOverride && !shFileExists(sh404SEF_ABS_PATH . 'components/com_sh404sef/sef_ext/' . $option . '.php') && !shFileExists(JPATH_ROOT . DS . 'components/' . $option . '/sef_ext/' . $option . '.php'))) { // but we don't have a plugin // Load the plug-in file. _log('Loading component own router.php file'); $functionName = ucfirst(str_replace('com_', '', $option)) . 'BuildRoute'; if (!function_exists($functionName)) { include JPATH_ROOT . DS . 'components' . DS . $option . DS . 'router.php'; } $originalVars = empty($originalUri) ? $vars : $originalUri->getQuery($asArray = true); $title = $functionName($originalVars); //$title = shRemoveSlugs( $title, $removeWhat = 'removeId'); global $mainframe; $router =& $mainframe->getRouter(); $title = $router->_encodeSegments($title); // manage GET var lists ourselves, as Joomla router.php does not do it if (!empty($vars)) { // there are some unused GET vars, we must transfer them to our mechanism, so // that they are eventually appended to the sef url foreach ($vars as $k => $v) { switch ($k) { case 'option': case 'Itemid': shRemoveFromGETVarsList($k); break; default: // if variable has not been used in sef url, add it to list of variables to be // appended to the url as query string elements if (array_key_exists($k, $originalVars)) { shAddToGETVarsList($k, $v); } else { shRemoveFromGETVarsList($k); } break; } } } // special case for search component, as router.php encode the search word in the url // wa can't do that, as we are storing each url in the db if (isset($originalVars['option']) && $originalVars['option'] == 'com_search' && !empty($vars['searchword'])) { // router.php has encoded that in the url, we need to undo $title = array(); $originalVars['searchword'] = $vars['searchword']; shAddToGETVarsList('searchword', $vars['searchword']); if (!empty($vars['view'])) { $vars['view'] = $vars['view']; shAddToGETVarsList('view', $vars['view']); } } // handle menu items, having only a single Itemid in the url // (router.php will return an empty array in that case, even if we have restored // the full non-sef url, as we already did) /* * Build the application route */ $tmp = ''; if (empty($title) && isset($vars['Itemid']) && !empty($vars['Itemid'])) { $menu =& shRouter::shGetMenu(); $item = $menu->getItem($vars['Itemid']); if (is_object($item) && $vars['option'] == $item->component) { $title[] = $item->route; } } if (empty($title)) { //$title[] = 'comp'; $title[] = substr($vars['option'], 4); } // add user defined prefix $prefix = shGetComponentPrefix($option); if (!empty($prefix)) { array_unshift($title, $prefix); } // now process the resulting title string $string = shFinalizePlugin($string, $title, $shAppendString, '', isset($limit) ? @$limit : null, isset($limitstart) ? @$limitstart : null, isset($shLangName) ? @$shLangName : null, isset($showall) ? @$showall : null); } else { // look then in component own /sef_ext/ dir for a com_component_name.php plugin file if (shFileExists(sh404SEF_ABS_PATH . 'components/' . $option . '/sef_ext/' . $option . '.php')) { // Load the plug-in file. _log('Loading component own sh404SEF plugin'); include sh404SEF_ABS_PATH . 'components/' . $option . '/sef_ext/' . $option . '.php'; } else { if (shFileExists(sh404SEF_ABS_PATH . 'components/com_sh404sef/sef_ext/' . $option . '.php')) { _log('Loading built-in plugin'); include sh404SEF_ABS_PATH . 'components/com_sh404sef/sef_ext/' . $option . '.php'; } else { // no plugin found at all, use Joomla 1.0.x sef _log('Falling back to sefGetLocation'); if (empty($sefConfig->defaultComponentStringList[str_replace('com_', '', $option)])) { $title[] = getMenuTitle($option, isset($task) ? @$task : null, null, null, $shLanguage); } else { $title[] = $sefConfig->defaultComponentStringList[str_replace('com_', '', $option)]; } if ($title[0] != '/') { $title[] = '/'; } // V 1.2.4.q getMenuTitle can now return '/' if (count($title) > 0) { // V 1.2.4.q use $shLanguage insted of $lang (lang name rather than lang code) $string = sef_404::sefGetLocation($string, $title, isset($task) ? @$task : null, isset($limit) ? @$limit : null, isset($limitstart) ? @$limitstart : null, isset($shLanguage) ? @$shLanguage : null); } } } } return $string; }
function shBuildVizName($vizId, $params) { if ($params->get('fabrik_sef_format_viz') == 'param_id') { shAddToGETVarsList('id', $vizId); return $params->get('fabrik_sef_customtxt_viz', 'viz'); } if ($params->get('fabrik_sef_format_viz') == 'viz-id') { return $params->get('fabrik_sef_customtxt_viz', 'viz') . '-' . $vizId; } if ($params->get('fabrik_sef_format_viz') == 'id-viz') { return $vizId . '-' . $params->get('fabrik_sef_customtxt_viz', 'viz'); } $db =& JFactory::getDBO(); $sqlviz = 'SELECT label FROM #__fabrik_visualizations WHERE id = ' . (int) $vizId . ' LIMIT 1'; $db->setQuery($sqlviz); $vizLabel = $db->loadResult(); if (empty($shLangName)) { switch ($params->get('fabrik_sef_format_viz')) { default: case 'label-id': $rowLabel = @$vizLabel . '-' . $vizId; break; case 'id-label': $rowLabel = $vizId . '-' . @$vizLabel; break; case 'label_only': $rowLabel = @$vizLabel; break; } } return isset($rowLabel) ? $rowLabel : ''; }
global $sh_LANG, $sefConfig; $shLangName = ''; $shLangIso = ''; $title = array(); $shItemidString = ''; $dosef = shInitializePlugin( $lang, $shLangName, $shLangIso, $option); if ($dosef == false) return; // ------------------ standard plugin initialize function - don't change --------------------------- // do something about that Itemid thing if (eregi('Itemid=[0-9]+', $string) === false) { // if no Itemid in non-sef URL //global $Itemid; if ($sefConfig->shInsertGlobalItemidIfNone && !empty($shCurrentItemid)) { $string .= '&Itemid='.$shCurrentItemid; // append current Itemid $Itemid = $shCurrentItemid; shAddToGETVarsList('Itemid', $Itemid); // V 1.2.4.m } if ($sefConfig->shInsertTitleIfNoItemid) $title[] = $sefConfig->shDefaultMenuItemName ? $sefConfig->shDefaultMenuItemName : getMenuTitle($option, (isset($task) ? @$task : null), $shCurrentItemid, null, $shLangName ); $shItemidString = $sefConfig->shAlwaysInsertItemid ? _COM_SEF_SH_ALWAYS_INSERT_ITEMID_PREFIX.$sefConfig->replacement.$shCurrentItemid : ''; } else { // if Itemid in non-sef URL $shItemidString = $sefConfig->shAlwaysInsertItemid ? _COM_SEF_SH_ALWAYS_INSERT_ITEMID_PREFIX.$sefConfig->replacement.$Itemid : ''; } //$task = isset($task) ? @$task : null; $ff_form = JRequest::getInt('ff_form',0); $ff_name = JRequest::getVar('ff_name','');
// Segments if (false === strpos($urlParam, $_PARAM_CHAR)) { $tmpParam = str_replace('menu', $menu, $urlParam); $title[] = rtrim($tmpParam, '/'); $newUrl .= $tmpParam . '/'; // Internal to external parameter conversion } else { $bits = explode($_PARAM_CHAR, $urlParam); shAddToGETVarsList($bits[0], stripslashes(urldecode($bits[1]))); } } } } } // Trick to force the new url to be saved to the database shAddToGETVarsList('url', stripslashes(rtrim($newUrl, '/'))); // this will establish the new value of $url shRemoveFromGETVarsList('url'); // remove from var list as url is processed, so that the new value of $url is stored in the DB // Home page - there's no query string if (!isset($url) || isset($url) && !strpos($url, 'menu')) { shRemoveFromGETVarsList('Itemid'); } shRemoveFromGETVarsList('option'); shRemoveFromGETVarsList('lang'); //shRemoveFromGETVarsList('section'); //shRemoveFromGETVarsList('dir'); // ------------------ standard plugin finalize function - don't change --------------------------- if ($dosef) { $string = shFinalizePlugin($string, $title, $shAppendString, $shItemidString, isset($limit) ? @$limit : null, isset($limitstart) ? @$limitstart : null, isset($shLangName) ? @$shLangName : null); }
break; // do=edit&id=1&catid=2 // do=edit&id=1&catid=2 case 'edit': $title[] = $sh_LANG[$shLangIso]['COM_SH404SEF_KU_EDIT']; shRemoveFromGETVarsList('do'); break; case 'newFromBot': // V 1.2.4.s // V 1.2.4.s case 'newfrombot': $title[] = $sh_LANG[$shLangIso]['COM_SH404SEF_KU_NEW_FROM_BOT']; // workaround for discuss bot/ FB 1.0.0 and 1.0.1 bug if ($do != 'newFromBot') { $do = 'newFromBot'; shAddToGETVarsList('do', $do); } shRemoveFromGETVarsList('do'); break; // do=sticky&id=1&catid=2 // do=sticky&id=1&catid=2 case 'sticky': $dosef = false; break; // do=lock&id=1&catid=2 // do=lock&id=1&catid=2 case 'lock': $dosef = false; break; default: // if creating new post, data is passed through POST, so other variables than func is not available