Eu tenho uma extensão enviada como um pacote, que combina um módulo, um plug-in e um componente.
Eu tenho a tag usual do servidor de atualizações no meu manifesto:
<updateservers>
<server type="extension" priority="1" name="myext">http://www.fasterjoomla.com/myext.xml</server>
</updateservers>
e um arquivo correspondente correspondente hospedado no servidor. Uma tag nesse arquivo não foi configurada corretamente, mas funcionou até algumas versões atrás; então boom! Parou de trabalhar. (o pacote foi definido como administrador em vez de site). Então eu consertei e ele começou a funcionar novamente.
Aí vem o problema: o site de atualização foi desativado na maioria dos meus sites de teste devido ao erro. E enquanto o Joomla 2.5 possui um bom botão "Limpar cache" na página de atualização de extensões:
/administrator/index.php?option=com_installer&view=update
que invocou o
administrator/components/com_installer/controllers/update.php:purge()
, que por sua vez invocou o enableSites()
no modelo de atualização.
Infelizmente, não consigo encontrar esse botão no Joomla 3. E tentei depurar, mas não consigo ver como essa função seria chamada.
Socorro! Três milhares de usuários estão presos a uma versão antiga e não sabem disso!
Atualização: registrei um bug: http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=34043&start=
Comente sobre o assunto no joomlacode de Brian:
"Isso já foi resolvido e estará na versão 3.4".
3.4 deve ser lançado em breve. Toda a discussão ocorreu aqui: https://github.com/joomla/joomla-cms/pull/3775
Vá para Options
para o Joomla 3 Installation Manager
E defina o valor "Updates Caching (in hours)" para 0 (zero).
De acordo com os documentos JUpdater
na findUpdates($eid = 0, $cacheTimeout = 0)
se estiver definido como zero, forçará o recarregamento das informações de atualização.
/**
* 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)