web-dev-qa-db-fra.com

Joomla JForm SQL-Field: Obtenir une condition de la configuration globale

j'ai le champ suivant dans mon 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>    

Maintenant, je voudrais changer le state = 1 selon les paramètres définis dans la configuration du composant. Si config indique "use state = 0", la requête devrait passer de WHERE state = 1 à WHERE state = 0.

Comment puis je faire ça?

1
MyFault

Avec le type de champ de formulaire SQL que vous utilisez, ceci n'est pas possible. Cependant, vous pourriez développer un type de champ de formulaire personnalisé. . Envisagez de sous-classer JFormFieldList existant, ce qui vous aidera beaucoup. Il vous suffira d'écrire la méthode 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