カスタムモジュールを開発しています。バックエンドで選択したいくつかの画像を表示するには、このモジュールが必要です。そのため、モジュールのxmlファイルで「imagelist」タイプのパラメーターを宣言しています。
<fields name="params">
<fieldset name="advanced">
<field
name="project1-image"
type="imagelist"
directory="???\images"
label="..."
description="..." />
</fieldset>
</fields>
問題は、「images」ディレクトリが一部のJoomlaテンプレートにあることです。 "JPATH_COMPONENT"や "JPATH_BASE"のような定数が現在サイトに適用されているテンプレートを指していますか?または、サイト管理者にファイル名を書いて、それを私のモジュールのphpファイルで見つけるように強制する必要がありますか(これは悪い解決策のようです)。
ディレクトリの値を入力すると、Joomlaインストールのルートからの相対値になります。したがって、テンプレートから画像を取得する場合は、次のコードを使用します。
directory="templates/TEMPLATE_NAME/images"
これは事前定義されたテンプレートにのみ使用でき、cannotはcurrentテンプレートに使用できます。
そのためには、カスタムフォームフィールドを作成する必要があります。 imagelist
フォームフィールドをコピーしてパスを変更することをお勧めします
見てください https://Gist.github.com/leFlea-snippets/4602845
PHP:Joomla-アクティブなテンプレートパスを取得する
// Get active template path from anywhere on Joomla:
$app = JFactory::getApplication();
$path = JURI::base(true).'/templates/'.$app->getTemplate().'/';