Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JUpdater
+ Graphe d'héritage de JUpdater:
+ Graphe de collaboration de JUpdater:

Liste de tous les membres

Fonctions membres publiques

 __construct ()
 findUpdates ($eid=0, $cacheTimeout=0)
 update ($id)
- Fonctions membres publiques inherited from JAdapter
 __construct ($basepath, $classprefix=null, $adapterfolder=null)
 getDBO ()
 setAdapter ($name, &$adapter=null, $options=array())
 getAdapter ($name, $options=array())
 loadAllAdapters ($options=array())
- Fonctions membres publiques inherited from JObject
 __construct ($properties=null)
 __toString ()
 def ($property, $default=null)
 get ($property, $default=null)
 getProperties ($public=true)
 getError ($i=null, $toString=true)
 getErrors ()
 set ($property, $value=null)
 setProperties ($properties)
 setError ($error)

Fonctions membres publiques statiques

static getInstance ()

Attributs protégés statiques

static $instance

Additional Inherited Members

- Attributs protégés inherited from JAdapter
 $_adapters = array()
 $_adapterfolder = 'adapters'
 $_classprefix = 'J'
 $_basepath = null
 $_db
- Attributs protégés inherited from JObject
 $_errors = array()

Description détaillée

Définition à la ligne 25 du fichier updater.php.


Documentation des constructeurs et destructeur

JUpdater::__construct ( )

Constructor

Depuis:
11.1

Définition à la ligne 38 du fichier updater.php.

{
// Adapter base path, class prefix
parent::__construct(__DIR__, 'JUpdater');
}

Documentation des fonctions membres

JUpdater::findUpdates (   $eid = 0,
  $cacheTimeout = 0 
)

Finds an update for an extension

Paramètres:
integer$eidExtension Identifier; if zero use all sites
integer$cacheTimeoutHow many seconds to cache update information; if zero, force reload the update information
Renvoie:
boolean True if there are updates
Depuis:
11.1

Définition à la ligne 71 du fichier updater.php.

Références JArrayHelper\arrayUnique(), et JTable\getInstance().

{
$db = $this->getDBO();
$retval = false;
// Push it into an array
if (!is_array($eid))
{
$query = 'SELECT DISTINCT update_site_id, type, location, last_check_timestamp FROM #__update_sites WHERE enabled = 1';
}
else
{
$query = 'SELECT DISTINCT update_site_id, type, location, last_check_timestamp 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];
$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;
}

+ Voici le graphe d'appel pour cette fonction :

static JUpdater::getInstance ( )
static

Returns a reference to the global Installer object, only creating it if it doesn't already exist.

Renvoie:
object An installer object
Depuis:
11.1

Définition à la ligne 52 du fichier updater.php.

{
if (!isset(self::$instance))
{
self::$instance = new JUpdater;
}
}
JUpdater::update (   $id)

Finds an update for an extension

Paramètres:
integer$idId of the extension
Renvoie:
mixed
Depuis:
11.1

Définition à la ligne 197 du fichier updater.php.

Références JTable\getInstance().

{
$updaterow = JTable::getInstance('update');
$updaterow->load($id);
$update = new JUpdate;
if ($update->loadFromXML($updaterow->detailsurl))
{
return $update->install();
}
return false;
}

+ Voici le graphe d'appel pour cette fonction :


Documentation des données membres

JUpdater::$instance
staticprotected

Définition à la ligne 31 du fichier updater.php.


La documentation de cette classe a été générée à partir du fichier suivant :