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
/
www
/
.
/
i-plan.ru
/
administrator
/
components
/
com_sef
/
controllers
/
..
/
install.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('Restricted access'); jimport('joomla.installer.installer'); jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); jimport('joomla.application.helper'); class com_sefInstallerScript { function preflight($action, $parent) { // Check minimum Joomla version $jversion = new JVersion(); // Get minimum Joomla version from XML's root element version attribute $xml = $parent->get("manifest"); $minVersion = (string) $xml['version']; if (!$jversion->isCompatible($minVersion)) { JError::raiseWarning('100', JText::sprintf('COM_SEF_ERR_MIN_JOOMLA_VERSION', $minVersion)); return false; } if($action=='update') { if(JFile::exists(JPATH_ADMINISTRATOR.'/components/com_sef/configuration.php')) { $tmp_path=JFactory::getApplication()->getCfg('tmp_path'); JFile::copy(JPATH_ADMINISTRATOR.'/components/com_sef/configuration.php',$tmp_path.'/joomsef-configuration.php'); } } $db = JFactory::getDBO(); $query = "SELECT extension_id FROM #__extensions WHERE name=".$db->quote('com_sef'); $db->setQuery($query); $extId = $db->loadResult(); if (!is_null($extId)) { $query = "SELECT COUNT(*) FROM #__schemas WHERE extension_id = ".$db->quote($extId); $db->setQuery($query); $cnt = $db->loadResult(); if ($cnt == 0) { $query = "INSERT INTO #__schemas SET version_id = ".$db->quote('4.1.0').", extension_id = ".$db->quote($extId); $db->setQuery($query); $db->query(); } } } public function postflight($action, $installer) { if ($action == 'install') { $db = JFactory::getDBO(); // Get component ID $db->setQuery("SELECT `extension_id` FROM `#__extensions` WHERE `type` = 'component' AND `element` = 'com_sef'"); $id = $db->loadResult(); if (!$id) { return; } // Fix separator links $db->setQuery("UPDATE `#__menu` SET `link` = '#' WHERE `type` = 'component' AND `img` = 'separator' AND `component_id` = '{$id}'"); $db->query(); } if($action=='update') { $tmp_path=JFactory::getApplication()->getCfg('tmp_path'); if(JFile::exists($tmp_path.'/joomsef-configuration.php')) { JFile::copy($tmp_path.'/joomsef-configuration.php',JPATH_ADMINISTRATOR.'/components/com_sef/configuration.php'); JFile::delete($tmp_path.'/joomsef-configuration.php'); } } } private function getElement($xml) { if(isset($xml->files)) { if (count($xml->files->children())) { foreach ($xml->files->children() as $file) { if ((string)$file->attributes()->sef_ext) { $element = (string)$file->attributes()->sef_ext; if(substr($element,0,13)!='ext_joomsef4_') { $element='ext_joomsef4_'.$element; } return $element; } } } } return ''; } function installPlugins() { $db=JFactory::getDBO(); // Install JoomSEF plugins $plugins=array(); $plugins['content']=array('joomsef'); $plugins['extension']=array('joomsefinstall'); //$plugins['system']=array('joomsef','joomsefgoogle','joomseflang','joomsefurl'); $plugins['system']=array('joomsef','joomsefgoogle','joomseflang'); foreach($plugins as $type=>$items) { foreach($items as $item) { $src = JPATH_ADMINISTRATOR.'/components/com_sef/plugin/'.$type.'/'.$item.'/'; $dest = JPATH_ROOT.'/plugins/'.$type.'/'.$item.'/'; $res = JFolder::create($dest); $res = $res && JFile::copy($src.$item.'.php', $dest.$item.'.php'); $res = $res && JFile::copy($src.$item.'.xml', $dest.$item.'.xml'); $query="SELECT COUNT(*) \n"; $query.="FROM #__extensions \n"; $query.="WHERE type=".$db->quote('plugin')." AND element=".$db->quote($item)." AND folder=".$db->quote($type); $db->setQuery($query); $cnt=$db->loadResult(); $min = null; if ($type == 'system' && $item == 'joomsef') { $db->setQuery("SELECT MIN(`ordering`) FROM `#__extensions` WHERE `type` = 'plugin' AND `folder` = 'system'"); $min = $db->loadResult(); $min -= 10; $min = min(-10, $min); } $xml=JApplicationHelper::parseXMLInstallFile($src.$item.'.xml'); $cache=json_encode($xml); if($cnt==0) { $db->setQuery("INSERT INTO `#__extensions` (name, type, element, folder, client_id, enabled, access, protected, manifest_cache, params, custom_data, system_data, checked_out, checked_out_time, ordering, state) VALUES ('".$xml["name"]."', 'plugin', '".$item."', '".$type."', 0, 1, 1, 0, '".$cache."', '{}', '', '', 0, '0000-00-00 00:00:00', '".(isset($min)?$min:'')."', 0)"); $res = $res && $db->query(); } else { $query="UPDATE #__extensions SET manifest_cache=".$db->quote($cache)." \n"; $query.="WHERE name=".$db->quote($xml["name"])." AND element=".$db->quote('plugin')." AND folder=".$db->quote($item); $db->setQuery($query); $res = $res && $db->query(); } if (!$res) { JError::raiseWarning(100, JText::_('COM_SEF_WARNING_PLUGIN_NOT_INSTALLED').': '.$src); } } } } public function install($installer) { require_once JPATH_ADMINISTRATOR.'/components/com_sef/classes/seftools.php'; $db = JFactory::getDBO(); // Create the default 404 page if it doesn't already exist $db->setQuery("SELECT `id` FROM `#__content` WHERE `title` = '404'"); $id = $db->loadResult(); if (empty($id)) { // Get user ID $user = JFactory::getUser(); $introtext = "<h1>404: Not Found</h1>\n<h2>Sorry, but the content you requested could not be found</h2>"; $sql = 'INSERT INTO #__content (title, alias, introtext, `fulltext`, state, catid, created, created_by, publish_up, images, urls, ordering, metakey, metadesc, access, hits, language) '. 'VALUES ("404", "404", "'.$introtext.'", "", "1", "0", "'.date('Y-m-d H:i:s').'", "'.$user->id.'", "2001-01-01 00:00:00", "", "", "0", "", "", "1", "0", "*");'; $db->setQuery($sql); $res = $db->query(); if (!$res) { JError::raiseWarning(100, JText::_('COM_SEF_ERROR_DEFAULT_404_PAGE')); } } $this->installPlugins(); // 20.8.2013 dajo: adapters don't need installation anymore, they're registered using our system plugin // Install the extension installer adapter if possible /*$adapterSrc = JPATH_ADMINISTRATOR.'/components/com_sef/adapters/sef_ext.php'; $adapterDest = JPATH_LIBRARIES.'/joomla/installer/adapters/sef_ext.php'; $adapterInstalled = false; if( is_writable(dirname($adapterDest)) ) { if( @copy($adapterSrc, $adapterDest) ) { $adapterInstalled = true; } } $adapterSrc2 = JPATH_ADMINISTRATOR.'/components/com_sef/adapters/sef_update.php'; $adapterDest2 = JPATH_LIBRARIES.'/joomla/updater/adapters/sef_update.php'; $adapterInstalled2 = false; if( is_writable(dirname($adapterDest2)) ) { if( @copy($adapterSrc2, $adapterDest2) ) { $adapterInstalled2 = true; } }*/ $ext_errs=array(); $list=JFolder::files(JPATH_SITE.'/components/com_sef/sef_ext'); JTable::addIncludePath(JPATH_LIBRARIES.'/joomla/database/table'); foreach($list as $sef) { if ((substr($sef, -4) != '.xml') || (substr($sef, 0, 4) != 'com_')) { continue; } $xml=simplexml_load_file(JPATH_SITE.'/components/com_sef/sef_ext/'.$sef); $element=$this->getElement($xml); $query="SELECT COUNT(*) FROM #__extensions WHERE type=".$db->quote('sef_ext')." AND element=".$db->quote($element); $db->setQuery($query); $cnt=$db->loadResult(); if($cnt>0) { continue; } $ext_table=JTable::getInstance('extension'); $ext_table->name=(string)$xml->name; $ext_table->type='sef_ext'; $ext_table->element=$element; $ext_table->enabled=1; $ext_table->protected=1; // Make core JoomSEF extensions protected $ext_table->access=1; $ext_table->client_id=0; if(isset($xml->install->defaultParams)) { $ext_table->params=SEFTools::getDefaultParams($xml->install->defaultParams); } if(isset($xml->install->defaultFilters)) { $ext_table->custom_data=SEFTools::getDefaultFilters($xml->install->defaultFilters); } $ext_table->manifest_cache=json_encode(JApplicationHelper::parseXMLInstallFile(JPATH_SITE.'/components/com_sef/sef_ext/'.$sef)); if(!$ext_table->store()) { $ext_errs[]=$db->stderr(true); } $query="INSERT INTO #__schemas SET extension_id=".$ext_table->extension_id.", version_id=".$db->quote((string)$xml->version); $db->setQuery($query); $db->query(); if(isset($xml->updateservers->server)) { $query="INSERT INTO #__update_sites SET name=".$db->quote((string)$xml->updateservers->server['name']).", type=".$db->quote((string)$xml->updateservers->server['type']).", \n"; $query.="location=".$db->quote((string)$xml->updateservers->server).", enabled=1 \n"; $db->setQuery($query); $db->query(); $id=$db->insertId(); $query="INSERT INTO #__update_sites_extensions SET update_site_id=".$id.", extension_id=".$ext_table->extension_id." \n"; $db->setQuery($query); $db->query(); } } // Check former AceSEF and sh404SEF installations $formerSEF = false; $tables=$db->getTableList(); $prefix=JFactory::getApplication()->getCfg('dbprefix'); // AceSEF if(in_array(str_replace('#__',$prefix,'#__acesef_urls'),$tables)) { $query="SELECT COUNT(*) FROM #__acesef_urls \n"; $db->setQUery($query); $cnt=$db->loadResult(); if($cnt>0) { $formerSEF = true; } } // sh404SEF if( !$formerSEF ) { if(in_array(str_replace('#__',$prefix,'#__sh404sef_urls'),$tables)) { $query="SELECT COUNT(*) FROM #__sh404sef_urls \n"; $db->setQUery($query); $cnt=$db->loadResult(); if($cnt>0) { $formerSEF = true; } } } ob_start(); echo '<div class="quote" style="text-align: center;">'; echo '<h1>'.JText::_('COM_SEF_INSTALL_SUCCESS').'</h1>'; if ($formerSEF) { echo '<h3>'.JText::sprintf('COM_SEF_INSTALL_FORMER_SEF', '<a href="index.php?option=com_sef&controller=sefurls&task=showimport">', '</a>').'</h3><br />'; } if(count($ext_errs)) { ?> <p class="message"> <?php echo JText::_('COM_SEF_INSTALL_EXT_ERRS'); ?> <br /> <?php echo implode("<br />", $ext_errs); ?> </p> <?php } // Check the host and set handling to redirect to www if needed $uri = JURI::getInstance(); $host = $uri->getHost(); if (substr($host, 0, 4) == 'www.') { // Import the SEF config file if (!class_exists('SEFConfig')) { include(JPATH_ADMINISTRATOR.'/components/com_sef/classes/config.php'); } $sefConfig = SEFConfig::getConfig(); $sefConfig->wwwHandling = _COM_SEF_WWW_USE_WWW; $sefConfig->saveConfig(); } echo '<h3>'.JText::_('COM_SEF_INSTALL_ACTIVATE_CONFIG').'</h3>'; $readdocs = '<p class="message">'.JText::sprintf('COM_SEF_INSTALL_EXTRA_CONFIG', '<a href="http://www.artio.net/joomsef/documentation" target="_blank">', '</a>'); if (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false) { echo $readdocs.'IIS.</p>'; } else { // Get the correct rewrite base $base = JURI::root(true); if( $base == '' ) { $base = '/'; } // Create htaccess content $htaccess = ' DirectoryIndex index.php RewriteEngine On RewriteBase ' . $base . ' ########## Begin - Rewrite rules to block out some common exploits ## If you experience problems on your site block out the operations listed below ## This attempts to block the most common type of exploit `attempts` to Joomla! # ## Deny access to extension xml files (uncomment out to activate) #<Files ~ "\.xml$"> #Order allow,deny #Deny from all #Satisfy all #</Files> ## End of deny access to extension xml files # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] # Block out any script that includes a <script> tag in URL RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] # ########## End - Rewrite rules to block out some common exploits RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] RewriteRule (.*) index.php RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] '; //if (substr(PHP_OS, 0, 3) == 'WIN') { // echo '<p class="error">Found apache on windows, .htaccess is an illegal filename for this system.<br/>You must complete the rest of the configuration manually.</p>'; // echo $readdocs."the apache .htaccess file.</p>"; //} //else{ echo '<p style="text-align: center;">'.JText::_('COM_SEF_INSTALL_HTACCESS_CHECK').'<br />'; $file = JPATH_ROOT.'/.htaccess'; if( !JFile::exists($file) ) { echo JText::_('COM_SEF_INSTALL_HTACCESS_NOT_FOUND').'</p>'; if( !JFile::write($file, $htaccess) ) { echo '<p style="text-align: center;" class="error">'.JText::_('COM_SEF_INSTALL_HTACCESS_NOT_CREATED').'<br/><pre>'.htmlspecialchars(nl2br($htaccess)).'</pre>'; } else{ echo JText::_('COM_SEF_INSTALL_HTACCESS_CREATED').'<br/><pre>'.htmlspecialchars($htaccess).'</pre>'; } echo JText::_('COM_SEF_INSTALL_HTACCESS_REWRITEBASE'); } else { echo '<span class="error">'.JText::_('COM_SEF_INSTALL_HTACCESS_FOUND').'</span></p>'; echo $readdocs.JText::_('COM_SEF_INSTALL_EXTRA_CONFIG_APACHE').'</p>'; } echo '</div>'; } ?> <h2 style="color: #A1B754"><?php echo JText::_('COM_SEF_INSTALL_START'); ?></h2> <div id="cpanel" class="icons"> <div class="icon"> <a href="index.php?option=com_sef" title="<?php echo JText::_('COM_SEF_TT_CONTROL_PANEL'); ?>"> <img src="components/com_sef/assets/images/icon-48-artio.png" alt="" width="48" height="48" border="0"/> <span><?php echo JText::_('COM_SEF_CONTROL_PANEL'); ?></span> </a> </div> <div class="icon"> <a href="http://www.artio.net/joomsef/documentation" target="_blank" title="<?php echo JText::_('COM_SEF_TT_DOCUMENTATION'); ?>"> <img src="components/com_sef/assets/images/icon-48-docs.png" alt="" width="48" height="48" align="middle" border="0"/> <span><?php echo JText::_('COM_SEF_DOCUMENTATION'); ?></span> </a> </div> <div class="icon"> <a href="index.php?option=com_sef&controller=info&task=changelog" title="<?php echo JText::_('COM_SEF_TT_CHANGELOG'); ?>"> <img src="components/com_sef/assets/images/icon-48-info.png" alt="" width="48" height="48" align="middle" border="0"/> <span><?php echo JText::_('COM_SEF_CHANGELOG'); ?></span> </a> </div> <div class="icon"> <a href="index.php?option=com_sef&controller=info&task=help" title="<?php echo JText::_('COM_SEF_TT_SUPPORT'); ?>"> <img src="components/com_sef/assets/images/icon-48-help.png" alt="" width="48" height="48" align="middle" border="0"/> <span><?php echo JText::_('COM_SEF_SUPPORT'); ?></span> </a> </div> </div> <?php $output = ob_get_contents(); ob_end_clean(); echo $output; return true; } function update() { require_once JPATH_ADMINISTRATOR.'/components/com_sef/classes/config.php'; $db = JFactory::getDBO(); $jversion = new JVersion(); // 20.8.2013 dajo: adapters don't need installation anymore, they're registered using our system plugin, // so remove them from older versions $path = JPATH_LIBRARIES.'/joomla/installer/adapters/sef_ext.php'; if (JFile::exists($path)) { JFile::delete($path); } // Handle Joomla 3 if ($jversion->isCompatible('3.0.0')) { $path = JPATH_LIBRARIES.'/cms/installer/adapter/sef_ext.php'; if (JFile::exists($path)) { JFile::delete($path); } } $path = JPATH_LIBRARIES.'/joomla/updater/adapters/sef_update.php'; if (JFile::exists($path)) { JFile::delete($path); } // Install JoomSEF plugins $this->installPlugins(); JTable::addIncludePath(JPATH_LIBRARIES.'/joomla/database/table'); $ext_update_dir=dirname(__FILE__).'/site/sef_ext/'; // Migrate existing extensions from old table $db=JFactory::getDBO(); $query="SELECT * FROM #__sefexts"; $db->setQuery($query); $exts=$db->loadObjectList(); // Delete extensions from old table, so they don't cause problems later $db->setQuery("DELETE FROM #__sefexts"); $db->query(); for($i=0;$i<count($exts);$i++) { $xml_file=JPATH_SITE.'/components/com_sef/sef_ext/'.$exts[$i]->file; if(file_exists($ext_update_dir.$exts[$i]->file)) { $xml_file=$ext_update_dir.$exts[$i]->file; } if (!file_exists($xml_file)) { // Extension not available continue; } $xml=simplexml_load_file($xml_file); $element=$this->getElement($xml); $query="SELECT COUNT(*) FROM #__extensions WHERE type=".$db->quote('sef_ext')." AND element=".$db->quote($element); $db->setQuery($query); $cnt=$db->loadResult(); if($cnt>0) { continue; } $ext_table=JTable::getInstance('extension'); $ext_table->name=(string)$xml->name; $ext_table->type='sef_ext'; $ext_table->element=$element; $ext_table->enabled=1; $ext_table->protected=0; $ext_table->access=1; $ext_table->client_id=0; $params=new JRegistry($exts[$i]->params); $download_id=$params->get('downloadId'); if(strlen($exts[$i]->title)) { $params->def('custom_menu_title',$exts[$i]->title); } $ext_table->params=$params->toString(); $ext_table->custom_data=$exts[$i]->filters; $ext_table->manifest_cache=json_encode(JApplicationHelper::parseXMLInstallFile($xml_file)); $ext_table->store(); $query="INSERT INTO #__schemas SET extension_id=".$ext_table->extension_id.", version_id=".$db->quote((string)$xml->version); $db->setQuery($query); $db->query(); if(isset($xml->updateservers->server)) { $location=(string)$xml->updateservers->server; if(isset($download_id) && strlen($download_id)) { $location=str_replace('.xml','-'.$download_id.'.xml',$location); } $query="SELECT COUNT(*) FROM #__update_sites \n"; $query.="WHERE type=".$db->quote((string)$xml->updateservers->server['type'])." AND name=".$db->quote((string)$xml->updateservers->server['name']); $db->setQuery($query); $cnt=$db->loadResult(); if($cnt) { $query="UPDATE #__update_sites SET location=".$db->quote($location).", enabled=1 \n"; $query.="WHERE type=".$db->quote((string)$xml->updateservers->server['type'])." AND name=".$db->quote((string)$xml->updateservers->server['name']); } else { $query="INSERT INTO #__update_sites SET name=".$db->quote((string)$xml->updateservers->server['name']).", type=".$db->quote((string)$xml->updateservers->server['type']).", \n"; $query.="location=".$db->quote($location).", enabled=1 \n"; } $db->setQuery($query); $db->query(); $id=$db->insertId(); $query="SELECT COUNT(*) FROM #__update_sites_extensions \n"; $query.="WHERE update_site_id=".$id; $db->setQuery($query); $cnt=$db->loadResult(); if($cnt) { $query="UPDATE #__update_sites_extensions \n"; $query.="SET extension_id=".$ext_table->extension_id." \n"; $query.="WHERE update_site_id=".$id; } else { $query="INSERT INTO #__update_sites_extensions SET update_site_id=".$id.", extension_id=".$ext_table->extension_id." \n"; } $db->setQuery($query); $db->query(); } } //Add existing extensions to Joomla extensions table $list=JFolder::files(JPATH_SITE.'/components/com_sef/sef_ext'); foreach($list as $sef) { if(substr($sef,-4)!='.xml') { continue; } $xml_file=JPATH_SITE.'/components/com_sef/sef_ext/'.$sef; if(file_exists($ext_update_dir.$sef)) { $xml_file=$ext_update_dir.$sef; } $xml=simplexml_load_file($xml_file); $element=$this->getElement($xml); $query="SELECT COUNT(*) FROM #__extensions WHERE type=".$db->quote('sef_ext')." AND element=".$db->quote($element); $db->setQuery($query); $cnt=$db->loadResult(); if($cnt>0) { continue; } $ext_table=JTable::getInstance('extension'); $ext_table->name=(string)$xml->name; $ext_table->type='sef_ext'; $ext_table->element=$element; $ext_table->enabled=1; $ext_table->protected=0; $ext_table->access=1; $ext_table->client_id=0; if(isset($xml->install->defaultparams)) { $ext_table->params=SEFTools::getDefaultParams((string)$xml->install->defaultparams); } if(isset($xml->install->defaultfilters)) { $ext_table->custom_data=SEFTools::getDefaultFilters((string)$xml->install->defaultfilters); } $ext_table->manifest_cache=json_encode(JApplicationHelper::parseXMLInstallFile($xml_file)); $ext_table->store(); $query="INSERT INTO #__schemas SET extension_id=".$ext_table->extension_id.", version_id=".$db->quote((string)$xml->version); $db->setQuery($query); $db->query(); if(isset($xml->updateservers->server)) { $query="INSERT INTO #__update_sites SET name=".$db->quote((string)$xml->updateservers->server['name']).", type=".$db->quote((string)$xml->updateservers->server['type']).", \n"; $query.="location=".$db->quote((string)$xml->updateservers->server).", enabled=1 \n"; $db->setQuery($query); $db->query(); $id=$db->insertId(); $query="INSERT INTO #__update_sites_extensions SET update_site_id=".$id.", extension_id=".$ext_table->extension_id." \n"; $db->setQuery($query); $db->query(); } } $fields=$db->getTableColumns('#__sefurls'); $fields=array_keys($fields); if(!in_array('metaauthor',$fields)) { $query="ALTER TABLE #__sefurls \n"; $query.="ADD (metaauthor varchar(30) default '') \n"; $db->setQuery($query); $db->query(); } // 30.11.2012 dajo: Move stored configuration from params to custom_data field $db->setQuery("UPDATE `#__extensions` SET `custom_data` = `params` WHERE `type` = 'component' AND `element` = 'com_sef' AND (`custom_data` IS NULL OR `custom_data` = '') LIMIT 1"); $db->query(); // 2.1.2013 dajo: Remove left-over file if (JFile::exists(JPATH_ADMINISTRATOR.'/components/com_sef/tables/extension.php')) { JFile::delete(JPATH_ADMINISTRATOR.'/components/com_sef/tables/extension.php'); } ob_start(); $tmp_path=JFactory::getApplication()->getCfg('tmp_path'); if(JFile::exists($tmp_path.'/joomsef-configuration.php')) { require_once $tmp_path.'/joomsef-configuration.php'; } if(isset($artioDownloadId) && strlen($artioDownloadId)) { $query="SELECT location FROM #__update_sites \n"; $query.="WHERE name=".$db->quote('com_joomsef'); $db->setQuery($query); $location=$db->loadResult(); if(!preg_match("/(-([A-Za-z0-9]*)).xml/",$location)) { ?> <p class="message"> It was found, that you have an commercial version of Artio JoomSEF and you dont have migrated your download id. Please finish upgrade by clicking <a href="index.php?option=com_sef&task=finish_upgrade">here</a> </p> <?php } } $output = ob_get_contents(); ob_end_clean(); echo $output; return true; } public function uninstall($installer) { // uninstall JoomSEF plugin $path = JPATH_ROOT.'/plugins/system/joomsef'; $res = JFolder::delete($path); $db = JFactory::getDBO(); $db->setQuery("DELETE FROM `#__extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'joomsef' LIMIT 1"); $res = $res && $db->query(); if (!$res) { JError::raiseWarning(100, JText::_('COM_SEF_WARNING_PLUGIN_NOT_UNINSTALLED')); } /*$path = JPATH_ROOT.'/plugins/system/joomsefurl'; $res = JFolder::delete($path); $db = JFactory::getDBO(); $db->setQuery("DELETE FROM `#__extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'joomsefurl' LIMIT 1"); $res = $res && $db->query(); if (!$res) { JError::raiseWarning(100, JText::_('COM_SEF_WARNING_PLUGIN_NOT_UNINSTALLED')); }*/ $path = JPATH_ROOT.'/plugins/content/joomsef'; $res = JFolder::delete($path); $db = JFactory::getDBO(); $db->setQuery("DELETE FROM `#__extensions` WHERE `type` = 'plugin' AND `folder` = 'content' AND `element` = 'joomsef' LIMIT 1"); $res = $res && $db->query(); if (!$res) { JError::raiseWarning(100, JText::_('COM_SEF_WARNING_PLUGIN_NOT_UNINSTALLED')); } $path = JPATH_ROOT.'/plugins/system/joomseflang'; $res = JFolder::delete($path); $db = JFactory::getDBO(); $db->setQuery("DELETE FROM `#__extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'joomseflang' LIMIT 1"); $res = $res && $db->query(); if (!$res) { JError::raiseWarning(100, JText::_('COM_SEF_WARNING_PLUGIN_NOT_UNINSTALLED')); } $path = JPATH_ROOT.'/plugins/system/joomsefgoogle'; $res = JFolder::delete($path); $db = JFactory::getDBO(); $db->setQuery("DELETE FROM `#__extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'joomsefgoogle' LIMIT 1"); $res = $res && $db->query(); if (!$res) { JError::raiseWarning(100, JText::_('COM_SEF_WARNING_PLUGIN_NOT_UNINSTALLED')); } $path = JPATH_ROOT.'/plugins/extension/joomsefinstall'; $res = JFolder::delete($path); $db = JFactory::getDBO(); $db->setQuery("DELETE FROM `#__extensions` WHERE `type` = 'plugin' AND `folder` = 'extension' AND `element` = 'joomsefinstall' LIMIT 1"); $res = $res && $db->query(); if (!$res) { JError::raiseWarning(100, JText::_('COM_SEF_WARNING_PLUGIN_NOT_UNINSTALLED')); } $query="SELECT extension_id FROM #__extensions \n"; $query.="WHERE type=".$db->quote('sef_ext'); $db->setQuery($query); $exts=$db->loadColumn(); $query="DELETE FROM #__extensions WHERE type=".$db->quote('sef_ext'); $db->setQuery($query); $db->query(); $query="DELETE FROM #__update_sites WHERE type=".$db->quote('sef_update'); $db->setQuery($query); $db->query(); if (count($exts) > 0) { $query="DELETE FROM #__update_sites_extensions \n"; $query.="WHERE extension_id IN(".implode(",",$exts).")"; $db->setQuery($query); $db->query(); $query = "DELETE FROM #__schemas WHERE extension_id IN (".implode(',', $exts).")"; $db->setQuery($query); $db->query(); } echo '<h3>'.JText::_('COM_SEF_UNINSTALLED').'</h3>'; return true; } } ?>
/var/www/iplanru/data/www/./i-plan.ru/administrator/components/com_sef/controllers/../install.php