Current Directory: /home/astoriaah/www/old15/administrator/components/com_sh404sef/classes
Viewing File: /home/astoriaah/www/old15/administrator/components/com_sh404sef/classes/baseextplugin.php
<?php
/**
* sh404SEF - SEO extension for Joomla!
*
* @author Yannick Gaultier
* @copyright (c) Yannick Gaultier 2014
* @package sh404SEF
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @version 4.4.4.1791
* @date 2014-07-01
*/
// Security check to ensure this file is being included by a parent file.
if (!defined('_JEXEC')) die('Direct Access to this location is not allowed.');
jimport( 'joomla.plugin.plugin' );
/**
* Base extension handler plugin
*
* @author Yannick Gaultier
*/
class Sh404sefClassBaseextplugin extends JPlugin {
const TYPE_DEFAULT = 0;
const TYPE_SKIP = 1;
const TYPE_SIMPLE = 2;
const TYPE_SH404SEF_ROUTER = 0; // do not change, must be 0 for compat reason
const TYPE_JOOMLA_ROUTER = 1; // do not change, must be 1 for compat reason
const TYPE_JOOMSEF_ROUTER = 30;
const TYPE_ACESEF_ROUTER = 40;
const TYPE_NO_ROUTER = 100;
const TYPE_OPENSEF_ROUTER = 101;
protected $_componentType = null;
protected $_pluginType = null;
protected $_option = '';
protected $_optionNoCom = '';
protected $_extName = '';
protected $_config = null;
protected $_sefPluginPath = null;
protected $_metaPluginPath = null;
protected $_version = '';
public function __construct( $option, $config) {
$this->_option = $option;
$this->_optionNoCom = str_replace('com_', '', $this->_option);
$this->_config = $config;
$this->_pluginType = self::TYPE_NO_ROUTER;
}
public function getComponentType() {
if(is_null( $this->_componentType)) {
switch ($this->_optionNoCom) {
// leave urls non-sef
case (in_array($this->_optionNoCom, $this->_config->skip)):
$this->_componentType = self::TYPE_SKIP;
break;
// use simple encoding
case (in_array($this->_optionNoCom, $this->_config->nocache)):
$this->_componentType = self::TYPE_SIMPLE;
break;
// default handler, full sef
default:
$this->_componentType = self::TYPE_DEFAULT;
break;
}
// now validate that type: if required plugin is not available,
// we'll need to switch back to "simple
if($this->_componentType == self::TYPE_DEFAULT) {
$path = $this->getSefPluginPath();
if(empty( $path)) {
$this->_componentType = self::TYPE_SIMPLE;
}
}
}
return $this->_componentType;
}
public function getPluginType() {
return $this->_pluginType;
}
public function getName() {
return $this->_extName;
}
public function getVersion() {
return $this->_version;
}
public function getSefPluginPath( $nonSefVars = array()) {
if(is_null( $this->_sefPluginPath)) {
$this->_findSefPluginPath( $nonSefVars);
}
return $this->_sefPluginPath;
}
public function getMetaPluginPath( $nonSefUrl = '') {
if(is_null( $this->_metaPluginPath)) {
$this->_findMetaPluginPath( $nonSefUrl);
}
return $this->_metaPluginPath;
}
protected function _findSefPluginPath( $nonSefVars = array()) {
$this->_sefPluginPath = '';
}
protected function _findMetaPluginPath( $nonSefUrl = '') {
$this->_metaPluginPath = '';
}
}