web-dev-qa-db-fra.com

Supprimer le dossier lors de la mise à jour de l'extension

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?

1
Lodder

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.

1
Bakual