web-dev-qa-db-fra.com

Les champs personnalisés dans com_content ne s'affichent pas lors de la modification d'un article au début

J'ai créé un plugin pour ajouter un champ personnalisé à la suite de cette réponse . Fonctionne bien lorsque je suis connecté au backend et que je modifie l'article, mais l'onglet ne s'affiche pas lorsque l'article est en cours de modification. Est-ce que je manque quelque chose ici ou dois-je le faire comme le mentionne la documentation ici

Plugin XML:

<?xml version="1.0" encoding="UTF-8"?>
<form>
    <fields name="attribs" >
        <fieldset name="custom" >
            <field name="full_article_image_overlay"
                type="editor"
                filter="safehtml"
                buttons="true"
                label="PLG_FULL_ARTILCE_IMAGE_TEXT"
                />
        </fieldset>
    </fields>
</form>

Plugin PHP:

function onContentPrepareForm($form, $data) {

        $app = JFactory::getApplication();
        $option = $app->input->get('option');

        switch($option) {

            case 'com_content':
                if ($app->isAdmin()) {
                        JForm::addFormPath(__DIR__ . '/forms');
                        //Show specific forms based on categories
                        $form->loadFile('content', false);
                }
                return true;

        }

        return true;
    }
}

Données stockées dans la colonne 'attribs'

{
  "show_title": "",
  "link_titles": "",
  "show_tags": "",
  "show_intro": "",
  "info_block_position": "",
  "show_category": "",
  "link_category": "",
  "show_parent_category": "",
  "link_parent_category": "",
  "show_author": "",
  "link_author": "",
  "show_create_date": "",
  "show_modify_date": "",
  "show_publish_date": "",
  "show_item_navigation": "",
  "show_icons": "",
  "show_print_icon": "",
  "show_email_icon": "",
  "show_vote": "",
  "show_hits": "",
  "show_noauth": "",
  "urls_position": "",
  "alternative_readmore": "",
  "article_layout": "",
  "show_publishing_options": "",
  "show_article_options": "",
  "show_urls_images_backend": "",
  "show_urls_images_frontend": "",
  "full_article_image_overlay": "<p>Test Test<\/p>"
}
1
sifu

Dans le formulaire d'édition d'article avant, seuls les champs sélectionnés sont ajoutés. Si vous voulez ajouter quelque chose ici, vous devrez utiliser Template Overrides pour éditer ce fichier: /components/com_content/views/form/tmpl/edit.php. Pour le moment, ce composant ne charge pas automatiquement les champs de formulaire personnalisés, contrairement à com_content.

Ajout de champ dans la disposition form.php de la vue d'article

Si vos données sont stockées dans le champ attribs (params fieldset in form), quelque chose comme ceci devrait fonctionner:

<?php echo $this->form->renderField('YOUR_FIEL_DNAME', 'params'); ?>

Ajout de champ dans l'objet de formulaire article par plugin

Pour ajouter un champ personnalisé à Article Form, vous pouvez utiliser ce didacticiel: https://docs.joomla.org/Adding_custom_fields_to_core_components_using_a_plugin Cependant, rappelez-vous qu'il vous reste à ajouter le champ approprié dans la vue.

2
Artur Stępień