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開発に完全に新しいので、自分では理解できません。
前もって感謝します。
これを試して 、
通常、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はSQL
ファイルにXML
を書き込む別のオプションを提供します。
以下のようなもの。
<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>
詳細は here を参照してください。
それが役に立てば幸い。
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 を参照してください。前のリンクから学習したコードでこれを使用してください