Besoin d'aide pour terminer un bouton editors-xtd

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

  • [RÉGLÉ] Besoin d'aide pour terminer un bouton editors-xtd



    Salut,

    J'ai besoin d'aide pour terminer mon plugin-xtd qui affichera un bouton en dessous de l'éditeur de textes afin de faciliter l'ajout de tag dans les articles, le tout sous Joomla!1.6

    Mon projet quasi terminé est le suivant ;

    - En 1er lieu j'ai déjà crée un plugin de type "content" qui ajoute des vidéos dans les articles, il a ceci de particulier qu'il est comme le célèbre plugin "all vidéos" à la différence prêt que j'ai privilégié en plus des sempiternels Youtube, Metacafe, Vimeo, Dailymotion etc ... l'ajout de player de sites français, peu représenté voir même une partie adulte +18, en outre le plugin est capable d'afficher TOUT ses players en même temps dans un article !

    - En 2eme lieu j'ai jugé bon de créer un "bouton" pour faciliter l'ajout de tout ses tags dans les articles car à ce jours ils sont plus de 17 et je compte en rajouter encore quelques uns.
    J'ai déjà terminé mes plugins et ils fonctionnent parfaitement, cependant j'aimerai les améliorer pour en faciliter l'utilisation.

    Voici ce que j'ai réussi à faire, (individuellement) leur avantage et leurs inconvénients :
    1.) Je peu sans problème ajouter un ou plusieurs tag (voir tous en même temps) dans l'article, mais sans possibilité de choix pour l'utilisateur.

    2.) Je peu faire surgir une fenêtre prompt qui invite l'utilisateur à saisir son code vidéo directement, en cliquant sur OK le code s'insère seul entre les balise du tag et s'ajoute tout seul dans l'article, c'est la solution la plus sympathique mais elle ne fonctionne que pour un seul tag prédéfinit à l'avance.

    3.) Enfin la solution que je préfère est d'ouvrir un pop-up avec une liste de choix de tag, quand on clique sur OK dans ce pop-up une fenêtre prompt nous invite alors à saisir notre code à insérer en fonction de ce tag, tout en fermant le popup.

    - Mon besoin d'aide se trouve à ce niveau, j'ai réussi à créer un fichier PHP qui s'ouvre en pop-up, je l'ai nommé tag.php

    - Ce fichier tag.php contient une liste déroulante et affiche la fenêtre prompt en fonction de notre sélection voici son contenus provisoire, il fonctionne parfaitement bien, mais il ne se ferme pas encore faute de commande :

    Code PHP:
    <html>
    <
    body>
    <
    script>
    function 
    reac()
    {
    var 
    selon=document.forage.choisir.selectedIndex
    switch(selon)
    {case 
    0:prompt('metacafe','');break;
    case 
    1:prompt('youtube','');break;
    case 
    2:prompt('vimeo','');break;
    case 
    3:prompt('myspace','');break;
    case 
    4:prompt('redtube','');break;
    case 
    5:prompt('xnxx','');break;
    default:
    prompt('metacafe','');break;
    }
    }
    </
    script>
    <
    form name="forage">
    Quel tag désirez-vous inserer dans votre article ?<br><br>
    <
    select name="choisir" id="choisir">
               <
    optgroup label="Public">
                   <
    option value="metacafe">metacafe</option>
                   <
    option value="youtube">youtube</option>
                   <
    option value="vimeo">vimeo</option>
                   <
    option value="myspace">myspace</option>
               </
    optgroup>
               <
    optgroup label="Adult +18">
                   <
    option value="redtube">redtube</option>
                   <
    option value="xnxx">xnxx</option>
               </
    optgroup>
           </
    select>
    <
    input type="button" onclick="reac()" value="OK">
    </
    form>
    </
    body>
    </
    html
    Note : vous pouvez exécuter ce code sur un serveur en local par exemple, vous verrez qu'il fonctionne très bien

    J'appel ce fichier tag.php depuis mon bouton plugin de type editeur-xtd avec cette commande :

    Code PHP:
    window.open('../plugins/editors-xtd/elioproallvideosbouton/tag.php','nom_fenêtre''width=400,height=400'); 
    La fenêtre s'ouvre bien, le script fonctionne bien depuis le popup et la fenêtre promp s'affiche bien.

    Voici mon problème :

    Comment récupérer la valeur obtenue dans mon fichier principal de la fenêtre appelante ?

    Je ne sais pas comment faire pour que la fenêtre principal reconnaisse ce pop-up et inversement.
    - Je ne sais pas quoi ajouter dans mes fichiers PHP (principaux et pop-up pour qu'ils communiquent ensemble.
    Important, l'appel de la fenêtre se fait obligatoirement depuis le bouton de l'éditeur-xtd en Java script puisque
    Code PHP:
     $js ""
    nous est imposé par Joomla! comme on le voit ici :

    Code PHP:
    $doc        JFactory::getDocument();
    $js "";
    $doc->addScriptDeclaration($js); 
    Merci de votre coup de main et puis je trouve ça une bonne idée pour régler le problème d'ajout de tag qu'une fenêtre nous demande directement d'ajouter notre tag et qu'elle s'occupe du reste

    NOTE : tout mes plugin on des fichiers langages, ce qui est fort sympathique

    Amicalement.
    Dernière édition par felichon à 10/04/2011, 06h25

  • #2
    Re : Besois d'aide pour terminer un bouton editors-xtd

    je n'ai encore pas créé de bouton d'éditeur, mais j'avoue que le sujet m'intéresse notamment pour mon plugin Mediaboxtag_CK
    Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
    http://www.template-creator.com Outil de création de templates
    Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

    Commentaire


    • #3
      Re : Besois d'aide pour terminer un bouton editors-xtd

      Salut,

      En fait c'est assez facile quand on à pigé le truc, et qu'on veux juste inserer un tag, même sous Joomla!1.6

      En revanche ça se complique sérieusement quand on veux faire ce que j'ai évoqué.

      D'un autre coté, je veux juste récupérer le "résultat" du contenu du popup pour permettre au code du bouton d'ajouter le tag approprié.

      Je sais interpréter le tag approprié, mais je sais pas comment récupérer ce maudit résultat du popup et faire que ce popup reconnaisse la fenêtre qui la appelé.

      J'ai regardé t'es codes, tu fait souvent appel a du javascript dans d'autre fichiers depuis t'es fichiers principaux.

      On peu pas faire la même chose pour le contenu du popup de mon cas, bien que je ne veuille récupérer que le resultat du bouton OK de la fenêtre promp ?

      Commentaire


      • #4
        Re : Besois d'aide pour terminer un bouton editors-xtd

        Bonjour,

        Es-ce que c'est cela que tu veut faire : Récupérer les données du DOM parent

        /* Insertion */
        Code:
        window.parent.jInsertEditorText(tag, '<?php echo JRequest::getVar('e_name'); ?>');
        window.parent.document.getElementById('sbox-window').close();
        A+
        Bonne prog .

        Commentaire


        • #5
          Re : Besois d'aide pour terminer un bouton editors-xtd

          Salut Dev07,

          Oui en gros c'est ça, mais bon j'ai pas vraiment encore essayé.


          Voici concrètement comment ce passe l'ajout de tag depuis l'editeur-xtd sans passer par le pop-up mais qui affiche une fenêtre prompt (c'est un bon plan que j'ai trouvé pour faciliter la saisie dans les tag) qui demande d'ajouter l'identifiant d'une video:

          Ce n'est qu'a cet endroit qu'on peu faire des choses car le reste du code est exclusivement réservé au fonctionnement du plugin dans Joomla!

          Code PHP:


          // note :  insertelioproallvideosbouton est le nom de mon "plugin bouton"

          // Tout le code propre au plugin-xtd ici

          // Note $dialog consulte mon fichier langue
          $dialog JText::_('PLG_ELIOPROALLVIDEOSBOUTON_BUTTON_ELIOPROALLVIDEOSBOUTON');

          $js "
                      function insertelioproallvideosbouton(editor) {
                        
                        
            var tag=prompt('"
          .$dialog."','4076216/terminator_2_judgment_day_movie_trailer/');
            if(tag==null)
            {
            var tag='';
            }
                              jInsertEditorText('{eliometacafe}'+tag+'{/eliometacafe}', editor);
                          
                      }
                      "
          ;


                  
          $doc->addScriptDeclaration($js);

          // Tout le code propre au plugin-xtd ici 
          Cette ligne de code affiche le tag prédéterminé

          Code PHP:
          jInsertEditorText(''editor); 
          On peu en ajouter plusieurs pour ajouter plusieurs tag dans l'article :

          Code PHP:
          jInsertEditorText('{eliometacafe}'+tag+'{/eliometacafe}'editor);
          jInsertEditorText('{le tag de mon choix}{/le tag de mon choix}'editor); 
          Ou mieux, on peu ajouter un simple text !

          Code PHP:
          jInsertEditorText('bonjour le monde !'editor); 
          Moi j'ai appelé mon pop-up comme ceci depuis cette artie:

          Code PHP:
          $js "
                      function insertelioproallvideosbouton(editor) {
                        
                        
              window.open('../plugins/editors-xtd/elioproallvideosbouton/tag.php','nom_fenêtre', 'width=400,height=400');           
           
                              jInsertEditorText('{eliometacafe}'+tag+'{/eliometacafe}', editor);
                          
                      }
                      "


          Mais bon faudrai que je puisse recuperer ce que l'utilisateur à choisi dans le pop-up dans la partie +tag+ de

          Code PHP:
          jInsertEditorText('{eliometacafe}'+tag+'{/eliometacafe}'editor); 
          Car comme je l'ai dit ça fonctionne sans popup si je fait comme ça mais que pour un seul tag :

          Code PHP:
          // Note $dialog consulte mon fichier langue
          $dialog JText::_('PLG_ELIOPROALLVIDEOSBOUTON_BUTTON_ELIOPROALLVIDEOSBOUTON');
              
          $js "
                      function insertelioproallvideosbouton(editor) {
                                  
            var tag=prompt('"
          .$dialog."','4076216/terminator_2_judgment_day_movie_trailer/');
            if(tag==null)
            {
            var tag='';
            }
                              jInsertEditorText('{metacafe}'+tag+'{/metacafe}', editor);
                          
                      }
                      "

          Note, bien sur il faudrai que je met des if else ou switsh case pour que le tag ajouté corresponde bien au choix de l'utilisateur pour ce qui est du

          jInsertEditorText('{le bon tag choisi}'+tag+'{/le bon tag choisi}', editor);

          Tu vois une solution sachant que mon fichier pop-up fonctionne très bien ?

          Je vous refilerai mes fichier si ça marche pour faire vos propre plugin-xtd en vous précisant quoi modifier et ou régler le problème de l'image du bouton (et oui c'est un vrai casse tête) et aussi ajouter du css



          Merci.
          Dernière édition par felichon à 08/04/2011, 13h10

          Commentaire


          • #6
            Re : Besois d'aide pour terminer un bouton editors-xtd

            Salut,
            juste pour suivre la discussion.

            PS : Peut-être ceci t'inspirera (en complément du post précédent),
            - mais pour 1.5, mais pour un composant - :
            Joomla! • View topic - Passing data from modal window into page component
            http://forum.joomla.org/viewtopic.php?f=231&t=376519
            Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

            Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

            Commentaire


            • #7
              Re : Besois d'aide pour terminer un bouton editors-xtd

              Re-Salut,

              Note personnel :

              Il existe dans le paramètres du bouton l'option d'afficher une fenêtre "modal" qui assombri l'écran et ouvre une sorte de popup un peu comme les photos en ajax.

              L'ennui c'est que dans le lien on ne peu ajouter qu'un composant d'après ce que j'ai vu et essayé, aucun autre lien ne fonctionne, dommage, vous pouvez le tester sur le bouton 'image' ou article par défaut de Joomla.

              C'est dommage j'y aurai bien mis mon fichier tag.php dans cette fenêtre modal

              le code et de ce type pour le bouton image (une partie du code)

              Code PHP:
              function onDisplay($name$asset$author)
                  {
                      
              $app JFactory::getApplication();
                      
              $params JComponentHelper::getParams('com_media');
                       
              $user JFactory::getUser();
                      if (    
              $user->authorise('core.edit'$asset)
                          ||    
              $user->authorise('core.create'$asset)
                          ||  
              count($user->getAuthorisedCategories($asset'core.create')) > 0
                          
              || ($user->authorise('core.edit.own'$asset) && $author == $user->id)) 
                      {
                          
              $link 'index.php?option=com_media&amp;view=images&amp;tmpl=component&amp;e_name=' $name '&amp;asset=' $asset '&amp;author=' $author;
                          
              JHtml::_('behavior.modal');
                          
              $button = new JObject;
                          
              $button->set('modal'true);
                          
              $button->set('link'$link);
                          
              $button->set('text'JText::_('PLG_IMAGE_BUTTON_IMAGE'));
                          
              $button->set('name''image');
                          
              $button->set('options'"{handler: 'iframe', size: {x: 800, y: 500}}");
                          return 
              $button;
                      }
                              else
                      {
                          return 
              false;
                      }
                  } 

              Commentaire


              • #8
                Re : Besois d'aide pour terminer un bouton editors-xtd

                Merci ghazal,

                Je vais voir ça ce soir, j'ai un parquet de 45 m2 à vitrifier maintenant.

                Bonne journée les amis

                @ +++

                Commentaire


                • #9
                  Re : Besois d'aide pour terminer un bouton editors-xtd

                  dans la fonction ondisplay tu définis le bouton, un lien qui pointe vers un composant en modal. ce que je ne comprends pas encore c'est comment le composant intéragit avec l'éditeur...
                  Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                  http://www.template-creator.com Outil de création de templates
                  Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                  Commentaire


                  • #10
                    Re : Besois d'aide pour terminer un bouton editors-xtd

                    Avant que je file, je vous donne un lien qui m'a beaucoup inspiré pour créer mon plugin-xtd, je ne suis pas vache je vous le donne aussi, j'ai eu beaucoup de mal à le trouver, merci à son auteur.

                    Créer son plugin-xtd

                    J'espère que ça vous aidera aussi, d'autant plus que vous pouvez le téléchargé tout fait

                    PS, ne me lâchez pas en route pour créer le votre d'abord lol

                    Commentaire


                    • #11
                      Re : Besois d'aide pour terminer un bouton editors-xtd

                      au passage j'ai trouvé ça si ça peut aider ...
                      http://www.phoenixbits.com/
                      Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                      http://www.template-creator.com Outil de création de templates
                      Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                      Commentaire


                      • #12
                        Re : Besois d'aide pour terminer un bouton editors-xtd

                        Effectivement j'avai déjà vus ce plugin mais c'est pour du Joomla!1.5 j'y avais pas prêté attention, mais je vien de voir dans son code un truc intéressant puisqu'il utilise une boite de dialog externe au fichier mère un peu comme moi, je vais essayer ce soir :

                        Code PHP:
                        $js "                                                
                                    function IHEBP_ClickCallback( editor, result )
                                    {
                                      if( result ) {
                                        jInsertEditorText( result, editor );
                                      }
                                    }
                                    
                                    function IHEBP_openDialog( editor )
                                    {
                                      var durl = '../plugins/editors-xtd/inserthtmlex/dialog.php?ih_name=' + editor;
                                      
                                      var wnd = window.open( durl, '_blank', 'status=no,resizable=yes,width=600,height=250,left=200,top=250' );
                                      wnd.focus();
                                      return wnd;
                                    }            
                                    "

                        PS : pour faire vos propres plugin, le précèdent lien que je vous ai filé est excellent, pour l'intégrer a Joomla!1.6 il vous suffit de vous servir du plugin-xtd par défaut de joomla "Page break" c'est le plus simple de tous et le plus pratique pour ajouter un simple tag
                        Dernière édition par felichon à 08/04/2011, 13h33

                        Commentaire


                        • #13
                          Re : Besois d'aide pour terminer un bouton editors-xtd

                          ah ben tiens je viens justement de tester le plugin 'test' du site que tu cites ! c'est un bon début
                          Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                          http://www.template-creator.com Outil de création de templates
                          Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                          Commentaire


                          • #14
                            Re : Besois d'aide pour terminer un bouton editors-xtd

                            Utilise le code du plugin par défaut de Joomla!1.6 pagebreak (saut de page)

                            Remplace simplement la partie $js = ''" ; de ce plugin par celui de test que tu ppeu télécharger et hop tu a du Joomla! 1.6

                            Code PHP:
                            $js =  "                     
                             function buttonTestClick(editor) {
                                                        txt = prompt('Please enter something','123');
                                                         if(!txt) return;
                                                          jInsertEditorText('{test '+txt+'}', editor);
                            }"

                            Merci qui, merci bibi

                            Commentaire


                            • #15
                              Re : Besoin d'aide pour terminer un bouton editors-xtd

                              Précision : Pour l'image du bouton et le CSS tu peu aussi le metre dans des dossiers a part et les appeler comme ça : (c'est ce que j'ai fait)

                              Code PHP:
                                  $template    $app->getTemplate();
                                      
                              $dialog JText::_('PLG_ELIOPROALLVIDEOSBOUTON_BUTTON_ELIOPROALLVIDEOSBOUTON');
                                      
                                      
                              JHTML::stylesheet'elioproallvideosbouton.css''plugins/editors-xtd/elioproallvideosbouton/elioproallvideosbouton_images/css/' );
                                      
                              JHTML::_('behavior.modal'); 
                              Le fichier css contenant bien entendus ce qu'il faut pour afficher l'image au bon endroit.

                              Autre astuce pour faire son bouton implacablement :

                              1.) rendez-vous dans le dossier template de ce chemin templates\system\images

                              2.) récupérer l'image j_button2_blank.png modifiez la a votre gout et placez la dans le dossier de votre choix, il ne vous reste plus qu'a l'appeler pour qu'elle colle au bouton de l'éditeur, si vous ne mettez pas ce type d'image et ben il vous manquera la partie de droite du bouton.

                              Dernière édition par felichon à 08/04/2011, 13h44

                              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

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X