You've already forked joomla_test
							
							
		
			
	
	
		
			168 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			168 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @package     Joomla.Libraries
							 | 
						||
| 
								 | 
							
								 * @subpackage  Installer
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @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;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Extension object
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @package     Joomla.Libraries
							 | 
						||
| 
								 | 
							
								 * @subpackage  Installer
							 | 
						||
| 
								 | 
							
								 * @since       3.1
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class JInstallerExtension extends JObject
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Filename of the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $filename = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Type of the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $type = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Unique Identifier for the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $id = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * The status of the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    boolean
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $published = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * String representation of client. Valid for modules, templates and languages.
							 | 
						||
| 
								 | 
							
									 * Set by default to site.
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $client = 'site';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * The group name of the plugin. Not used for other known extension types (only plugins)
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $group = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * An object representation of the manifest file stored metadata
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var object
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $manifest_cache = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * An object representation of the extension params
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    object
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $params = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Constructor
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @param   SimpleXMLElement  $element  A SimpleXMLElement from which to load data from
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public function __construct(SimpleXMLElement $element = null)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										if ($element)
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											$this->type = (string) $element->attributes()->type;
							 | 
						||
| 
								 | 
							
											$this->id = (string) $element->attributes()->id;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											switch ($this->type)
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												case 'component':
							 | 
						||
| 
								 | 
							
													// By default a component doesn't have anything
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												case 'module':
							 | 
						||
| 
								 | 
							
												case 'template':
							 | 
						||
| 
								 | 
							
												case 'language':
							 | 
						||
| 
								 | 
							
													$this->client = (string) $element->attributes()->client;
							 | 
						||
| 
								 | 
							
													$tmp_client_id = JApplicationHelper::getClientInfo($this->client, 1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
													if ($tmp_client_id == null)
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														JLog::add(JText::_('JLIB_INSTALLER_ERROR_EXTENSION_INVALID_CLIENT_IDENTIFIER'), JLog::WARNING, 'jerror');
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													else
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														$this->client_id = $tmp_client_id->id;
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												case 'plugin':
							 | 
						||
| 
								 | 
							
													$this->group = (string) $element->attributes()->group;
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												default:
							 | 
						||
| 
								 | 
							
													// Catch all
							 | 
						||
| 
								 | 
							
													// Get and set client and group if we don't recognise the extension
							 | 
						||
| 
								 | 
							
													if ($element->attributes()->client)
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														$this->client_id = JApplicationHelper::getClientInfo($this->client, 1);
							 | 
						||
| 
								 | 
							
														$this->client_id = $this->client_id->id;
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													if ($element->attributes()->group)
							 | 
						||
| 
								 | 
							
													{
							 | 
						||
| 
								 | 
							
														$this->group = (string) $element->attributes()->group;
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													break;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											$this->filename = (string) $element;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Deprecated class placeholder. You should use JInstallerExtension instead.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @package     Joomla.Libraries
							 | 
						||
| 
								 | 
							
								 * @subpackage  Installer
							 | 
						||
| 
								 | 
							
								 * @since       3.1
							 | 
						||
| 
								 | 
							
								 * @deprecated  4.0
							 | 
						||
| 
								 | 
							
								 * @codeCoverageIgnore
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class JExtension extends JInstallerExtension
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Constructor
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @param   SimpleXMLElement  $element  A SimpleXMLElement from which to load data from
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public function __construct(SimpleXMLElement $element = null)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										parent::__construct($element);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |