uawdijnntqw1x1x1
IP : 216.73.216.155
Hostname : vm5018.vps.agava.net
Kernel : Linux vm5018.vps.agava.net 3.10.0-1127.8.2.vz7.151.14 #1 SMP Tue Jun 9 12:58:54 MSK 2020 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
var
/
www
/
iplanru
/
data
/
.
/
mod-tmp
/
..
/
www
/
.
/
iplan.5018.vps.agava.net
/
components
/
com_sef
/
sef.php
/
/
<?php /** * SEF component for Joomla! * * @package JoomSEF * @version 4.7.8 * @author ARTIO s.r.o., http://www.artio.net * @copyright Copyright (C) 2020 ARTIO s.r.o. * @license GNU/GPLv3 http://www.artio.net/license/gnu-general-public-license */ // no direct access defined('_JEXEC') or die; require_once(JPATH_ROOT.'/components/com_sef/sef.router.php'); require_once(JPATH_ADMINISTRATOR.'/components/com_sef/controller.php'); class JoomSEFController extends SEFController { function display($cachable = false, $urlparams = false) { $this->setRedirect(JURI::root()); } function updateNext() { $db = JFactory::getDBO(); // Load URLs to update $query = "SELECT `id`, `sefurl`, `origurl`, `Itemid` FROM `#__sefurls` WHERE `dateadd` = '0000-00-00' AND `locked` = '0' AND `flag` = '1' LIMIT 25"; $db->setQuery($query); $rows = $db->loadObjectList(); // Check that there's anything to update if( is_null($rows) || count($rows) == 0 ) { // Done echo json_encode(array('type'=>'completed','updated'=>0)); jexit(); } // OK, we've got some data, let's update them // First, we need to delete the URLs to be updated $ids = array(); $count = count($rows); for ($i = 0; $i < $count; $i++) { $ids[] = (int)$rows[$i]->id; } $ids = implode(',', $ids); $query = "DELETE FROM `#__sefurls` WHERE `id` IN ({$ids})"; $db->setQuery($query); if (!$db->query()) { echo json_encode(array('type'=>'error','msg'=>$db->stderr(true))); jexit(); } // Suppress all the normal output ob_start(); // Loop through URLs and update them one by one $mainframe = JFactory::getApplication(); $router = $mainframe->getRouter(); $sefRouter = new JRouterJoomsef(); for( $i = 0; $i < $count; $i++ ) { $row =& $rows[$i]; $url = $row->origurl; $oldSef = $row->sefurl; if( !empty($row->Itemid) ) { if( strpos($url, '?') !== false ) { $url .= '&'; } else { $url .= '?'; } $url .= 'Itemid='.$row->Itemid; } $oldUri = new JURI($url); $newSefUri = $sefRouter->buildSef($router, $oldUri); // JURI::toString() returns bad results when used with some UTF characters! $newSefUrl = JoomSefUri::getUri($newSefUri); $newSef = ltrim(str_replace(JURI::root(), '', $newSefUrl), '/'); // If the SEF URL changed, we need to add it to 301 redirection table if( $oldSef != $newSef ) { // Check that the redirect does not already exist $query = "SELECT `id` FROM `#__sefmoved` WHERE `old` = ".$db->quote($oldSef)." AND `new` = ".$db->quote($newSef)." LIMIT 1"; $db->setQuery($query); $id = $db->loadResult(); if( !$id ) { $query = "INSERT INTO `#__sefmoved` (`old`, `new`) VALUES (".$db->quote($oldSef).", ".$db->quote($newSef).")"; $db->setQuery($query); if(!$db->query()) { echo json_encode(array('type'=>'error','msg'=>$db->stderr(true))); jexit(); } } } } ob_end_clean(); echo json_encode(array('type'=>'updatestep','updated'=>$count)); jexit(); } function updateMetaNext() { $db = JFactory::getDBO(); $sefConfig = SEFConfig::getConfig(); // Load all the URLs $query = "SELECT `id`, `sefurl`, `origurl`, `Itemid` FROM `#__sefurls` WHERE `locked` = '0' AND `flag` = '1' LIMIT 25"; $db->setQuery($query); $rows = $db->loadObjectList(); // Check that there's anything to update if( is_null($rows) || count($rows) == 0 ) { // Done echo json_encode(array('type'=>'completed','updated'=>0)); jexit(); } // OK, we've got some data, let's update them $count = count($rows); // Suppress all the normal output ob_start(); // Loop through URLs and update them one by one for( $i = 0; $i < $count; $i++ ) { $row =& $rows[$i]; $url = $row->origurl; if( !empty($row->Itemid) ) { if( strpos($url, '?') !== false ) { $url .= '&'; } else { $url .= '?'; } $url .= 'Itemid='.$row->Itemid; } $uri = new JURI($url); // Check if we have an extension for this URL $updated = false; $option = $uri->getVar('option'); if (!empty($option)) { $file = JPATH_ROOT.'/components/com_sef/sef_ext/'.$option.'.php'; $class = 'SefExt_'.$option; if (!class_exists($class) && file_exists($file)) { require($file); } if (class_exists($class)) { $ext = new $class(); $metadata = $ext->generateMeta($uri); if (is_array($metadata) && count($metadata) > 0) { $metas = ''; foreach($metadata as $metakey => $metaval) { $metas .= ", `$metakey` = ".$db->Quote($metaval,true); } $query = "UPDATE `#__sefurls` SET `flag` = '0'".$metas." WHERE `id` = ".(int)$row->id; $db->setQuery($query); if(!$db->query()) { echo json_encode(array('type'=>'error','msg'=>$db->stderr(true))); jexit(); } $updated = true; } } } if ($updated==false) { // Remove flag $query = "UPDATE `#__sefurls` SET `flag` = '0' WHERE `id` = ".(int)$row->id; $db->setQuery($query); if(!$db->query()) { echo json_encode(array('type'=>'error','msg'=>$db->stderr(true))); jexit(); } } } ob_end_clean(); echo json_encode(array('type'=>'updatestep','updated'=>$count)); jexit(); } } $cmd = JRequest::getCmd('controller'); $classname = 'JoomSEFController'.$cmd; if (!class_exists($classname)) { $file = JPATH_COMPONENT.'/controllers/'.$cmd.'.php'; if (file_exists($file)) { require_once($file); } else { $classname = 'JoomSEFController'; } if (!class_exists($classname)) { JError::raiseError(403, JText::_('Access Forbidden')); } } $controller = new $classname(); $controller->execute(JRequest::getCmd('task')); $controller->redirect();
/var/www/iplanru/data/./mod-tmp/../www/./iplan.5018.vps.agava.net/components/com_sef/sef.php