joomla_test/libraries/cms/installer/manifest.php
2020-01-02 22:20:31 +07:00

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);
}