Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
PK ´[[¦V‰
index.htmlnu W+A„¶
PK ´[[›»§ § updater.phpnu W+A„¶ getDBO();
$retval = false;
// Push it into an array
if (!is_array($eid))
{
$query = 'SELECT DISTINCT update_site_id, type, location, last_check_timestamp, extra_query FROM #__update_sites WHERE enabled = 1';
}
else
{
$query = 'SELECT DISTINCT update_site_id, type, location, last_check_timestamp, extra_query FROM #__update_sites' .
' WHERE update_site_id IN' .
' (SELECT update_site_id FROM #__update_sites_extensions WHERE extension_id IN (' . implode(',', $eid) . '))';
}
$db->setQuery($query);
$results = $db->loadAssocList();
$result_count = count($results);
$now = time();
for ($i = 0; $i < $result_count; $i++)
{
$result = &$results[$i];
$this->setAdapter($result['type']);
if (!isset($this->_adapters[$result['type']]))
{
// Ignore update sites requiring adapters we don't have installed
continue;
}
if ($cacheTimeout > 0)
{
if (isset($result['last_check_timestamp']) && ($now - $result['last_check_timestamp'] <= $cacheTimeout))
{
// Ignore update sites whose information we have fetched within
// the cache time limit
$retval = true;
continue;
}
}
$update_result = $this->_adapters[$result['type']]->findUpdate($result);
if (is_array($update_result))
{
if (array_key_exists('update_sites', $update_result) && count($update_result['update_sites']))
{
$results = JArrayHelper::arrayUnique(array_merge($results, $update_result['update_sites']));
$result_count = count($results);
}
if (array_key_exists('updates', $update_result) && count($update_result['updates']))
{
for ($k = 0, $count = count($update_result['updates']); $k < $count; $k++)
{
$current_update = &$update_result['updates'][$k];
$current_update->extra_query = $result['extra_query'];
$update = JTable::getInstance('update');
$extension = JTable::getInstance('extension');
$uid = $update
->find(
array(
'element' => strtolower($current_update->get('element')), 'type' => strtolower($current_update->get('type')),
'client_id' => strtolower($current_update->get('client_id')),
'folder' => strtolower($current_update->get('folder'))
)
);
$eid = $extension
->find(
array(
'element' => strtolower($current_update->get('element')), 'type' => strtolower($current_update->get('type')),
'client_id' => strtolower($current_update->get('client_id')),
'folder' => strtolower($current_update->get('folder'))
)
);
if (!$uid)
{
// Set the extension id
if ($eid)
{
// We have an installed extension, check the update is actually newer
$extension->load($eid);
$data = json_decode($extension->manifest_cache, true);
if (version_compare($current_update->version, $data['version'], '>') == 1)
{
$current_update->extension_id = $eid;
$current_update->store();
}
}
else
{
// A potentially new extension to be installed
$current_update->store();
}
}
else
{
$update->load($uid);
// If there is an update, check that the version is newer then replaces
if (version_compare($current_update->version, $update->version, '>') == 1)
{
$current_update->store();
}
}
}
}
}
// Finally, update the last update check timestamp
$query = $db->getQuery(true)
->update($db->quoteName('#__update_sites'))
->set($db->quoteName('last_check_timestamp') . ' = ' . $db->quote($now))
->where($db->quoteName('update_site_id') . ' = ' . $db->quote($result['update_site_id']));
$db->setQuery($query);
$db->execute();
}
return $retval;
}
/**
* Finds an update for an extension
*
* @param integer $id Id of the extension
*
* @return mixed
*
* @since 11.1
*/
public function update($id)
{
$updaterow = JTable::getInstance('update');
$updaterow->load($id);
$update = new JUpdate;
if ($update->loadFromXML($updaterow->detailsurl))
{
return $update->install();
}
return false;
}
}
PK ´[[5µÆr r updateadapter.phpnu W+A„¶ ', $this->stack);
}
/**
* Gets the reference to the last tag
*
* @return object
*
* @since 11.1
*/
protected function _getLastTag()
{
return $this->stack[count($this->stack) - 1];
}
}
PK ´[[+.öâ â
update.phpnu W+A„¶ element
*
* @var string
* @since 11.1
*/
protected $name;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $description;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $element;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $type;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $version;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $infourl;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $client;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $group;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $downloads;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $tags;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $maintainer;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $maintainerurl;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $category;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $relationships;
/**
* Update manifest element
*
* @var string
* @since 11.1
*/
protected $targetplatform;
/**
* Extra query for download URLs
*
* @var string
* @since 13.1
*/
protected $extra_query;
/**
* Resource handle for the XML Parser
*
* @var resource
* @since 12.1
*/
protected $xmlParser;
/**
* Element call stack
*
* @var array
* @since 12.1
*/
protected $stack = array('base');
/**
* Unused state array
*
* @var array
* @since 12.1
*/
protected $stateStore = array();
/**
* Object containing the current update data
*
* @var stdClass
* @since 12.1
*/
protected $currentUpdate;
/**
* Object containing the latest update data
*
* @var stdClass
* @since 12.1
*/
protected $latest;
/**
* Gets the reference to the current direct parent
*
* @return object
*
* @since 11.1
*/
protected function _getStackLocation()
{
return implode('->', $this->stack);
}
/**
* Get the last position in stack count
*
* @return string
*
* @since 11.1
*/
protected function _getLastTag()
{
return $this->stack[count($this->stack) - 1];
}
/**
* XML Start Element callback
*
* @param object $parser Parser object
* @param string $name Name of the tag found
* @param array $attrs Attributes of the tag
*
* @return void
*
* @note This is public because it is called externally
* @since 11.1
*/
public function _startElement($parser, $name, $attrs = array())
{
array_push($this->stack, $name);
$tag = $this->_getStackLocation();
// Reset the data
if (isset($this->$tag))
{
$this->$tag->_data = "";
}
switch ($name)
{
// This is a new update; create a current update
case 'UPDATE':
$this->currentUpdate = new stdClass;
break;
// Don't do anything
case 'UPDATES':
break;
// For everything else there's...the default!
default:
$name = strtolower($name);
if (!isset($this->currentUpdate->$name))
{
$this->currentUpdate->$name = new stdClass;
}
$this->currentUpdate->$name->_data = '';
foreach ($attrs as $key => $data)
{
$key = strtolower($key);
$this->currentUpdate->$name->$key = $data;
}
break;
}
}
/**
* Callback for closing the element
*
* @param object $parser Parser object
* @param string $name Name of element that was closed
*
* @return void
*
* @note This is public because it is called externally
* @since 11.1
*/
public function _endElement($parser, $name)
{
array_pop($this->stack);
switch ($name)
{
// Closing update, find the latest version and check
case 'UPDATE':
$ver = new JVersion;
$product = strtolower(JFilterInput::getInstance()->clean($ver->PRODUCT, 'cmd'));
// Check for optional min_dev_level and max_dev_level attributes to further specify targetplatform (e.g., 3.0.1)
if (isset($this->currentUpdate->targetplatform->name)
&& $product == $this->currentUpdate->targetplatform->name
&& preg_match('/' . $this->currentUpdate->targetplatform->version . '/', $ver->RELEASE)
&& ((!isset($this->currentUpdate->targetplatform->min_dev_level)) || $ver->DEV_LEVEL >= $this->currentUpdate->targetplatform->min_dev_level)
&& ((!isset($this->currentUpdate->targetplatform->max_dev_level)) || $ver->DEV_LEVEL <= $this->currentUpdate->targetplatform->max_dev_level))
{
// Check if PHP version supported via tag, assume true if tag isn't present
if (!isset($this->currentUpdate->php_minimum) || version_compare(PHP_VERSION, $this->currentUpdate->php_minimum->_data, '>='))
{
$phpMatch = true;
}
else
{
$phpMatch = false;
}
if ($phpMatch)
{
if (isset($this->latest))
{
if (version_compare($this->currentUpdate->version->_data, $this->latest->version->_data, '>') == 1)
{
$this->latest = $this->currentUpdate;
}
}
else
{
$this->latest = $this->currentUpdate;
}
}
}
break;
case 'UPDATES':
// If the latest item is set then we transfer it to where we want to
if (isset($this->latest))
{
foreach (get_object_vars($this->latest) as $key => $val)
{
$this->$key = $val;
}
unset($this->latest);
unset($this->currentUpdate);
}
elseif (isset($this->currentUpdate))
{
// The update might be for an older version of j!
unset($this->currentUpdate);
}
break;
}
}
/**
* Character Parser Function
*
* @param object $parser Parser object.
* @param object $data The data.
*
* @return void
*
* @note This is public because its called externally.
* @since 11.1
*/
public function _characterData($parser, $data)
{
$tag = $this->_getLastTag();
// @todo remove code: if(!isset($this->$tag->_data)) $this->$tag->_data = '';
// @todo remove code: $this->$tag->_data .= $data;
// Throw the data for this item together
$tag = strtolower($tag);
if (isset($this->currentUpdate->$tag))
{
$this->currentUpdate->$tag->_data .= $data;
}
}
/**
* Loads an XML file from a URL.
*
* @param string $url The URL.
*
* @return boolean True on success
*
* @since 11.1
*/
public function loadFromXML($url)
{
$http = JHttpFactory::getHttp();
$response = $http->get($url);
if (200 != $response->code)
{
// TODO: Add a 'mark bad' setting here somehow
JLog::add(JText::sprintf('JLIB_UPDATER_ERROR_EXTENSION_OPEN_URL', $url), JLog::WARNING, 'jerror');
return false;
}
$this->xmlParser = xml_parser_create('');
xml_set_object($this->xmlParser, $this);
xml_set_element_handler($this->xmlParser, '_startElement', '_endElement');
xml_set_character_data_handler($this->xmlParser, '_characterData');
if (!xml_parse($this->xmlParser, $response->body))
{
die(
sprintf(
"XML error: %s at line %d", xml_error_string(xml_get_error_code($this->xmlParser)),
xml_get_current_line_number($this->xmlParser)
)
);
}
xml_parser_free($this->xmlParser);
return true;
}
}
PK ´[[fØÝ»» » adapters/collection.phpnu W+A„¶ ', $this->stack);
}
/**
* Get the parent tag
*
* @return string parent
*
* @since 11.1
*/
protected function _getParent()
{
return end($this->parent);
}
/**
* Opening an XML element
*
* @param object $parser Parser object
* @param string $name Name of element that is opened
* @param array $attrs Array of attributes for the element
*
* @return void
*
* @since 11.1
*/
public function _startElement($parser, $name, $attrs = array())
{
array_push($this->stack, $name);
$tag = $this->_getStackLocation();
// Reset the data
if (isset($this->$tag))
{
$this->$tag->_data = "";
}
switch ($name)
{
case 'CATEGORY':
if (isset($attrs['REF']))
{
$this->update_sites[] = array('type' => 'collection', 'location' => $attrs['REF'], 'update_site_id' => $this->updateSiteId);
}
else
{
// This item will have children, so prepare to attach them
$this->pop_parent = 1;
}
break;
case 'EXTENSION':
$update = JTable::getInstance('update');
$update->set('update_site_id', $this->updateSiteId);
foreach ($this->updatecols as $col)
{
// Reset the values if it doesn't exist
if (!array_key_exists($col, $attrs))
{
$attrs[$col] = '';
if ($col == 'CLIENT')
{
$attrs[$col] = 'site';
}
}
}
$client = JApplicationHelper::getClientInfo($attrs['CLIENT'], 1);
if (isset($client->id))
{
$attrs['CLIENT_ID'] = $client->id;
}
// Lower case all of the fields
foreach ($attrs as $key => $attr)
{
$values[strtolower($key)] = $attr;
}
// Only add the update if it is on the same platform and release as we are
$ver = new JVersion;
// Lower case and remove the exclamation mark
$product = strtolower(JFilterInput::getInstance()->clean($ver->PRODUCT, 'cmd'));
/*
* Set defaults, the extension file should clarify in case but it may be only available in one version
* This allows an update site to specify a targetplatform
* targetplatformversion can be a regexp, so 1.[56] would be valid for an extension that supports 1.5 and 1.6
* Note: Whilst the version is a regexp here, the targetplatform is not (new extension per platform)
* Additionally, the version is a regexp here and it may also be in an extension file if the extension is
* compatible against multiple versions of the same platform (e.g. a library)
*/
if (!isset($values['targetplatform']))
{
$values['targetplatform'] = $product;
}
// Set this to ourself as a default
if (!isset($values['targetplatformversion']))
{
$values['targetplatformversion'] = $ver->RELEASE;
}
// Set this to ourself as a default
// validate that we can install the extension
if ($product == $values['targetplatform'] && preg_match('/' . $values['targetplatformversion'] . '/', $ver->RELEASE))
{
$update->bind($values);
$this->updates[] = $update;
}
break;
}
}
/**
* Closing an XML element
* Note: This is a protected function though has to be exposed externally as a callback
*
* @param object $parser Parser object
* @param string $name Name of the element closing
*
* @return void
*
* @since 11.1
*/
protected function _endElement($parser, $name)
{
array_pop($this->stack);
switch ($name)
{
case 'CATEGORY':
if ($this->pop_parent)
{
$this->pop_parent = 0;
array_pop($this->parent);
}
break;
}
}
// Note: we don't care about char data in collection because there should be none
/**
* Finds an update
*
* @param array $options Options to use: update_site_id: the unique ID of the update site to look at
*
* @return array Update_sites and updates discovered
*
* @since 11.1
*/
public function findUpdate($options)
{
$url = trim($options['location']);
$this->updateSiteId = $options['update_site_id'];
$appendExtension = false;
if (array_key_exists('append_extension', $options))
{
$appendExtension = $options['append_extension'];
}
if ($appendExtension && (substr($url, -4) != '.xml'))
{
if (substr($url, -1) != '/')
{
$url .= '/';
}
$url .= 'update.xml';
}
$this->base = new stdClass;
$this->update_sites = array();
$this->updates = array();
$db = $this->parent->getDBO();
$http = JHttpFactory::getHttp();
$response = $http->get($url);
// JHttp transport throws an exception when there's no response.
try
{
$response = $http->get($url);
}
catch (Exception $e)
{
$response = null;
}
if (!isset($response) || 200 != $response->code)
{
// If the URL is missing the .xml extension, try appending it and retry loading the update
if (!$appendExtension && (substr($url, -4) != '.xml'))
{
$options['append_extension'] = true;
return $this->findUpdate($options);
}
$query = $db->getQuery(true)
->update('#__update_sites')
->set('enabled = 0')
->where('update_site_id = ' . $this->updateSiteId);
$db->setQuery($query);
$db->execute();
JLog::add("Error parsing url: " . $url, JLog::WARNING, 'updater');
$app = JFactory::getApplication();
$app->enqueueMessage(JText::sprintf('JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL', $url), 'warning');
return false;
}
$this->xmlParser = xml_parser_create('');
xml_set_object($this->xmlParser, $this);
xml_set_element_handler($this->xmlParser, '_startElement', '_endElement');
if (!xml_parse($this->xmlParser, $response->body))
{
// If the URL is missing the .xml extension, try appending it and retry loading the update
if (!$appendExtension && (substr($url, -4) != '.xml'))
{
$options['append_extension'] = true;
return $this->findUpdate($options);
}
JLog::add("Error parsing url: " . $url, JLog::WARNING, 'updater');
$app = JFactory::getApplication();
$app->enqueueMessage(JText::sprintf('JLIB_UPDATER_ERROR_COLLECTION_PARSE_URL', $url), 'warning');
return false;
}
// TODO: Decrement the bad counter if non-zero
return array('update_sites' => $this->update_sites, 'updates' => $this->updates);
}
}
PK ´[[±çR g g adapters/extension.phpnu W+A„¶ stack, $name);
$tag = $this->_getStackLocation();
// Reset the data
if (isset($this->$tag))
{
$this->$tag->_data = "";
}
switch ($name)
{
case 'UPDATE':
$this->currentUpdate = JTable::getInstance('update');
$this->currentUpdate->update_site_id = $this->updateSiteId;
$this->currentUpdate->detailsurl = $this->_url;
$this->currentUpdate->folder = "";
$this->currentUpdate->client_id = 1;
break;
// Don't do anything
case 'UPDATES':
break;
default:
if (in_array($name, $this->updatecols))
{
$name = strtolower($name);
$this->currentUpdate->$name = '';
}
if ($name == 'TARGETPLATFORM')
{
$this->currentUpdate->targetplatform = $attrs;
}
if ($name == 'PHP_MINIMUM')
{
$this->currentUpdate->php_minimum = '';
}
break;
}
}
/**
* Character Parser Function
*
* @param object $parser Parser object.
* @param object $name The name of the element.
*
* @return void
*
* @since 11.1
*/
protected function _endElement($parser, $name)
{
array_pop($this->stack);
// @todo remove code: echo 'Closing: '. $name .'
';
switch ($name)
{
case 'UPDATE':
$ver = new JVersion;
// Lower case and remove the exclamation mark
$product = strtolower(JFilterInput::getInstance()->clean($ver->PRODUCT, 'cmd'));
// Check that the product matches and that the version matches (optionally a regexp)
// Check for optional min_dev_level and max_dev_level attributes to further specify targetplatform (e.g., 3.0.1)
if ($product == $this->currentUpdate->targetplatform['NAME']
&& preg_match('/' . $this->currentUpdate->targetplatform['VERSION'] . '/', $ver->RELEASE)
&& ((!isset($this->currentUpdate->targetplatform->min_dev_level)) || $ver->DEV_LEVEL >= $this->currentUpdate->targetplatform->min_dev_level)
&& ((!isset($this->currentUpdate->targetplatform->max_dev_level)) || $ver->DEV_LEVEL <= $this->currentUpdate->targetplatform->max_dev_level))
{
// Check if PHP version supported via tag, assume true if tag isn't present
if (!isset($this->currentUpdate->php_minimum) || version_compare(PHP_VERSION, $this->currentUpdate->php_minimum, '>='))
{
$phpMatch = true;
}
else
{
// Notify the user of the potential update
$msg = JText::sprintf(
'JLIB_INSTALLER_AVAILABLE_UPDATE_PHP_VERSION',
$this->currentUpdate->name,
$this->currentUpdate->version,
$this->currentUpdate->php_minimum,
PHP_VERSION
);
JFactory::getApplication()->enqueueMessage($msg, 'warning');
$phpMatch = false;
}
// Target platform and php_minimum aren't valid fields in the update table so unset them to prevent J! from trying to store them
unset($this->currentUpdate->targetplatform);
unset($this->currentUpdate->php_minimum);
if ($phpMatch)
{
if (isset($this->latest))
{
if (version_compare($this->currentUpdate->version, $this->latest->version, '>') == 1)
{
$this->latest = $this->currentUpdate;
}
}
else
{
$this->latest = $this->currentUpdate;
}
}
}
break;
case 'UPDATES':
// :D
break;
}
}
/**
* Character Parser Function
*
* @param object $parser Parser object.
* @param object $data The data.
*
* @return void
*
* @note This is public because its called externally.
* @since 11.1
*/
protected function _characterData($parser, $data)
{
$tag = $this->_getLastTag();
/**
* @todo remove code
* if(!isset($this->$tag->_data)) $this->$tag->_data = '';
* $this->$tag->_data .= $data;
*/
if (in_array($tag, $this->updatecols))
{
$tag = strtolower($tag);
$this->currentUpdate->$tag .= $data;
}
if ($tag == 'PHP_MINIMUM')
{
$this->currentUpdate->php_minimum = $data;
}
}
/**
* Finds an update.
*
* @param array $options Update options.
*
* @return array Array containing the array of update sites and array of updates
*
* @since 11.1
*/
public function findUpdate($options)
{
$url = trim($options['location']);
$this->_url = &$url;
$this->updateSiteId = $options['update_site_id'];
$appendExtension = false;
if (array_key_exists('append_extension', $options))
{
$appendExtension = $options['append_extension'];
}
if ($appendExtension && (substr($url, -4) != '.xml'))
{
if (substr($url, -1) != '/')
{
$url .= '/';
}
$url .= 'extension.xml';
}
$db = $this->parent->getDBO();
$http = JHttpFactory::getHttp();
// JHttp transport throws an exception when there's no reponse.
try
{
$response = $http->get($url);
}
catch (Exception $e)
{
$response = null;
}
if (!isset($response) || (!empty($response->code) && 200 != $response->code))
{
// If the URL is missing the .xml extension, try appending it and retry loading the update
if (!$appendExtension && (substr($url, -4) != '.xml'))
{
$options['append_extension'] = true;
return $this->findUpdate($options);
}
$query = $db->getQuery(true)
->update('#__update_sites')
->set('enabled = 0')
->where('update_site_id = ' . $this->updateSiteId);
$db->setQuery($query);
$db->execute();
JLog::add("Error opening url: " . $url, JLog::WARNING, 'updater');
$app = JFactory::getApplication();
$app->enqueueMessage(JText::sprintf('JLIB_UPDATER_ERROR_EXTENSION_OPEN_URL', $url), 'warning');
return false;
}
$this->xmlParser = xml_parser_create('');
xml_set_object($this->xmlParser, $this);
xml_set_element_handler($this->xmlParser, '_startElement', '_endElement');
xml_set_character_data_handler($this->xmlParser, '_characterData');
if (!xml_parse($this->xmlParser, $response->body))
{
// If the URL is missing the .xml extension, try appending it and retry loading the update
if (!$appendExtension && (substr($url, -4) != '.xml'))
{
$options['append_extension'] = true;
return $this->findUpdate($options);
}
JLog::add("Error parsing url: " . $url, JLog::WARNING, 'updater');
$app = JFactory::getApplication();
$app->enqueueMessage(JText::sprintf('JLIB_UPDATER_ERROR_EXTENSION_PARSE_URL', $url), 'warning');
return false;
}
xml_parser_free($this->xmlParser);
if (isset($this->latest))
{
if (isset($this->latest->client) && strlen($this->latest->client))
{
if (is_numeric($this->latest->client))
{
$byName = false;
// has to be 'administrator' or 'site', numeric values are deprecated. See http://docs.joomla.org/Design_of_JUpdate
JLog::add(
'Using numeric values for in the updater xml is deprecated. Use \'administrator\' or \'site\' instead.',
JLog::WARNING, 'deprecated'
);
}
else
{
$byName = true;
}
$this->latest->client_id = JApplicationHelper::getClientInfo($this->latest->client, $byName)->id;
unset($this->latest->client);
}
$updates = array($this->latest);
}
else
{
$updates = array();
}
return array('update_sites' => array(), 'updates' => $updates);
}
}
PK ´[[¦V‰ adapters/index.htmlnu W+A„¶
PK ´[[¦V‰
index.htmlnu W+A„¶ PK ´[[›»§ § Y updater.phpnu W+A„¶ PK ´[[5µÆr r ; updateadapter.phpnu W+A„¶ PK ´[[+.öâ â
î update.phpnu W+A„¶ PK ´[[fØÝ»» »
= adapters/collection.phpnu W+A„¶ PK ´[[±çR g g Z adapters/extension.phpnu W+A„¶ PK ´[[¦V‰ ¹y adapters/index.htmlnu W+A„¶ PK 0 z