You've already forked joomla_test
							
							
		
			
	
	
		
			142 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			142 lines
		
	
	
		
			2.2 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;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								jimport('joomla.filesystem.file');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Joomla! Package Manifest File
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @package     Joomla.Libraries
							 | 
						||
| 
								 | 
							
								 * @subpackage  Installer
							 | 
						||
| 
								 | 
							
								 * @since       3.1
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								abstract class JInstallerManifest
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Path to the manifest file
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $manifest_file = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Name of the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $name = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Version of the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $version = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Description of the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $description = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Packager of the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $packager = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Packager's URL of the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $packagerurl = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Update site for the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    string
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $update = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * List of files in the extension
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @var    array
							 | 
						||
| 
								 | 
							
									 * @since  3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public $filelist = array();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Constructor
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @param   string  $xmlpath  Path to XML manifest file.
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @since   3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public function __construct($xmlpath = '')
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										if (strlen($xmlpath))
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											$this->loadManifestFromXML($xmlpath);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Load a manifest from a file
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @param   string  $xmlfile  Path to file to load
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @return  boolean
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @since   3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									public function loadManifestFromXML($xmlfile)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										$this->manifest_file = basename($xmlfile, '.xml');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										$xml = simplexml_load_file($xmlfile);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if (!$xml)
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											$this->_errors[] = JText::sprintf('JLIB_INSTALLER_ERROR_LOAD_XML', $xmlfile);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											return false;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											$this->loadManifestFromData($xml);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											return true;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Apply manifest data from a SimpleXMLElement to the object.
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @param   SimpleXMLElement  $xml  Data to load
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @return  void
							 | 
						||
| 
								 | 
							
									 *
							 | 
						||
| 
								 | 
							
									 * @since   3.1
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									abstract protected function loadManifestFromData(SimpleXmlElement $xml);
							 | 
						||
| 
								 | 
							
								}
							 |