You've already forked joomla_test
first commit
This commit is contained in:
146
libraries/joomla/plugin/plugin.php
Normal file
146
libraries/joomla/plugin/plugin.php
Normal file
@ -0,0 +1,146 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Plugin
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
/**
|
||||
* JPlugin Class
|
||||
*
|
||||
* @package Joomla.Platform
|
||||
* @subpackage Plugin
|
||||
* @since 11.1
|
||||
*/
|
||||
abstract class JPlugin extends JEvent
|
||||
{
|
||||
/**
|
||||
* A JRegistry object holding the parameters for the plugin
|
||||
*
|
||||
* @var JRegistry
|
||||
* @since 11.1
|
||||
*/
|
||||
public $params = null;
|
||||
|
||||
/**
|
||||
* The name of the plugin
|
||||
*
|
||||
* @var string
|
||||
* @since 11.1
|
||||
*/
|
||||
protected $_name = null;
|
||||
|
||||
/**
|
||||
* The plugin type
|
||||
*
|
||||
* @var string
|
||||
* @since 11.1
|
||||
*/
|
||||
protected $_type = null;
|
||||
|
||||
/**
|
||||
* Affects constructor behavior. If true, language files will be loaded automatically.
|
||||
*
|
||||
* @var boolean
|
||||
* @since 12.3
|
||||
*/
|
||||
protected $autoloadLanguage = false;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param object &$subject The object to observe
|
||||
* @param array $config An optional associative array of configuration settings.
|
||||
* Recognized key values include 'name', 'group', 'params', 'language'
|
||||
* (this list is not meant to be comprehensive).
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function __construct(&$subject, $config = array())
|
||||
{
|
||||
// Get the parameters.
|
||||
if (isset($config['params']))
|
||||
{
|
||||
if ($config['params'] instanceof JRegistry)
|
||||
{
|
||||
$this->params = $config['params'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->params = new JRegistry;
|
||||
$this->params->loadString($config['params']);
|
||||
}
|
||||
}
|
||||
|
||||
// Get the plugin name.
|
||||
if (isset($config['name']))
|
||||
{
|
||||
$this->_name = $config['name'];
|
||||
}
|
||||
|
||||
// Get the plugin type.
|
||||
if (isset($config['type']))
|
||||
{
|
||||
$this->_type = $config['type'];
|
||||
}
|
||||
|
||||
// Load the language files if needed.
|
||||
if ($this->autoloadLanguage)
|
||||
{
|
||||
$this->loadLanguage();
|
||||
}
|
||||
|
||||
if (property_exists($this, 'app'))
|
||||
{
|
||||
$reflection = new ReflectionClass($this);
|
||||
$appProperty = $reflection->getProperty('app');
|
||||
|
||||
if ($appProperty->isPrivate() === false && is_null($this->app))
|
||||
{
|
||||
$this->app = JFactory::getApplication();
|
||||
}
|
||||
}
|
||||
|
||||
if (property_exists($this, 'db'))
|
||||
{
|
||||
$reflection = new ReflectionClass($this);
|
||||
$dbProperty = $reflection->getProperty('db');
|
||||
|
||||
if ($dbProperty->isPrivate() === false && is_null($this->db))
|
||||
{
|
||||
$this->db = JFactory::getDbo();
|
||||
}
|
||||
}
|
||||
|
||||
parent::__construct($subject);
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the plugin language file
|
||||
*
|
||||
* @param string $extension The extension for which a language file should be loaded
|
||||
* @param string $basePath The basepath to use
|
||||
*
|
||||
* @return boolean True, if the file has successfully loaded.
|
||||
*
|
||||
* @since 11.1
|
||||
*/
|
||||
public function loadLanguage($extension = '', $basePath = JPATH_ADMINISTRATOR)
|
||||
{
|
||||
if (empty($extension))
|
||||
{
|
||||
$extension = 'plg_' . $this->_type . '_' . $this->_name;
|
||||
}
|
||||
|
||||
$lang = JFactory::getLanguage();
|
||||
|
||||
return $lang->load(strtolower($extension), $basePath, null, false, false)
|
||||
|| $lang->load(strtolower($extension), JPATH_PLUGINS . '/' . $this->_type . '/' . $this->_name, null, false, false)
|
||||
|| $lang->load(strtolower($extension), $basePath, $lang->getDefault(), false, false)
|
||||
|| $lang->load(strtolower($extension), JPATH_PLUGINS . '/' . $this->_type . '/' . $this->_name, $lang->getDefault(), false, false);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user