J'ai créé un script.php qui contient la fonction suivante:
protected function update400()
{
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');
JFolder::delete(JPATH_ROOT . '/media/mod_MYMODULE/js');
}
Cette fonction est ensuite appelée à l'intérieur de la preflight()
prédéfinie de Joomla. La fonction devient, appelée, cependant lors de l'installation, j'obtiens l'erreur suivante:
JInstaller: :Install: File does not exist C:\wamp\www\tmp\install_53de639f7a0b6\400\media\js
Au début, je pensais que c’était parce que j’appelais update400()
à partir de la fonction preflight()
; j’ai donc essayé de l’appeler à partir de la fonction postflight()
, mais cela toute différence.
Ce que j'essaie de comprendre, c’est pourquoi on cherche dans le dossier tmp
lorsque j’ai défini le chemin.
Est-ce que quelqu'un sait pourquoi cela se passe?
J'utilise JPATH_SITE
dans la méthode de mise à jour, ce qui me convient le mieux.
Je ne voudrais pas utiliser le preflight
du tout. Il supprimerait les fichiers même si la mise à jour échoue, ce qui n’est probablement pas ce que vous voulez. postflight
est le plus approprié, mais vous devez vérifier s'il s'agit d'une installation, mise à jour ou découverte.