web-dev-qa-db-fra.com

Comment spécifiez-vous pour afficher uniquement certains boutons éditeurs-xtd sur le type de champ de formulaire de l'éditeur?

Je crée un composant personnalisé et, dans ma fiche, j'utilise le type de champ de formulaire de l'éditeur. Voici la documentation: https://docs.joomla.org/Editor_form_field_type

Il semble que peu importe la valeur que j'ai définie pour l'attribut editors-xtd 'buttons', aucun bouton n'est affiché. Il existe une exception. Si l'attribut est défini sur true, tous les boutons sont affichés. Dans le contexte de mon composant, seuls les boutons article et image sont applicables.

La documentation semble indiquer que l'attribut 'buttons' devrait inclure un tableau de boutons à exclure, dans ce cas, saut de page et readmore. J'ai essayé un certain nombre de choses dont aucune n'a eu le résultat souhaité.

Comment cela fonctionne-t-il réellement? Merci de votre aide.

6
Zachary Draper

Essayez quelque chose comme ça:

boutons = "true" | Afficher tous les boutons. masquer = "article, image" | Un tableau des boutons que vous souhaitez masquer.

<field 
   name="myeditor" 
   label ="label text"
   type="editor"
   editor="jce"
   buttons="true"
   width="450"
   height="280"
   hide="article,image"
   filter="safehtml"
   description="description text" />
4
FFrewin

Dans ce cas, vous devez passer une chaîne de valeurs séparées par des virgules dans le champ de formulaire des boutons que vous ne souhaitez pas afficher. Ceci est éclaté dans un tableau ici: https://github.com/joomla/joomla-cms/blob/staging/libraries/cms/form/field/editor.php#L222

Dans le champ de formulaire, vous obtenez une instance de JEditor et dans la méthode getButtons, elle filtrera les boutons que vous avez listés. https://github.com/joomla/joomla-cms/blob/staging/libraries/cms/editor/editor.php#L436 Le nom des boutons que vous pouvez voir sur la ligne 450 devrait être le nom du plugin

5
George Wilson

En plus de George Wilson la réponse:

Lors de l'instanciation de l'éditeur directement dans votre code source, vous pouvez fournir un tableau de boutons qui devraient être cachés à la méthode display de l'éditeur.

Normalement, vous pourriez activer l'affichage de tous les boutons en fournissant true au paramètre buttons, comme suit:

$editor = JEditor::getInstance();
echo $editor->display(
    'my-editor',
    'Default value',
    600,
    100,
    10,
    10,
    true // Show all buttons
);

Voir https://api.joomla.org/cms-3/classes/JEditor.html#method_display . Selon l'API, le paramètre buttons prend un booléen soit true ou false. En pratique, cependant, il est possible de fournir un tableau comme celui-ci:

$editor = JEditor::getInstance();
echo $editor->display(
    'my-editor',
    'Default value',
    600,
    100,
    10,
    10,
    array( 'article', 'pagebreak' ) // List of buttons that should be hidden
);

Je crois que la liste complète des noms de boutons que vous pouvez masquer est la suivante:

  • article
  • image
  • saut de page
  • lire la suite
0
halfpastfour.am