web-dev-qa-db-fra.com

Comment réactiver le site de mise à jour d'une extension

J'ai une extension livrée sous forme de package, qui combine un module, un plugin et un composant.

J'ai la balise updateserver habituelle dans mon manifeste:

<updateservers>
    <server type="extension" priority="1" name="myext">http://www.fasterjoomla.com/myext.xml</server>
</updateservers>

et un fichier correspondant hébergé sur le serveur. Une balise dans ce fichier n'a pas été correctement configurée, mais elle a fonctionné jusqu'à il y a quelques versions. alors boum! Cessé de travailler. (le paquet a été défini en tant qu'administrateur au lieu de site). Alors je l'ai corrigé et ça a recommencé à fonctionner.

Voici le problème: le site de mise à jour a été désactivé dans la plupart de mes sites de test en raison de l'erreur. Et tandis que Joomla 2.5 a un joli bouton "Nettoyer le cache" dans la page de mise à jour des extensions:

/administrator/index.php?option=com_installer&view=update

qui a invoqué le

administrator/components/com_installer/controllers/update.php:purge()

function, qui à son tour appelle la enableSites() dans le modèle de mise à jour.

Hélas, je ne trouve pas ce bouton dans Joomla 3. Et j’ai essayé de déboguer, mais je ne vois pas comment cette fonction serait appelée.

Aidez-moi! Trois mille utilisateurs sont coincés avec une ancienne version et ils ne le savent pas!

Mise à jour: j'ai déposé un bogue: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=34043&start=

2
Riccardo Zorn

Commentaire sur le problème de joomlacode de Brian:

"Cela a déjà été résolu et ce sera dans la version 3.4."

3.4 devrait être publié sous peu. Toute la discussion a eu lieu ici: https://github.com/joomla/joomla-cms/pull/3775

1
Riccardo Zorn

Accédez au Options du Joomla 3 Installation Manager Et définissez la valeur "Mise à jour en mémoire cache (en heures)" sur 0 (zéro).

Joomla 3 Installer Manger Options

Selon la documentation JUpdater sur la findUpdates($eid = 0, $cacheTimeout = 0), si elle est définie sur zéro, les informations de mise à jour seront forcées.

/**
 * Finds an update for an extension
 *
 * @param   integer  $eid           Extension Identifier; if zero use all sites
 * @param   integer  $cacheTimeout  How many seconds to cache update information; if zero, force reload the update information
 *
 * @return  boolean True if there are updates
 *
 * @since   11.1
 */
public function findUpdates($eid = 0, $cacheTimeout = 0)
1
Craig