Joomlaを開発しています!コンポーネントとさまざまなプラグイン、ライブラリ、モジュール、およびテンプレートを含むパッケージ。パッケージレベルのインストールスクリプトとコンポーネントレベルのインストールスクリプト(どちらもscript.mycomponent.php
という名前)があります。パッケージレベルのインストールはまだテストしていませんが、コンポーネントのみをインストールすると、コンポーネントレベルのスクリプトファイルは正常に動作します。
インストール後にscript.mycomponent.php
ファイルがnotがコンポーネントのadministrator/com_mycomponent
ディレクトリに移動されていることに気づきました。私はそれをデータベースのどこかにロードしているところから頭の後ろに持っていましたが、それが起こっているという証拠はありません(OT:Joomla!は実行可能ファイルをロードしますPHPデータベース内のスクリプト?)。
ビルドプロセスでインストールスクリプトの2つのコピーをパッケージ化する必要がありますか-1つはコンポーネントアーカイブのルートに、もう1つは管理者フォルダーにありますか?これはJoomlaによって自動的に行われるべきではありません!インストーラ?
コンポーネントのマニフェストファイル(mycomponent.xml
)についても同じ問題(および質問)があります。 DBに読み込まれていますか?ビルドプロセスのadministrator/com_mycomponent
ディレクトリに手動でコピーを配置する必要がありますか?インストール後にパッケージインストーラーファイルとマニフェストファイルはどこに保存されますか?
短い答えは、いいえ、コピーする必要はありませんインストールスクリプトパッケージまたはコンポーネント(またはJoomla拡張機能)をインストールするときはどこでも。自動的に行われます。
もう少し詳しく:Joomla拡張機能のインストールでは、さまざまなアダプタクラスが責任を負います。これは、InstallerAdapterで始まり、PackageAdapter、ComponentAdapater、PluginAdapterなどによって拡張されます。すべての拡張タイプに対応します。
パッケージアダプターは、マニフェストXMLファイルを{joomla_root}/administrator/manifestsフォルダーにコピーし、同時にコピーします(スクリプト宣言がマニフェスト){joomla_root}/administrator/manifests/your_package_nameフォルダーへのパッケージインストーラースクリプトファイル。
同じことがコンポーネントでも発生します(パッケージ内にある場合でも)。コンポーネントアダプタは、インストーラスクリプトファイルをadministrator/'your_extension_root'
フォルダに(管理者/コンポーネントルートに)コピーします。
今、私の経験から、注意すべき最も重要なことは、インストールスクリプトファイルに正しい名前が付けられていることをマニフェストXMLで確認することです(もしそれはマニフェストでまったく宣言されていました)。スクリプトファイルをマニフェストXMLで宣言するのを忘れたことはほとんどなく、なぜスクリプトが実行されなかったのか、拡張機能のルートフォルダーにインストールスクリプトファイルが表示されなかったのかと疑問に思っていました)。インストール後に上記のパスにコピーされたインストールスクリプトファイルが見つからない場合は、マニフェストXMLファイルまたはインストールスクリプトファイル名に間違いがある可能性があります。
命名が重要になる可能性があります:[〜#〜] fof [〜#〜]例(私はそれがあなたのケースであることを知っているので)、パッケージ名が 'Akeeba'の場合、たとえば、スクリプトファイル名script.akeeba.php
であると同時に、com_akeebaコンポーネントスクリプトファイル名はscript.com_akeeba.php
です。名前はどこでもscript.php
にすることもできますが、それでも機能しますが、パッケージを開発する場合は、区別できる名前を使用することをお勧めします。インストールスクリプトの自動コピーに関しては、FOFベースの拡張機能と通常のJoomla拡張機能の間に違いはありません。
データベースにスクリプトやマニフェストファイルが保存されているとは思いません。
コンポーネントのマニフェストファイルは、インストールプロセスの一環として、administrator/com_mycomponentディレクトリに格納する必要があります。また、ユーザーが特別な作業を行う必要はありません。パッケージマニフェストファイルは/ administrator/manifests/packages/mypackageに配置されます。
コンポーネントとともにインストールスクリプトを保存する場合は、マニフェストxmlファイルでこれらの行を使用できます。 2つのコピーを用意する必要はありませんが、インストールスクリプトがコンポーネントとともに自動的に保存されるとは思いません。
<scriptfile>install/install.script.php</scriptfile>
<administration>
<files>
<folder>install</folder>
</files>
</administration>
テリー