次の関数を含む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
フォルダを探している理由です。
なぜこれが起こっているのか誰か知っていますか?
私が使う JPATH_SITE
updateメソッド内で、私には問題なく動作します。
preflight
はまったく使用しません。更新が失敗した場合でもファイルが削除されますが、これはおそらく望んでいないことです。 postflight
が最も適切ですが、それがインストール、更新、またはそこにあるかどうかを確認する必要があります。