web-dev-qa-db-fra.com

Plugin de contenu avec plusieurs onglets dans la vue de modification d'article

je fais un plugin de contenu simple en utilisant les documents joomla 3.

Cependant, je veux que plus d'un onglet apparaisse.

voici mes fichiers principaux. Le plugin est installé et s’exécute avec succès, mais un seul onglet apparaîtra jamais.

extras.php

// no direct access
defined ( '_JEXEC' ) or die ( 'Restricted access' );
class plgContentExtras extends JPlugin {

// the language file would have to go into languages folder

        protected $autoloadLanguage = true;

        function onContentPrepareForm($form, $data) {
                $app = JFactory::getApplication();
                $option = $app->input->get('option');
                switch($option) {
                        case 'com_content':
                                if ($app->isAdmin()) {

                                        JForm::addFormPath(__DIR__ . '/forms');
                                        $form->loadFile('extras', true);

                                }                           

                                return true;
                }
                return true;
        }
}

formulaires/extras.xml

<?xml version="1.0" encoding="UTF-8"?>
<form>
        <fields name="params">
                <fieldset name="params"  label="Map" >
                        <field
                                name="mapinfo"
                                type="text"
                                label="Map Info"
                                />

                </fieldset>

                <fieldset name="params"  label="eBlast" >
                        <field
                                name="eblastinfo"
                                type="text"
                                label="Eblast Info"
                                />

                </fieldset>

        </fields>   

</form>

Merci à tous à l'avance pour votre aide :)

ps: je suis un novice à cela.

J'ai également essayé d'ajouter un $form->loadFile('eblast', true); supplémentaire au fichier extras.php, puis de créer un fichier supplémentaire appelé eblast.xml dans le dossier forms /, mais cela n'a pas fonctionné non plus.

1
Jonnypixel

En effet, vous avez attribué le même nom aux deux <fieldset> Mots clés. Chacun doit avoir un nom différent, par exemple:

<fieldset name="map" label="Map">
    <field
        name="mapinfo"
        type="text"
        label="Map Info"
    />
</fieldset>

<fieldset name="eblast" label="eBlast">
    <field
        name="eblastinfo"
        type="text"
        label="Eblast Info"
    />
</fieldset>

Vous verrez que j'ai utilisé name="map" et name="eblast".

Mise à jour:

Pour accéder aux paramètres, vous pouvez simplement utiliser les éléments suivants:

$this->params->get('mapinfo');
$this->params->get('eblastinfo');

J'espère que cela t'aides

1
Lodder