web-dev-qa-db-ja.com

拡張機能の更新時にフォルダーを削除する

次の関数を含むscript.phpを作成しました。

_protected function update400()
{
    jimport('joomla.filesystem.folder');
    jimport('joomla.filesystem.file');

    JFolder::delete(JPATH_ROOT . '/media/mod_MYMODULE/js');
}
_

この関数は、Joomlaの事前定義されたpreflight()内で呼び出されます。関数が取得され、呼び出されますが、インストール時に次のエラーが発生します。

_JInstaller: :Install: File does not exist C:\wamp\www\tmp\install_53de639f7a0b6\400\media\js
_

最初はupdate400()関数からpreflight()を呼び出していたためだと思ったので、代わりにpostflight()関数から呼び出してみましたが、これは失敗しました違い。

私が理解しようとしているのは、具体的にパスを定義したときにtmpフォルダを探している理由です。

なぜこれが起こっているのか誰か知っていますか?

1
Lodder

私が使う JPATH_SITE updateメソッド内で、私には問題なく動作します。

preflightはまったく使用しません。更新が失敗した場合でもファイルが削除されますが、これはおそらく望んでいないことです。 postflightが最も適切ですが、それがインストール、更新、またはそこにあるかどうかを確認する必要があります。

1
Bakual