CMS Automne http://www.automne-cms.org/forum/ |
|
[Résolu] Une question au sujet des rangées de module PHP http://www.automne-cms.org/forum/viewtopic.php?f=2&t=717 |
Page 1 sur 1 |
Auteur: | pdub75 [ Mar Oct 19, 2010 2:05 pm ] |
Sujet du message: | [Résolu] Une question au sujet des rangées de module PHP |
Bonjour, j'ai peut-être pas compris la documentation, mais en tout cas voici une question naïve . Dans un formulaire j'ai un select-option produit en PHP comme ceci : Code : <select id="affich" name="affich" > Et çà fonctionne très bien. <?php if (isset($_POST['affich'])) { switch ($_POST['affich']) { case $typesoin: $chaine = "<option selected>type de soin</option>" ."<option>lieu</option>"; break; case $lieusoin: $chaine = "<option>type de soin</option>" ."<option selected>lieu</option>"; break; default: $chaine = "<option selected>type de soin</option>" ."<option>lieu</option>"; } }else { $chaine = "<option selected>type de soin</option>" ."<option>lieu</option>"; } $content .= $chaine; ?> </select> Mais je me demandais comment faire pour intégrer cela dans la commande <block module="cms_forms" id="blockID" type="formular">...</block> J'ai essayé en adaptant bien sûr le nom du 'module' et le 'type' , et en créant le fichier PHP correspondant dans le répertoire qui va bien. Mais çà ne donne rien. Ce qui me fait dire que je n'ai pas compris. Merci d'avance. |
Auteur: | Sébastien [ Mar Oct 19, 2010 2:46 pm ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
Bonjour, Le module formulaire (cms_forms) ne gère pas l'inclusion de PHP dans les rangées. Ça ne fonctionne que pour les modules polymod et pour le module standard. Tu veux faire quoi précisément ? Seb |
Auteur: | pdub75 [ Jeu Oct 21, 2010 8:20 am ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
Bonjour Sébastien, et merci pour le complément d'info. le code PHP que tu as vu me permet de définir 2 options possibles pour mon SELECT. En fonction de l'option choisie par l'internaute, et validée par le bouton "Executer" , cela affiche un tableau de 2 manières différentes. En l'occurrence, les mêmes infos seront présentées à l'écran soit par région géographique, soit par type d'activité. C'est pourquoi j'ai injecté directement ce code PHP dans le formulaire. Et compte tenu du choix de l'internaute, je place donc la propriété 'selected' sur la bonne option pour pouvoir ré-afficher ce choix lors du renvoi de la page par le serveur. Une façon de dire à l'internaute < vous avez choisi l'option d'affichage N° 1, voici donc le tableau correspondant > Je cherchais le moyen éventuel de séparer le code PHP de la rangée de contenu. Il y a bien sûr la possibilité d'utiliser les catégories en créant 2 catégories pour cet usage et un objet supplémentaire dans mon polymod. Cela fonctionne très bien et permet de ne pas avoir de code PHP qui traîne dans la rangée de contenu, mais je trouve cela un peu ridicule car pas très approprié, les 2 catégories ajoutées n'étant pas de réelles catégories mais plutôt une ruse pour gérer un affichage . C'est la raison pour laquelle je me suis résolu à coder en dur du PHP dans la rangée de contenu. Voili, voilou |
Auteur: | Sébastien [ Jeu Oct 21, 2010 8:28 am ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
ok, mais alors pourquoi le mettre dans un block du module cms_forms ? As tu des données en provenance de ce module à récupérer ? Si ça n'est pas le cas, enlève simplement ce tag block. |
Auteur: | pdub75 [ Jeu Oct 21, 2010 1:03 pm ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
Oui c'est ce que je disais. Comme le tag block ne donnait aucun résultat, je l'ai donc enlevé et j'ai codé en dur les lignes PHP pour traiter le SELECT. J'avais simplement pas bien intégré que le tag block pour l'inclusion de PHP ne pouvait être utilisé qu'à l'intérieur même d'un POLYMOD et pas en dehors. Autant pour moi donc |
Auteur: | Sébastien [ Jeu Oct 21, 2010 1:08 pm ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
Non, en fait chaque tag block fait référence à un module (via l'attribut module du tag). Chaque module offre ensuite des capacités qui lui sont propres à l'intérieur de ce tag block. Mais si tu ne veux pas faire référence à des fonctions spécifiques d'un module particulier, rien ne t'oblige à employer des tags blocks dans tes rangées, tu peux très bien avoir quelque chose de ce genre là : Code : <row>
<?php ... ?> </row> |
Auteur: | pdub75 [ Jeu Oct 21, 2010 4:38 pm ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
Ah oui cette fois j'ai pigé Du coup j'avais bon quand j'écrivais : Code : <row> Car j'avais besoin de mon module 'pplan' et de ses propriétés, et j'avais aussi besoin de lignes PHP spécifiques. Mais j'ai bien compris que si l'usage d'un module ne se justifiait pas j'aurais pu coder directement une séquence PHP à l'intérieur de <row></row><block module="pplan" id="docssearch" language="fr"> <atm-setvar vartype="var" varname="typesoin" value="type de soin" /> <atm-setvar vartype="var" varname="lieusoin" value="lieu" /> <!--Search form--> <div id="docssearch"> <form action="{page:self:url}" method="post"> <h3>Rechercher des documents : </h3> <label for="cat">Type de soins : </label> <select id="cat" name="cat"> <option value=""></option> <atm-function function="selectOptions" object="{planifier:Type_de_technique}" selected="{request:int:cat}"></atm-function> </select> <label for="affich"> Affichage par : </label> <select id="affich" name="affich" > <?php if (isset($_POST['affich'])) { $affich = $_POST['affich']; switch ($_POST['affich']) { case $typesoin: $chaine = "<option selected>type de soin</option>" ."<option>lieu</option>"; break; case $lieusoin: $chaine = "<option>type de soin</option>" ."<option selected>lieu</option>"; break; default: $chaine = "<option selected>type de soin</option>" ."<option>lieu</option>"; } }else { $affich = $typesoin; $chaine = "<option selected>type de soin</option>" ."<option>lieu</option>"; } $content .= $chaine; ?> </select> ........ </block> </row> Par contre, si ma séquence PHP était longue et risquait de rendre la lecture du code fastidieuse, rien ne m'empêcherait de placer tout mon code PHP dans un fichier à part nommé par exemple 'monfichier.php' et de l'appeler de cette façon : <?php require_once ("/automne/templates/monfichier.php");?> en plaçant cette ligne de code à l'endroit qui va bien dans ma rangée de contenu. J'ai supposé ici que le fichier était placé dans /automne/templates/ (pourquoi pas !) J'ai bon là ? Par contre, dans mon cas et juste pour l'exercice l'ai ajouté à la fin de ma rangée un block comme ceci : <block module="pplan" id="unID" type="test"></block> et j'ai créé le fichier mod_pplan_test.php dans le répertoire /automne/templates/ . Ce fichier contient seulement le code suivant : <?php echo 'TOTO'; ?> Et j'ai testé, mais rien ne s'affiche. En revanche, la ligne de code <block ...></block> n'apparaît pas dans le code XHTML de la page affichée, et c'est plutôt encourageant. Excuses moi d'être un peu lourd sur le sujet mais je sens que cela pourrait bien m'être d'une utilité dans un futur proche. |
Auteur: | Sébastien [ Jeu Oct 21, 2010 5:08 pm ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
pdub75 a écrit: Par contre, si ma séquence PHP était longue et risquait de rendre la lecture du code fastidieuse, rien ne m'empêcherait de placer tout mon code PHP dans un fichier à part nommé par exemple 'monfichier.php' et de l'appeler de cette façon : <?php require_once ("/automne/templates/monfichier.php");?> en plaçant cette ligne de code à l'endroit qui va bien dans ma rangée de contenu. J'ai supposé ici que le fichier était placé dans /automne/templates/ (pourquoi pas !) J'ai bon là ? Oui, ça c'est bon. pdub75 a écrit: Par contre, dans mon cas et juste pour l'exercice l'ai ajouté à la fin de ma rangée un block comme ceci : <block module="pplan" id="unID" type="test"></block> et j'ai créé le fichier mod_pplan_test.php dans le répertoire /automne/templates/ . Ce fichier contient seulement le code suivant : <?php echo 'TOTO'; ?> Et j'ai testé, mais rien ne s'affiche. En revanche, la ligne de code <block ...></block> n'apparaît pas dans le code XHTML de la page affichée, et c'est plutôt encourageant. Hum, comme je te disais, chaque module a des capacités spécifiques au niveau du tag block. - le module formulaire (cms_forms) ne gère pas le PHP à l'intérieur du tag block. - les modules polymod ne gèrent pas l'inclusion de PHP via l'attribut type. Pour faire ça, il faudrait que tu créé un module spécifique (en PHP) qui pourrait gérer cette fonction spécifique. Cette fonction a été implémentée dans le module "Moteur de recherche" par exemple (http://doc.automne.ws/web/Documentation ... module=276) |
Auteur: | pdub75 [ Jeu Oct 21, 2010 5:36 pm ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
Ah ben là je touche aux limites du raisonnable, du moins à mon niveau. Je m'en tiendrai donc à ce que tu m'a déjà dit précédemment. Du code PHP en direct si nécessaire. Cà marche très bien comme çà ! Merci beaucoup en tout cas pour tous ces détails. Et bonne soirée à toi |
Auteur: | Frank [ Jeu Oct 21, 2010 5:49 pm ] |
Sujet du message: | Re: Une question au sujet des rangées de module PHP |
Te prive pas, on aborde justement des sujets intéressants sur le développement avec Automne |
Page 1 sur 1 | Le fuseau horaire est UTC [Heure d’été] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |