File Manager

Current Directory: /home/astoriaah/www/administrator/components/com_sh404sef/classes
Viewing File: /home/astoriaah/www/administrator/components/com_sh404sef/classes/baseextplugin.php
<?php /** * sh404SEF - SEO extension for Joomla! * * @author Yannick Gaultier * @copyright (c) Yannick Gaultier - Weeblr llc - 2022 * @package sh404SEF * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @version 4.24.1.4308 * @date 2022-05-31 */ // 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)) { if (sh404SEF_CHECK_COMP_IS_INSTALLED && !shFileExists(sh404SEF_ABS_PATH . 'components/' . $this->_option . '/' . $this->_optionNoCom . '.php') ) { // component is not installed, don't try to SEF URLs for it $this->_componentType = self::TYPE_SKIP; } else { 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 = ''; } }