Pas beaucoup d'explications trouvées pour le champ de formulaire de liste prédéfinie à l'adresse https://docs.joomla.org/Standard_form_field_types
Quelqu'un peut-il m'aider s'il vous plaît comment cela peut être configuré?
predefinedlist
le champ de formulaire étend le champ list
ordinaire. Il permet de créer des menus déroulants avec des options prédéfinies (comme son nom l’indique). Permettant également d'ajouter des options personnalisées via XML.
Par exemple, il est utilisé par les types de champs status
, userstate
et useractive
(également non documentés). Ce sont principalement utilisés par Joomla! Extensions de base.
Je pense que le manque de documentation pour ces champs est causé par l'extension du champ list
. En fin de compte, ces champs sont des champs list
ordinaires.
Jetez un oeil à status
champ code source .
<?php
/**
* @package Joomla.Libraries
* @subpackage Form
*
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('predefinedlist');
/**
* Form Field to load a list of states
*
* @since 3.2
*/
class JFormFieldStatus extends JFormFieldPredefinedList
{
/**
* The form field type.
*
* @var string
* @since 3.2
*/
public $type = 'Status';
/**
* Available statuses
*
* @var array
* @since 3.2
*/
protected $predefinedOptions = array(
'-2' => 'JTRASHED',
'0' => 'JUNPUBLISHED',
'1' => 'JPUBLISHED',
'2' => 'JARCHIVED',
'*' => 'JALL'
);
}
Comme vous pouvez le constater, il ajoute simplement Joomla! Statuts de base à protéger $predefinedOptions
.
JFormFieldPredefinedList
( source ) étend JFormFieldList
( source ) et son seul but est d'ajouter des options sans les ajouter par le biais de XML. Ces éléments sont maintenant ajoutés au champ list
normal en tant qu'options.
Dans le composant personnalisé, cela permet d’ajouter plus d’options (statuts) si nécessaire, en évitant la possibilité de supprimer les éléments nécessaires. Et bien sûr, vous pouvez créer votre propre champ personnalisé et l’étendre de JFormFieldPredefinedList
.
Ce code XML provient du filtre d'état de la vue des articles du composant Contenu (com_content). Comme indiqué précédemment, le champ status
étend le champ predefinedlist
.
<field
name="published"
type="status"
label="COM_CONTENT_FILTER_PUBLISHED"
description="COM_CONTENT_FILTER_PUBLISHED_DESC"
onchange="this.form.submit();"
>
<option value="">JOPTION_SELECT_PUBLISHED</option>
</field>
Résultat:
Il ajoute une seule option, qui est "- Select Status -" (première option par défaut). Toutes les autres options sont prédéfinies à partir de JFormFieldStatus
propriété de classe $predefinedOptions
. Vous ne pouviez pas les supprimer ou les modifier via XML.
Fondamentalement, le champ de formulaire predefinedlist
(JFormFieldPredefinedList
class) est utilisé pour protéger certaines options, le champ qui doit absolument en avoir. Il n'est pas destiné à être utilisé en tant que champ autonome.