Utilisation du trigger onAfterContentSave

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

  • Utilisation du trigger onAfterContentSave

    Bonjour,

    Je suis novice dans l'administration de Joomla, mais informaticien de métier.
    Aprés pas mal de recherche, impossible de trouver un composant qui envoi un mail à un groupe d'utilisateurs aprés la création d'un article.

    Je me lance donc dans l'ajout de la fonction directement par code.
    En cherchant je trouve un systeme de Dispatcher/trigger. Impecc.

    Pour les articles, (content) il y a un fichier example.php dans le répertoire plugins\content.
    Je trouve la fonction onAfterContentSave qui a l'air celle déclenchée aprés la sauvegarde d'un article.
    En modifiant cette fonction, rien ne se passe.

    Y'a-t-il autre chose à faire à part modifier cette fonction ?

    Merci

    Alexandre
    Dernière édition par sabin à 25/07/2009, 23h24 Raison: réglé

  • #2
    site docs.joomla.org

    Bravo tu as levé les points clés de ton besoin :

    1. le dispatcher qui gere les events comme "onAfterContentSave"
    2. un exemple de plugin qui est capable d'interagir avec cet event

    tu me sembles bien parti !

    Perso , j'ai deja fait des plugins mais pas sur du CONTENT, donc je peux pas te garantir que ca va marcher mais en tout cas tu es bien parti

    essaye en lisant ca :
    http://docs.joomla.org/How_to_create_a_content_plugin

    Ca devrait t'aider pas mal !
    hesites pas a nous tenir au courant de tes "trouvailles" et "deboires" sur ce fil, je te suivrais ... et ca intéressera surement nos lecteurs

    Bon courage
    Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
    « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
    c’est parce que nous n’osons pas qu’elles sont difficiles. »
    - Sénèque

    Commentaire


    • #3
      oups, deja codé !

      Hello,

      Loin de moi l'idée de te saper le dev de ton 1er plugin , mais ...
      ... en cherchant un composant dans Joomlafrance, je suis tombé sur ca , ce serait pas ce que tu cherches ?

      http://www.joomlafrance.org/telechar...mitMailer.html

      Bon courage
      Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
      « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
      c’est parce que nous n’osons pas qu’elles sont difficiles. »
      - Sénèque

      Commentaire


      • #4
        presque déjà codé

        Tout d'abord, merci pour tes réponses.
        Je vais regarder ce composant.
        Mais mon besoin est peut-être pas couvert.
        Ce sont les utilisateurs qui choisiront ou non de recevoir les nouveaux articles par mail.
        J'ai ajouté via CB des attributs que chacun pourra choisir. Et selon ses attributs, envoi de mail ou pas.

        Mais comme ce composant a l'air pas loin, ca peut être sympa.

        et c pas grave, si j'ai pas de dév à faire ...

        Je tiens au courant de mon test.

        Commentaire


        • #5
          Ah effectivement, ton besoin est tres specifique !

          D'ailleurs ce besoin est généralement couvert par les flux RSS, mais du coup les utilisateurs s'abonnent a toute une categorie et pas a des articles spécifiques !

          Sinon, peut-etre qu'un lecteur RSS pour chaque utilisateur ferait l'affaire

          A+
          Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
          « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
          c’est parce que nous n’osons pas qu’elles sont difficiles. »
          - Sénèque

          Commentaire


          • #6
            une catégorie d'article ferait l'affaire.
            Les flux RSS peuvent être envoyés par mail ?
            J'avais regardé cette solution mais sans conviction.

            Commentaire


            • #7
              finalement ...

              ... j'ai fait un petit plugin.
              Ca fait pas longtemps que je me suis à joomla, et vraiment trés sympa.
              Déjà le nombre de module, composant, c'est pas mal, mais pour ajouter son propre code, pas trés compliqué et en plus sans toucher au core de joomla.

              Je fais partager mon premier plugin.
              Il reste à mettre qques petits trucs en paramètres mais sinon ca fonctionne.

              Code:
              <?php
              /**
              * @author      Alexandre DELBECQUE
              * @copyright   
              * @license     GNU General Public License, http://www.gnu.org/copyleft/gpl.html
              * @Version     1.0
              **/
              
              defined( '_JEXEC' ) or die( 'Restricted access' );
              
              $mainframe->registerEvent( 'onAfterContentSave', 'mailaftercreatecontent' );
              
              function mailaftercreatecontent($article, $isNew)
              {
              	global $mainframe;
              	$db     = &JFactory::getDBO();
              
              	// get the plugin parameters
              	$query = "SELECT u.email FROM #__users as u, #__comprofiler as cb WHERE cb.id=u.id and cb.cb_abonnement like 'News%'";
              	$db->setQuery($query);
              
              	if (!$db->query()) {
              		JError::raiseError( 333, $db->stderr());
              	}
              
              	$data = $db->loadResultArray();
              	$mail = &JFactory::getMailer();
              
              	for($i=0;$i<sizeof($mail);$i++)
              	{
              		$mail->AddBCC( $data[$i] );
              	} 
              	
              	$mail->setSender( 'webmaster@sjbc31.com', 'Saint-Jean Badminton Club' );
              	$mail->setSubject( $article->title );
              	$mail->setBody( $article->introtext );
              	$mail->IsHTML(true);
              
              	$mail->Send();
              }
              ?>
              Fichiers joints

              Commentaire


              • #8
                Super

                Super, j'ai pas testé , mais ca a l'air pas mal du tout, Bravo
                C'est vrai que si tu prevois des paramètres, ca permettra a chacun de pouvoir utilisé ton produit , ... par exemple :
                • cb_abonnement : tu pourrais mettre ca en param nommé "Nom du champ CB"
                • news% : tu pourrais mettre ca en param nommé "Valeur du champ CB"
                • proposer de concaténer une chaine avec le sujet de l'article (par exemple : "Monsite web.com <titre de l'article>")
                • l'email de l'emetteur
                • le nom de l'emetteur

                Voila, enfin c'est juste des idées comme ca !
                Il faut aussi precisé que ton plugin ne marche qu'avec un site équipé de "Community Builder"

                En tout cas merci de partager ton dev avec la communauté
                Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
                « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
                c’est parce que nous n’osons pas qu’elles sont difficiles. »
                - Sénèque

                Commentaire


                • #9
                  version 1.1

                  avec les params et des bugs en moins.

                  J'ai mis un paramètre qui demande l'utilisation ou non de CB.
                  Comme ça, si certains veulent l'utiliser et qu'ils ont pas CB, ca enverra à tous les users déclarés.

                  prochaine étape : joindre la piece attachée (avec Attachments).
                  Fichiers joints

                  Commentaire


                  • #10
                    Re : Utilisation du trigger onAfterContentSave

                    desole de relancer ce sujet si tard mais j'essaye sur J17 http://forum.joomla.fr/showthread.ph...-ne-marche-pas et le onUserAfterSave ne fait rien du tout
                    Dernière édition par ErickB à 14/01/2012, 13h28

                    Commentaire


                    • #11
                      Re : Utilisation du trigger onAfterContentSave

                      Bonjour

                      Va voir cette page http://docs.joomla.org/Adapting_a_Jo...Renamed_events

                      Tu y liras que certains évènements ont changé de nom depuis Joomla 1.6.
                      Christophe (cavo789)
                      Développeur d'aeSecure; protection, optimisation et nettoyage (après hack) de sites web Apache https://www.aesecure.com/fr
                      Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
                      Mes logiciels OpenSource : https://www.avonture.be

                      Commentaire


                      • #12
                        Re : Utilisation du trigger onAfterContentSave

                        j'ai change par onUserAfterSave et c'est exactement pareil aucun event n'est declenche

                        merci

                        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