Joomlaモジュールの.xmlマニフェストファイル内に「phpコード」を挿入する方法


7

joomlaモジュールのフィールドセットで、dbからフェッチした結果を含むオプションをエコーし​​ます。

<config>
<fields name="params">
<fieldset name="basic">
<field>
<?php

$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__menu_types'); 

$db->setQuery($query);
$options = $db->loadObjectList();
echo "<select>";
echo "<option value=''>select a category</option>";
foreach($options as $row) { 

   echo "<option value='" . $row->id ."'>" . $row->title . "</option>";

   }
   echo "</select>";
?>
</field>
</fieldset>

私はこのコードが完全に間違っていることを知っています(私がやりたいことを示すために投稿しただけです)が、同様のことをするモジュールをすでに検索しましたが、xml内でphpコードを使用していないことがわかりました。

だから私は別の方法があると思いますが、私はJoomlaとJoomla開発に完全に新しいので、私は自分で理解できません。

前もって感謝します。

回答:


5

これを試して 、

通常、Joomlaはすべての主要なコンポーネントカテゴリをXMLアクセス可能な方法で提供します。

例:バナーカテゴリのドロップダウンが必要な場合は、以下のように使用します。

<field
                    name="catid"
                    type="category"
                    extension="com_banners"
                    label="JCATEGORY"
                    multiple="true" size="5"
                    default=""
                    description="Your desc" >
                    <option value="">JOPTION_ALL_CATEGORIES</option>
                </field> 

コンテンツカテゴリのために、あなたのような何か試すことができますcom_contentの代わりにcom_banners。メニューも確認してください。利用できるかどうかはわかりません。

それがない場合、Joomla SQLXMLファイルに書き込む別のオプションも提供します。

以下のようなもの。

<field name="myfield" type="sql" default="10" label="Select an article" query="SELECT id, title FROM #__content" key_field="id" value_field="title" required="true">
<option value="">Please select your option</option>
</field>

詳細については、こちらをご覧ください

それが役に立てば幸い。


その他のxmlフィールドについては、こちらをご覧ください
Jobin Jose 14年

1
それは本当に役に立ちました。コンポーネントリストから自分に合うものを見つけられないことを確信しています。モジュールではすべてを取得したいのです。

4

http://docs.joomla.org/Creating_a_custom_form_field_typeをご覧になることをお勧めし ます。ガイドはコンポーネントを参照している場合がありますが、これはモジュールでも機能します(自分で試してみました)

単にガイドに従ってくださいが、ファイルを

/administrator/components/<name of your component>/models/fields/<name of your field>.php

あなたはそれらを配置する必要があります

/modules/<name of your module>/models/fields/<name of your field>.php

更新

Joomlaデータベースからデータを取得する方法については、http://docs.joomla.org/Selecting_data_using_JDatabaseを参照してください。前のリンクから学習したコードでこれを使用してください


ステップを実行し、例のように3つのオプションを使用してselectをエコーし​​ましたが、データベースからフェッチされた値を使用してselectを返すことはまったく異なります。私はまだそれを行う方法を理解しようとしています

あなたのニーズによりよく適合するように私の回答を更新しました:)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.