本文整理汇总了PHP中shRouter类的典型用法代码示例。如果您正苦于以下问题:PHP shRouter类的具体用法?PHP shRouter怎么用?PHP shRouter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了shRouter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: array
/**
* Get a Extplugin object for the requested extension
* If no specific plugin is found, the default, generic
* public is used instead
*
* @param string $option the Joomla! component name. Should begin with "com_"
* @return object Sh404sefExtpluginBaseextplugin descendant
*/
public static function &getExtensionPlugin($option)
{
static $_plugins = array();
if (empty($option)) {
$option = 'default';
}
// plugin is cached, check if we already created
// the plugin for $option
if (empty($_plugins[$option])) {
// build the class name for this plugin
// autolaoder will find the appropriate file and load it
// if not loaded
if ($option !== 'default' && strpos($option, 'com_') !== 0) {
$option = 'com_' . $option;
}
$className = 'Sh404sefExtplugin' . ucfirst(strtolower($option));
// does this class exists?
$sefConfig =& shRouter::shGetConfig();
if (class_exists($className, $autoload = true)) {
// instantiate plugin
$_plugins[$option] = new $className($option, $sefConfig);
} else {
// else use generic plugin
$_plugins[$option] = new Sh404sefExtpluginDefault($option, $sefConfig);
}
}
// return cached plugin
return $_plugins[$option];
}
示例2: shGetNEWSPCategories
function shGetNEWSPCategories($catId, $option, $shLangName, &$cat, &$sec)
{
if (empty($catId)) {
return false;
}
static $catData = null;
$sefConfig =& shRouter::shGetConfig();
if (!is_null($catData[$shLangName][$catId])) {
// get DB
$database =& JFactory::getDBO();
$query = "SELECT c.id, c.section, c.title, s.id as sectionid, s.title as stitle" . "\n FROM #__categories as c, #__sections as s" . "\n WHERE " . "\n s.id = c.section" . "\n AND c.id = '" . $catId . "'";
$database->setQuery($query);
if (shTranslateUrl($option, $shLangName)) {
$categories = $database->loadObjectList();
} else {
$categories = $database->loadObjectList(false);
}
if (!empty($categories)) {
$sec = ($sefConfig->shNewsPInsertSecId ? $sectionId . $sefConfig->replacement : '') . $categories[0]->stitle;
// section
$cat = ($sefConfig->shNewsPInsertCatId ? $sectionId . $sefConfig->replacement : '') . $categories[0]->title;
// category
$catData[$shLangName][$catId]['cat'] = $cat;
$catData[$shLangName][$catId]['sec'] = $sec;
}
} else {
$cat = $catData[$shLangName][$catId]['cat'];
$sec = $catData[$shLangName][$catId]['sec'];
}
return !empty($cat);
}
示例3: dm_sef_get_category_array
function dm_sef_get_category_array($category_id, $option, $shLangName)
{
global $shMosConfig_locale;
$sefConfig =& shRouter::shGetConfig();
// get DB
$database =& JFactory::getDBO();
static $DMtree = null;
if (empty($tree[$shMosConfig_locale])) {
$q = "SELECT id, title, parent_id FROM #__categories";
// load them all in memory
$database->setQuery($q);
if (!shTranslateUrl($option, $shLangName)) {
// V 1.2.4.m
$DMtree[$shMosConfig_locale] = $database->loadObjectList('id', false);
} else {
$DMtree[$shMosConfig_locale] = $database->loadObjectList('id');
}
}
$title = array();
if ($sefConfig->shDMInsertCategories == 1) {
// only one category
$title[] = ($sefConfig->shDMInsertCategoryId ? $DMtree[$shMosConfig_locale][$category_id]->id . $sefConfig->replacement : '') . $DMtree[$shMosConfig_locale][$category_id]->title;
} else {
do {
// all categories and subcategories. We don't really need id, as path
$title[] = ($sefConfig->shDMInsertCategoryId ? $DMtree[$shMosConfig_locale][$category_id]->id . $sefConfig->replacement : '') . $DMtree[$shMosConfig_locale][$category_id]->title;
// will always be unique
$category_id = $DMtree[$shMosConfig_locale][$category_id]->parent_id;
} while ($category_id != 0);
}
return array_reverse($title);
}
示例4: vm_sef_get_category_title
function vm_sef_get_category_title(&$db, &$catDesc, $category_id, $option, $shLangName)
{
global $shMosConfig_locale;
$sefConfig =& shRouter::shGetConfig();
if (empty($category_id)) {
return '';
}
$q = "SELECT c.category_name, c.category_id, c.category_description, x.category_parent_id FROM #__vm_category AS c";
$q .= "\n LEFT JOIN #__vm_category_xref AS x ON c.category_id = x.category_child_id;";
$db->setQuery($q);
if (!shTranslateUrl($option, $shLangName)) {
// V 1.2.4.m
$tree = $db->loadObjectList('category_id', false);
} else {
$tree = $db->loadObjectList('category_id');
}
$catDesc = $tree[$category_id]->category_description;
$title = '';
$securityCounter = 0;
do {
// all categories and subcategories
$securityCounter++;
$title .= ($sefConfig->shInsertCategoryId ? $tree[$category_id]->category_id . $sefConfig->replacement : '') . $tree[$category_id]->category_name . ' | ';
$category_id = $tree[$category_id]->category_parent_id;
} while ($category_id != 0 && $securityCounter < 10);
if ($securityCounter >= 10) {
JError::raiseError(500, 'Unable to create SEF url for Virtuemart: could not find category with id : ' . $category_id);
}
return JString::rtrim($title, ' | ');
}
示例5: display
public function display($tpl = null)
{
// get model and update context with current
$model =& $this->getModel();
$context = $model->setContext($this->_context . '.' . $this->getLayout());
// display type: simple for very large sites/slow slq servers
$sefConfig =& shRouter::shGetConfig();
// if set for a slowServer, display simplified version of the url manager
$this->assign('slowServer', $sefConfig->slowServer);
// read data from model
$list =& $model->getList((object) array('layout' => $this->getLayout(), 'simpleUrlList' => $this->slowServer, 'slowServer' => $sefConfig->slowServer));
// and push it into the view for display
$this->assign('items', $list);
$this->assign('itemCount', count($this->items));
$this->assign('pagination', $model->getPagination((object) array('layout' => $this->getLayout(), 'simpleUrlList' => $this->slowServer, 'slowServer' => $sefConfig->slowServer)));
$options = $model->getDisplayOptions();
$this->assign('options', $options);
$this->assign('optionsSelect', $this->_makeOptionsSelect($options));
// add behaviors and styles as needed
$modalSelector = 'a.modalediturl';
$js = '\\function(){shAlreadySqueezed = false;if(parent.shReloadModal) {parent.window.location=\'' . $this->defaultRedirectUrl . '\';parent.shReloadModal=true}}';
$params = array('overlayOpacity' => 0, 'classWindow' => 'sh404sef-popup', 'classOverlay' => 'sh404sef-popup', 'onClose' => $js);
Sh404sefHelperHtml::modal($modalSelector, $params);
// build the toolbar
$toolbarMethod = '_makeToolbar' . ucfirst($this->getLayout());
if (is_callable(array($this, $toolbarMethod))) {
$this->{$toolbarMethod}($params);
}
// add our own css
JHtml::styleSheet('urls.css', Sh404sefHelperGeneral::getComponentUrl() . '/assets/css/');
// link to custom javascript
JHtml::script('list.js', Sh404sefHelperGeneral::getComponentUrl() . '/assets/js/');
// now display normally
parent::display($tpl);
}
示例6: _prepareControlPanelData
private function _prepareControlPanelData()
{
$sefConfig =& shRouter::shGetConfig();
$this->assign('sefConfig', $sefConfig);
// update information
$versionsInfo = Sh404sefHelperUpdates::getUpdatesInfos();
$this->assign('updates', $versionsInfo);
// url databases stats
$database =& JFactory::getDBO();
$sql = 'SELECT count(*) FROM #__redirection WHERE ';
$database->setQuery($sql . "`dateadd` > '0000-00-00' and `newurl` = '' ");
// 404
$Count404 = $database->loadResult();
$database->setQuery($sql . "`dateadd` > '0000-00-00' and `newurl` != '' ");
// custom
$customCount = $database->loadResult();
$database->setQuery($sql . "`dateadd` = '0000-00-00'");
// regular
$sefCount = $database->loadResult();
// calculate security stats
$default = empty($sefConfig->shSecLastUpdated) ? '- -' : '0';
$this->assign('sefCount', $sefCount);
$this->assign('Count404', $Count404);
$this->assign('customCount', $customCount);
}
示例7: _makeViewDashboard
/**
* Prepare and display the control panel
* dashboard, which is a simplified view
* of main analytics results
*
* @param string $tpl layout name
*/
private function _makeViewDashboard($tpl)
{
// get configuration object
$sefConfig =& shRouter::shGetConfig();
// push it into to the view
$this->assignRef('sefConfig', $sefConfig);
// get analytics data using helper, possibly from cache
$analyticsData = Sh404sefHelperAnalytics::getData($this->options);
// push analytics stats into view
$this->assign('analytics', $analyticsData);
}
示例8: shAkeebasubsMenuName
function shAkeebasubsMenuName($task, $Itemid, $option, $shLangName)
{
$sefConfig =& shRouter::shGetConfig();
$shArsDownloadName = shGetComponentPrefix($option);
if (empty($shArsDownloadName)) {
$shArsDownloadName = getMenuTitle($option, $task, $Itemid, null, $shLangName);
}
if (empty($shArsDownloadName) || $shArsDownloadName == '/') {
$shArsDownloadName = 'AkeebaReleaseSystem';
}
return str_replace('.', $sefConfig->replacement, $shArsDownloadName);
}
示例9:
protected static function &_getInstance($type = 'file')
{
static $_instance = null;
if (empty($_instance)) {
// get global config
$config =& shRouter::shGetConfig();
// instantiate object
$className = 'Sh404sefClass' . $type . 'cache';
$_instance = new $className($config);
}
return $_instance;
}
示例10: shGetContactCategory
function shGetContactCategory($id, $shLangName)
{
$sefConfig =& shRouter::shGetConfig();
if (empty($sefConfig->insertContactCat)) {
return '';
}
if (empty($id)) {
return '';
}
$cat = sef_404::getcategories($id, $shLangName, 'com_contact_details');
return $cat;
}
示例11: shSobi2GetItemName
function shSobi2GetItemName($id)
{
$database =& JFactory::getDBO();
if (empty($id)) {
return '';
}
$sefConfig = shRouter::shGetConfig();
$query = "SELECT `title` FROM `#__sobi2_item` WHERE (`itemid`={$id} AND `published` = 1)";
$database->setQuery($query);
$ret = (sh404SEF_SOBI2_PARAMS_INCLUDE_ENTRY_ID ? $id . $sefConfig->replacement : '') . html_entity_decode($database->loadResult());
// V 1.2.4.t added html_entit_decode
return $ret;
}
示例12: _doQuickControl
private function _doQuickControl($tpl)
{
// get configuration object
$sefConfig =& shRouter::shGetConfig();
// push it into to the view
$this->assignRef('sefConfig', $sefConfig);
// push any message
$error = $this->getError();
if (empty($error)) {
$noMsg = JRequest::getInt('noMsg', 0);
if (empty($noMsg)) {
$this->assign('message', JText16::_('COM_SH404SEF_ELEMENT_SAVED'));
}
}
parent::display($tpl);
}
示例13: _shDecodeSecLogLine
private function _shDecodeSecLogLine($line)
{
$sefConfig =& shRouter::shGetConfig();
if (preg_match('/[0-9]{2}\\-[0-9]{2}\\-[0-9]{2}/', $line)) {
// this is not header or comment line
$sefConfig->shSecTotalAttacks++;
$bits = explode("\t", $line);
switch (substr($bits[2], 0, 15)) {
case 'Flooding':
$sefConfig->shSecTotalFlooding++;
break;
case 'Caught by Honey':
$sefConfig->shSecTotalPHP++;
break;
case 'Honey Pot but u':
$sefConfig->shSecTotalPHPUserClicked++;
break;
case 'Var not numeric':
case 'Var not alpha-n':
case 'Var contains ou':
$sefConfig->shSecTotalStandardVars++;
break;
case 'Image file name':
$sefConfig->shSecTotalImgTxtCmd++;
break;
case '<script> tag in':
$sefConfig->shSecTotalScripts++;
break;
case 'Base 64 encoded':
$sefConfig->shSecTotalBase64++;
break;
case 'mosConfig_var i':
$sefConfig->shSecTotalConfigVars++;
break;
case 'Blacklisted IP':
$sefConfig->shSecTotalIPDenied++;
break;
case 'Blacklisted use':
$sefConfig->shSecTotalUserAgentDenied++;
break;
default:
// if not one of those, then it's a 404, don't count it as an attack
$sefConfig->shSecTotalAttacks--;
break;
}
}
}
示例14: shSimpleLogger
function shSimpleLogger($siteName, $basePath, $fileName, $isActive)
{
$sefConfig = shRouter::shGetConfig();
if (empty($isActive)) {
$this->isActive = 0;
return;
} else {
$this->isActive = 1;
}
$traceFileName = $basePath . $sefConfig->debugStartedAt . '.' . $fileName . '_' . str_replace('/', '_', str_replace('http://', '', $siteName)) . '.log';
// Create file
$fileIsThere = file_exists($traceFileName);
$sep = "\t";
if (!$fileIsThere) {
// create file
$fileHeader = 'sh404SEF trace file - created : ' . $this->logTime() . ' for ' . $siteName . "\n\n" . str_repeat('-', 25) . ' PHP Configuration ' . str_repeat('-', 25) . "\n\n";
$config = $this->parsePHPConfig();
$line = str_repeat('-', 69) . "\n\n";
// look for ob handlers, as we cannot use print_r from one (thanks Moovur !)
$handlers = ob_list_handlers();
$line .= "\nHandlers found : " . count($handlers);
if (!empty($handlers)) {
foreach ($handlers as $key => $handler) {
$line .= "\nHandler " . ($key + 1) . ' : ' . $handler;
}
}
$line .= "\n" . str_repeat('-', 69) . "\n\n";
} else {
$fileHeader = '';
}
$file = fopen($traceFileName, 'ab');
if ($file) {
if (!empty($fileHeader)) {
fWrite($file, $fileHeader);
fWrite($file, print_r($config, true));
fwrite($file, $line);
}
$this->logFile = $file;
} else {
$this->isActive = 0;
return;
}
}
示例15: updateShurls
public static function updateShurls()
{
$sefConfig =& shRouter::shGetConfig();
// set the short link tag
$shPageInfo =& shRouter::shPageInfo();
$shPageInfo->shURL = '';
if ($sefConfig->enablePageId && !$sefConfig->stopCreatingShurls) {
try {
jimport('joomla.utilities.string');
$nonSefUrl = JString::ltrim($shPageInfo->shCurrentPageNonSef, '/');
$nonSefUrl = shSortURL($nonSefUrl);
// remove tracking vars (Google Analytics)
$nonSefUrl = Sh404sefHelperGeneral::stripTrackingVarsFromNonSef($nonSefUrl);
// try to get the current shURL, if any
$shURL = Sh404sefHelperDb::selectResult('#__sh404sef_pageids', array('pageid'), array('newurl' => $nonSefUrl));
// if none, we may have to create one
if (empty($shURL)) {
$shURL = self::_createShurl($nonSefUrl);
}
// insert in head and header, if not empty
if (!empty($shURL)) {
$fullShURL = JString::ltrim($GLOBALS['shConfigLiveSite'], '/') . '/' . $shURL;
$document =& JFactory::getDocument();
if ($sefConfig->insertShortlinkTag) {
$document->addHeadLink($fullShURL, 'shortlink');
// also add header, especially for HEAD requests
JResponse::setHeader('Link', '<' . $fullShURL . '>; rel=shortlink', true);
}
if ($sefConfig->insertRevCanTag) {
$document->addHeadLink($fullShURL, 'canonical', 'rev', array('type' => 'text/html'));
}
if ($sefConfig->insertAltShorterTag) {
$document->addHeadLink($fullShURL, 'alternate shorter');
}
// store for reuse
$shPageInfo->shURL = $shURL;
}
} catch (Sh404sefExceptionDefault $e) {
}
}
}