it-swarm.com.de

Joomla JForm SQL-Feld: Hole Bedingung aus globaler Konfiguration

ich habe das folgende Feld in meiner 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>    

Jetzt möchte ich den state = 1 entsprechend den Einstellungen in der Konfiguration der Komponente. Wenn config "use state = 0" sagt, sollte sich die Abfrage von WHERE state = 1 bis WHERE state = 0.

Wie kann ich das machen?

1
MyFault

Bei dem von Ihnen verwendeten SQL-Formularfeldtyp ist dies nicht möglich. Sie können jedoch einen benutzerdefinierten Formularfeldtyp entwickeln. . Überlegen Sie, ob Sie die vorhandene JFormFieldList in eine Unterklasse einteilen möchten, da dies sehr hilfreich ist. Sie müssen nur die Methode getOptions () schreiben.

<?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