Joomladay francophone 2018 à Paris 18 et 19 mai

Ajouter des paramètres à un formulaire de soumission d'article

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Ajouter des paramètres à un formulaire de soumission d'article

    Bonjour,
    Nous avons actuellement une documentation gérée par Joomla assez conséquente, avec de nombreuses catégories et niveaux d'accès.
    J'essaye de faciliter la création d'article en créant un formulaire personnalisé.

    J'ai déjà créé une vue alternative du formulaire ici :
    /<monsite>/templates/<montemplate>/html/com_content/form/edit.php
    ... ce qui m'a permis de le simplifier en n'affichant que les champs nécessaires.

    Je voudrais ajouter 2 améliorations à ce formulaire :

    1) Assigner une catégorie racine, c'est à dire avoir dans le formulaire un champ select avec une catégorie et ses catégories enfants. La catégorie racine serait paramétrée en "dur" dans la vue ou en option dans les paramètres du menu. Je ne sais pas s'il faut passer par le champ existant 'category' et ajouter un paramètre, ou s'il faut créer un champ personnalisé.

    2) Assigner un niveau d'accès par défaut : afficher une valeur de niveau d'accès, paramétré de la même façon, mais en laissant la liste complète et la possibilité de changer sa valeur.

    Voilà, je ne sais pas si tout ça est réalisable et quelle est la meilleure piste.
    Merci pour votre aide !

  • #2
    Re : Ajouter des paramètres à un formulaire de soumission d'article

    Bonjour,
    Tu gères tes articles avec juste un Joomla ou en ayant ajouté un CCK par dessus ?
    Cordialement,
    Chabi01 - http://www.xlformation.com

    Commentaire


    • #3
      Re : Ajouter des paramètres à un formulaire de soumission d'article

      En effet je me suis intéressée aux CCKs, ce qui était assez logique, pour arriver à la conclusion que c'était une transformation complète du contenu pour un besoin qui est assez précis au départ... J'avoues que j'ai du mal, dans ce cas, à ne pas considérer la mise en place d'un CCK comme un risque pour pas grand chose.
      J'ai passé quasiment 1 semaine à développer sur FlexiContent, qui avait les retours les plus positifs, pour m'apercevoir qu'on perdait une partie de la gestion des versions, qui est une fonction importante pour nous : bascule à l'installation donc perte de tout l'historique existant et non réversibilité (perte des versions FC en cas de désinstallation), limitation du nombre de versions, impossibilité d'y accéder en frontend.

      Donc on a ce besoin précis de formulaires simplifiés, qui doit reposer sur quelque chose d'absolument fiable et robuste, et pour une utilisation qui va peu évoluer sur le long terme.

      Commentaire


      • #4
        Re : Ajouter des paramètres à un formulaire de soumission d'article

        Salut
        As-tu regardé Seblod ?
        Formation Joomla agence internet https://www.stylitek.com
        Melijoy création de site Joomla compétitif https://www.melijoy.fr
        agence web spécialiste référencement http://www.agence-web-stylitek.fr

        Commentaire


        • #5
          Re : Ajouter des paramètres à un formulaire de soumission d'article

          Je me répète, pour moi ce sont des outils puissants et assez fiables, mais dans mon cas ça revient à installer une usine dans ma cuisine juste pour avoir des glaçons...
          J'ai déjà passé plusieurs jours sur une solution qui n'était pas viable, il me semble que ce sont des gros outils dont il est impossible de mesurer l'impact avant de les avoir vraiment intégrés.

          Je cherche surtout une solution dans le code pour limiter le périmètre au maximum.
          Ou alors une extension mais qui soit minimale...

          Commentaire


          • #6
            Re : Ajouter des paramètres à un formulaire de soumission d'article

            Bonjour,

            Perso, j'ai du faire face à une sélection sur 760 catégories réparties sur trois niveaux...

            Pour résoudre le casse-tête, j'ai utilisé : http://www.appelsiini.net/projects/chained

            Yann
            JoomlaDay FR 2018 - 18/19 Mai 2018 ! J'y serai ... et vous ?

            Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

            Commentaire


            • #7
              Re : Ajouter des paramètres à un formulaire de soumission d'article

              Ah oui, c'est intéressant.
              Dans mon cas le plus important c'est de choisir dans les sections principales de la doc, qui correspondent au premier niveau.

              Par contre le html du select généré par Joomla renvoie une liste d'option toutes à plat, le seul moyen de lire leur niveau c'est le nombre de '-' en préfixe. Pas d'id, pas de class.. Ou alors je commence par modifier le html ?

              Sinon j'ai regardé les paramètres du champ 'category' et je me demandais si je pouvais utiliser l'option 'extension' d'une façon ou d'une autre pour avoir une catégorie racine.. mais c'est surement une idée un peu tordue
              Mais avoir une catégorie racine pour le select (pas plus de 2 ou 3 formulaires différents, un par section) serait l'idéal.
              Dernière édition par 8Fanny8 à 20/09/2016, 14h08

              Commentaire


              • #8
                Re : Ajouter des paramètres à un formulaire de soumission d'article

                Je relance une fois parce que je n'ai pas encore de piste solide.
                S'il fallait définir une priorité ce serait : assigner une catégorie racine à une vue de formulaire.
                Dans le formulaire la catégorie se trouve ici :
                /<monsite>/templates/<montemplate>/html/com_content/form/edit.php
                Code PHP:
                <?php echo $this->form->renderField('catid'); ?>
                Je ne sais pas si c'est réaliste d'appeler un autre champ alternatif à libraries/legacy/form/field/category.php ou s'il vaut mieux intégrer une requête dans le formulaire (déjà overridé) et de quelle manière...

                Commentaire


                • #9
                  Re : Ajouter des paramètres à un formulaire de soumission d'article

                  Envoyé par 8Fanny8 Voir le message
                  Dans le formulaire la catégorie se trouve ici :
                  /<monsite>/templates/<montemplate>/html/com_content/form/edit.php
                  Code PHP:
                  <?php echo $this->form->renderField('catid'); ?>
                  Bonjour, oui effectivement

                  Juste pour exemple :

                  Code PHP:
                  <?php 
                   jimport
                  'joomla.html.html.category' );
                   
                  $category_options JHtml::_('category.options''com_content');
                   
                  $html '<select name="catid" id="catid">';
                   
                  $html .= JHTML::_('select.options'$category_options);
                   
                  $html .= '</select>';
                   echo  
                  $html;
                   
                  // verif affichage liste    
                   
                  print("<pre>".print_r($category_options,true)."</pre>");
                  ?>
                  ou

                  Code PHP:
                          <?php 
                          
                  //droit acces categorie
                          
                  $levels JAccess::getAuthorisedViewLevels($userid);
                          foreach (
                  $levels as $level){ 
                                      
                  $vacl[] = "access = ".$level;
                                  }
                          
                  //recherche categorie        
                          
                  $db JFactory::getDbo();
                          
                  $query $db->getQuery(true);
                          
                  $query->select(array('extension''id','title''access','params','parent_id'));
                          
                  $query->from('#__categories');
                          
                  $query->where('extension ='.$db->quote('com_content'));
                          
                  $query->AND($vacl,'OR');
                          
                  $db->setQuery($query);
                          
                  $categories $db->loadObjectList();  
                          
                  //id de categorie racine a verifier depuis table categorie
                          
                  $idcatselect="9";
                          
                  //exemple affichage select liste categorie
                      
                  echo  JHtml::_('select.genericlist'$categories'jform[catid]''class="categorie"' 'id','title'$idcatselect'jform_catid');

                  // verif affichage liste    
                      
                  print("<pre>".print_r($categories,true)."</pre>");
                              
                  ?>
                  JoomlaDay FR 2018 - 18/19 Mai 2018 ! J'y serai ... et vous ?

                  Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                  Commentaire


                  • #10
                    Re : Ajouter des paramètres à un formulaire de soumission d'article

                    Super, ça fonctionne !

                    J'ai adapté la requête (where et order by) pour avoir une liste plus pertinente :

                    Code PHP:
                                                <?php  
                                                
                    //droit acces categorie 
                                                
                    $levels JAccess::getAuthorisedViewLevels($userid); 
                                                foreach (
                    $levels as $level){  
                                                            
                    $vacl[] = "access = ".$level
                                                        } 
                                                
                    //recherche categorie         
                                                
                    $db JFactory::getDbo(); 
                                                
                    $query $db->getQuery(true); 
                                                
                    $query->select(array('extension''id','title''access','params','parent_id')); 
                                                
                    $query->from('#__categories'); 
                                                
                    $query->where('extension ='.$db->quote('com_content').'AND published = 1 AND path LIKE "racine%"'); 
                                                
                    $query->order('lft');
                                                
                    $db->setQuery($query); 
                                                
                    $categories $db->loadObjectList();   
                                                
                    //id de categorie racine
                                                
                    $idcatselect="38"
                                                
                    //exemple affichage select liste categorie 
                                                
                    echo  JHtml::_('select.genericlist'$categories'jform[catid]''class="categorie"' 'id','title'$idcatselect'jform_catid'); 
                                                
                    ?>
                    Il y a encore 3 petits points à régler avant de pouvoir utiliser cette solution :

                    1) Le $idcatselect="38"; ne fonctionne pas, je ne sais pas pourquoi, à la place j'ai utilisé le chemin de la catégorie, qui commence par la chaine de la catégorie racine (path LIKE "racine%"), mais je me doute que ce n'est pas très propre...

                    2) On n'a plus le préfixe '-' qui permettait de connaitre le niveau de la catégorie et donc d'avoir une vision de l'arborescence, je ne suis pas arrivée à le rajouter ;

                    3) Plus génant : la liste charge la requête ce qui fait qu'on se retrouve avec la catégorie de base quand on ouvre le formulaire pour modifier un article déjà existant, qui a pourtant une autre catégorie assignée.

                    Voilà, je suis désolée de demander tout ça alors que l'objectif dépasse mes compétences Joomla, je pose humblement la question parce que je suis enthousiaste à l'idée de mettre ça en prod

                    Merci beaucoup !
                    Fanny

                    Commentaire


                    • #11
                      Re : Ajouter des paramètres à un formulaire de soumission d'article

                      Je reviens vers vous, j'ai plus ou moins réglé les 2 premiers points mais le 3e reste mystérieux pour moi...

                      Donc :
                      1) Pas propre mais contourné avec le 'path LIKE "racine%"'
                      2) J'ai rajouté un CASE sur le titre affiché qui ajoute une indentation et un préfixe devant le titre, je ferai une boucle quand j'aurai le temps.

                      Ce qui nous donne :
                      Code PHP:
                      <?php   
                          
                      //droit acces categorie  
                          
                      $levels JAccess::getAuthorisedViewLevels($userid);  
                          foreach (
                      $levels as $level){   
                                      
                      $vacl[] = "access = ".$level;  
                                  }  
                          
                      //recherche categorie          
                          
                      $db JFactory::getDbo();  
                          
                      $query $db->getQuery(true);  
                          
                      $query->select(array('extension'
                                               
                      'id',
                                               
                      'title'
                                               
                      'access',
                                               
                      'params',
                                               
                      'parent_id'
                                               
                      'CONCAT((CASE level WHEN 1 THEN "" 
                                                                   WHEN 2 THEN "&nbsp;|&nbsp;" 
                                                                   WHEN 3 THEN "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;" 
                                                                   WHEN 4 THEN "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;" 
                                                                   WHEN 5 THEN "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;" 
                                                                   WHEN 6 THEN "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;" 
                                                                   WHEN 7 THEN "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;" 
                                                                   ELSE "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;" END),
                                                        title) AS titre'
                      ));  
                          
                      $query->from('#__categories');  
                          
                      $query->where('extension ='.$db->quote('com_content').'AND published = 1 AND path LIKE "banco%"');  
                          
                      $query->order('lft'); 
                          
                      $db->setQuery($query);  
                          
                      $categories $db->loadObjectList();    
                          
                      //id de categorie racine 
                          
                      $idcatselect="38";  
                          
                      //exemple affichage select liste categorie  
                          
                      echo  JHtml::_('select.genericlist'$categories'jform[catid]''class="categorie"' 'id','titre'$idcatselect'jform_catid');  
                      ?>
                      Par contre :
                      3) Je ne sais toujours pas comment afficher, dans un formulaire de modification d'un article, la même liste avec l'option de la catégorie de l'article affichée par défaut...

                      Merci encore pour votre aide précieuse,
                      Fanny

                      Commentaire

                      Annonce

                      Réduire
                      1 sur 2 < >

                      C'est [Réglé] et on n'en parle plus ?

                      A quoi ça sert ?
                      La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                      Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                      Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                      Comment ajouter la mention [Réglé] à votre discussion ?
                      1 - Aller sur votre discussion et éditer votre premier message :


                      2 - Cliquer sur la liste déroulante Préfixe.

                      3 - Choisir le préfixe [Réglé].


                      4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                      2 sur 2 < >

                      Assistance au forum - Outil de publication d'infos de votre site

                      Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                      Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                      Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                      UTILISER À VOS PROPRES RISQUES :
                      L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                      Problèmes connus :
                      FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                      Installation :

                      1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                      Archive zip : https://github.com/AFUJ/FPA/zipball/master

                      2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                      3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                      4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                      5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                      6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                      et remplacer www. votresite .com par votre nom de domaine


                      Exemples:
                      Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                      Télécharger le script fpa-fr.php dans: /public_html/
                      Pour executer le script: http://www..com/fpa-fr.php

                      Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                      Télécharger le script fpa-fr.php dans: /public_html/cms/
                      Pour executer le script: http://www..com/cms/fpa-fr.php

                      En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                      Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                      Voir plus
                      Voir moins
                      Travaille ...
                      X