2014-09-14 1 views
4

J'ai un problème lors de l'ajout de champs personnalisés dans la vue com_menus - item.Joomla 3.3 - Ajout de champs personnalisés à tous les éléments de menu via le plugin - les paramètres ne sont pas sauvegardés

Tutoriel: (voir: http://docs.joomla.org/Adding_custom_fields_to_core_components_using_a_plugin)

Le tutoriel fonctionne très bien (com_contact), mais quand je veux couvrir le point de vue élément de menu: Les paramètres ne sont pas enregistrées !!!

Ci-dessous le code que j'utilise pour déterminer le composant et la vue pour ajouter le formulaire personnalisé.

class plgContentPluginName extends JPlugin { 

    function onContentPrepareForm($form, $data) { 

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

     switch($option) { 

       case 'com_menus': { 
        if ($app->isAdmin() && $view == 'item') { 
          JForm::addFormPath(__DIR__ . '/forms'); 
          $form->loadFile('item', false); 
        } 
        return true; 
       } 

     } 
     return true; 

    } 
} 

Voici le item.xml qui est en cours de chargement (/forms/item.xml)

<?xml version="1.0" encoding="UTF-8"?>  
<form> 
     <fields name="params"> 
       <fieldset name="params" label="Custom Fields"> 
         <field name="param1" type="text" label="lbltext"/> 
         <field name="param2" type="text" label="lblText2"/> 
       </fieldset> 
     </fields> 
    </form> 

La forme est rendue correctement lorsque je crée ou la modification d'un élément de menu, mais le les valeurs ne sont pas enregistrées lorsque je clique sur "Enregistrer".

Merci.

+0

Il est peut-être préférable de demander à l'auteur (s) de la documentation (normalement fait dans le bugtracker) sur votre problème (normalement fait comme bug ou rapport de documentation). Avez-vous essayé cela? Et avez-vous vérifié avec le code source de l'API que la définition de cette valeur de configuration à "NULL" est réellement possible et dans quel contexte l'API a-t-elle été créée? NULL est le plus souvent une valeur spéciale car elle indique quelque chose comme "n'ayant aucune valeur". – hakre

+0

J'ai créé un nouveau numéro (http://issues.joomla.org/tracker/joomla-cms/5289), j'espère que cela aidera. – RAN

+0

+1 pour la question - Je cours au même problème. De quoi avez-vous besoin pour enregistrer les nouveaux champs/valeurs dans la base de données? Le lien que vous avez fourni au problème de joomla n'est pas clair sur la façon de faire ce travail. Pouvez-vous poster comment vous avez résolu cela? –

Répondre

4

J'ai résolu cela en supprimant simplement la condition $ view == 'item' dans le bloc If.

regarde enfin comme ceci:

class plgContentPluginName extends JPlugin { 

function onContentPrepareForm($form, $data) { 

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

    switch($option) { 

      case 'com_menus': { 
       if ($app->isAdmin()) { 
         JForm::addFormPath(__DIR__ . '/forms'); 
         $form->loadFile('item', false); 
       } 
       return true; 
      } 

    } 
    return true; 
} 

Le item.xml reste le même.

BTW: J'utilise Joomla version 3.4.1 maintenant.

+0

remercie son travail pour moi. –

Questions connexes