| Current Path : /var/www/iplanru/data/old/www/i-plan.ru/administrator/components/com_jce/installer/ |
| Current File : /var/www/iplanru/data/old/www/i-plan.ru/administrator/components/com_jce/installer/installer.php |
<?php
/**
* @version $Id: installer.php 96 2009-06-21 19:15:38Z happynoodleboy $
* @package JCE
* @copyright Copyright (C) 2009 Ryan Demmer. All rights reserved.
* @copyright Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.
* @license GNU/GPL
* This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/
// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();
jimport('joomla.installer.installer');
class JCEInstaller extends JInstaller
{
/**
* Returns a reference to the global Installer object, only creating it
* if it doesn't already exist.
*
* @static
* @return object An installer object
* @since 1.5
*/
function &getInstance()
{
static $instance;
if (!isset ($instance)) {
$instance = new JCEInstaller();
}
return $instance;
}
/**
* Set an installer adapter by name
*
* @access public
* @param string $name Adapter name
* @param object $adapter Installer adapter object
* @return boolean True if successful
* @since 1.5
*/
function setAdapter($name, $adapter = null)
{
// Check if valid extension type
if( $name == 'plugin' || $name == 'language' || $name == 'extension' ){
if (!is_object($adapter))
{
// Try to load the adapter object
require_once(dirname(__FILE__).DS.'adapters'.DS.strtolower($name).'.php');
$class = 'JCEInstaller'.ucfirst($name);
if (!class_exists($class)) {
return false;
}
$adapter = new $class($this);
$adapter->parent =& $this;
}
$this->_adapters[$name] =& $adapter;
return true;
}else{
$this->abort(JText::_('Incorrect version!'));
}
}
/**
* Method to parse the variables of a plugin, build the INI
* string for it's default variables, and return the INI string.
*
* @access public
* @return string INI string of parameter values
* @since 1.5
*/
function getVariables()
{
// Get the manifest document root element
$root = & $this->_manifest->document;
// Get the element of the tag names
$element =& $root->getElementByPath('variables');
if (!is_a($element, 'JSimpleXMLElement') || !count($element->children())) {
// Either the tag does not exist or has no children therefore we return zero files processed.
return null;
}
// Get the array of variable nodes to process
$vars = $element->children();
if (count($vars) == 0) {
// No variables to process
return null;
}
// Process each variable in the $vars array.
$ini = null;
foreach ($vars as $var) {
if (!$name = $var->attributes('name')) {
continue;
}
if (!$value = $var->attributes('default')) {
continue;
}
$ini .= $name."=".$value."\n";
}
return $ini;
}
}