it-swarm-eu.dev

Come riattivare il sito di aggiornamento di un'estensione

Ho un'estensione spedita come pacchetto, che combina un modulo, un plugin e un componente.

Ho il solito tag updateerver nel mio manifest:

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

e un file di risposta corrispondente ospitato sul server. Un tag in questo file non è stato impostato correttamente, ma ha funzionato fino a poche versioni fa; poi boom! Smesso di funzionare. (il pacchetto è stato impostato come admin anziché sito). Quindi l'ho risolto e ha ricominciato a funzionare.

Ecco il problema: il sito di aggiornamento è stato disabilitato nella maggior parte dei miei siti di test a causa dell'errore. E mentre Joomla 2.5 ha un bel pulsante "Pulisci cache" nella pagina di aggiornamento dell'estensione:

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

che ha invocato il

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

funzione, che a sua volta ha invocato enableSites() nel modello di aggiornamento.

Purtroppo non riesco a trovare questo pulsante in Joomla 3. E ho provato il debug, ma non riesco a vedere come questa funzione sarebbe invocata.

Aiuto! Tre mila utenti sono bloccati con una versione precedente e non lo sanno!

Aggiornamento: ho archiviato un bug: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=34043&start=

2
Riccardo Zorn

Commenta il problema su joomlacode di Brian:

"Questo è già stato risolto e sarà nella versione 3.4."

3.4 dovrebbe essere rilasciato a breve. Tutte le discussioni si sono svolte qui: https://github.com/joomla/joomla-cms/pull/3775

1
Riccardo Zorn

Vai a Options per Joomla 3 Installation Manager E imposta il valore "Aggiornamenti nella cache (in ore)" su 0 (zero).

Joomla 3 Installer Manger Options

Secondo JUpdater doc's su findUpdates($eid = 0, $cacheTimeout = 0) se è impostato su zero, forzerà il ricaricamento delle informazioni di aggiornamento.

/**
 * 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