[Résolu] UDT (balise utilisateurs) avec include(). - Version imprimable +- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr) +-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html) +--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html) +--- Sujet : [Résolu] UDT (balise utilisateurs) avec include(). (/thread-3495.html) |
[Résolu] UDT (balise utilisateurs) avec include(). - guth - 21/04/2015 Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~ Bonjour, Pour le site d'un club de cyclistes, j'essaye de faire en sorte qu'à chaque nouvel article posté (que ce soit via l'admin ou via FEU), un mail de notification soit envoyé à chaque adhérent. J'utilise pour ça deux UDT (l'une pour l'ajout, l'autre pour la modification d'un article) et le gestionnaire d'évènements - NewsArticleAdded et NewsArticleEdited - et ça marche très bien (merci jissey). Ca marche si on écrit en dur les adresses mail dans les udt. Peu pratique. J'essaye alors de passer par un fichier externe au moyen d'un include, et là, ça ne marche plus. J'ai pensé à une erreur de chemin, et j'ai donc créé une udt test avec un echo sur une variable pêchée au moyen d'un include dans un fichier extérieur, et ça marche. Cette udt est incluse dans une page du site, et le chemin se fait au départ de la racine du site. Lorsque j'utilise le même chemin pour l'include des udt qui envoient les mails, ça ne marche pas. Je me dis que si la page du site qui appelle l'udt test sert de référence pour trouver le chemin vers le fichier à inclure, c'est le gestionnaire d'évènements qui sert de référence pour établir ce chemin dans l'udt de notification. Et là je ne sais plus quoi faire. Au moyen d'un __DIR__ inséré dans l'udt test et dans l'udt notification, le même chemin m'est renvoyé, mais ça ne m'aide pas : /home/dellartedu/www/veloclub/lib/classes le répertoire veloclub renfermant cms Made Simple. Comment trouver le bon chemin ? Ci-dessous, le script de l'udt appelé dans une page du site, qui renvoie les résultats attendus : Code : [== PHP ==] Ci-dessous, le script de l'udt de notification appelé par le gestionnaire d'évènements, qui marche (adresses mail en dur) : Code : [== PHP ==] Ci-dessous, le même script avec include pour les adresses mail, qui ne marche pas : Code : [== PHP ==] Pour ce script, j'ai aussi essayé à tout hasard le chemin - ../../uploads/soumission/liste_mail.php - en référence à ce que me renvoie __DIR__, sans succès. Si quelqu'un a une idée... Un grand merci ! [Résolu] UDT (balise utilisateurs) avec include(). - jissey - 22/04/2015 Bonjour, essaie ceci : Code : [== Indéfini ==] Tes adhérents sont des utilisateurs FEU? Pourquoi ne pas aller les chercher dans la base plutôt que de maintenir un fichier "a la main"? [Résolu] UDT (balise utilisateurs) avec include(). - guth - 22/04/2015 Bonsoir jissey et merci pour ta réponse. La majorité des destinataires des notifications sont en effet des adhérents du club inscrits dans la bdd, mais pas que... et j'ai effectivement pensé à l'accès à la base de données pour aller chercher le gros des adresses dans la table des utilisateurs du frontend. J'ai essayé dans l'udt un script de connexion du type : Code : [== PHP ==] Code : [== PHP ==] Merci encore. [Résolu] UDT (balise utilisateurs) avec include(). - jissey - 23/04/2015 Salut, quand tu seras revenu, tu essaieras avec un code comme ceci : Code : [== PHP ==] [Résolu] UDT (balise utilisateurs) avec include(). - guth - 27/04/2015 Bonjour, J'ai enfin pu travailler un peu, et l'include de $_SERVER['DOCUMENT_ROOT'] .'...' fonctionne nickel. Par contre, pas moyen de tirer quelque chose de la proposition d'accéder aux tables de FEU. Je ne sais pas trop où vérifier la bonne méthode, GetUsers() ne fonctionne pas et si j'essaye autre chose que GetUserName() ou GetUserId(), la page sort sans le <head> et ça montre un peu n'importe quoi. J'ai essayé ceci : Code : [== PHP ==] J'ai été voir du côté des fonctions smarty citées dans l'aide du module, mais je n'arrive pas à les faire marcher. Tout au plus j'obtiens "1" quand je tente d'afficher quelque chose. Je ne suis pas sûr de comprendre les exemples... Voilà où j'en suis pour le moment. Au moins, l'écriture dans un fichier externe facilitera un peu la chose, même si ce n'est pas très clean comme façon de procéder. Merci pour le coup de main. [Résolu] UDT (balise utilisateurs) avec include(). - jissey - 27/04/2015 bonjour, la liste des méthodes des modules se trouve dans...le code source...et oui, il faut aller à la pêche, c'est pour ça que je ne t'ai pas donné la méthode exacte. essaie avec Code : [== Indéfini ==] [Résolu] UDT (balise utilisateurs) avec include(). - guth - 27/04/2015 Bingo, ça brûle. J'avais déjà été fureter un peu dans le code source du module, mais je m'y suis perdu très vite et je me suis découragé ne sachant pas si c'était la bonne piste (GetUserInfo, GetUserProperties,...) je suis loins d'être un as du php. La partie suivante me renvoie un tableau d'où je pourrai tirer ce dont j'ai besoin : Code : [== PHP ==] La seule référence que j'ai trouvée à cette méthode (après ta solution) se trouve dans function.admin_usertab.php. Je me demande comment je pourrai m'en sortir la prochaine fois que j'aurai un problème similaire... Encore merci, jissey. [Résolu] UDT (balise utilisateurs) avec include(). - jissey - 27/04/2015 la prochaine fois, fait encore appel au forum et petit à petit, tu y arriveras tout seul. |