目標は次のとおりです。別のテーブルに依存するカスタムフィールド(ドロップダウン)を備えた編集ビューがあります。そこで、アドレスのリスト(2番目のテーブル)から選択して、データ行のIDを保存できます。私はこれから始めました:
カスタムフィールドコード:
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
JHTML::_('behavior.modal');
class JFormFieldInvoiceAdress extends JFormFieldList
{
protected $type = 'invoiceadress';
protected function getInput() {
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('id,zip,city,adress');
$query->from('#__pb_invoiceadresses');
$db->setQuery((string)$query);
$types = $db->loadObjectList();
$options = array();
foreach($types as $type) {
$options[] = JHTML::_('select.option', $type->id, $type->zip . " " . $type->city . ", " .$type->adress);
}
$dropdown = JHTML::_('select.genericlist', $options, $this->name, 'class="inputbox"', 'value', 'text', $this->value);
$link = 'index.php?option=com_mycomponent&view=invoiceadresseedit&layout=edit&id=0';
$dropdown .= "<a href=\"" . JRoute::_($link) . "\" class=\"modal\" rel=\"{handler: 'iframe', size: {x: 875, y: 550}, onClose: function() {}}\" >Neue Adresse</a>";
return $dropdown ;
}
}
これは今のところ機能しますが、このモーダルウィンドウを閉じて、モーダルウィンドウに請求書アドレスのリストビューが表示されない場合は、ドロップダウンの内容を更新する必要があります。
2番目の試みは、リンクに「tmpl = component」を追加することでしたが、保存ボタンがありません。私はそれをどのように達成するのか分かりません。誰かがすでにこれを解決しましたか?