web-dev-qa-db-ja.com

Joomla JForm SQLフィールド:グローバル構成から条件を取得する

私はform.xml-definitionに次のフィールドを取得しました:

<field  name="attachedto" 
        type="sql"  
        label="COM_BESTIA_FIELD_ATTACHEDTO" 
        query="SELECT id, title FROM #__bestia_items WHERE state = 1" 
        key_field="id" 
        value_field="title" 
        multiple="true"
        required="false">
</field>    

次に、コンポーネントの構成の設定に従ってstate = 1を変更したいと思います。 configに「use state = 0 "と表示されている場合、クエリはWHERE state = 1からWHERE state = 0に変更されます。

どうやってやるの?

1
MyFault

使用しているSQLフォームフィールドタイプでは、これは不可能です。ただし、 カスタムフォームフィールドタイプを開発することもできます。 。非常に役立つ既存のJFormFieldListをサブクラス化することを検討してください。 getOptions()メソッドを記述するだけで済みます。

<?php
defined('_JEXEC') or die('Restricted access');

jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

class JFormFieldAttachedto extends JFormFieldList {

    protected $type = 'Attachedto';

    public function getOptions() 
    {
        // Get component config (JComponentHelper::getParams('com_yourcomponent'));
        // Make SQL query
        // Return all options as array
    }
}
3
fruppel