Submitted by Benj@drupalfr.org on
Bonjour à vous et courage tous ceux qui font vivre ce site.
Je suis un petit bleu de Drupal, j'ai a peine une dizaine de jour. Je viens de tourner la page avec Joomla(definitivement?) âpres deux ans de pratique assidue. Et ce pour une seule raison:
J'aimerais développer un petit truc simple en flash et l'api de Joomla me semblait trop brutale pour le graphiste que je suis.
Voila ce que je voudrais faire:
Inclure automatiquement un lien dans un node dès sa creation. Lien pointant vers un swf (toujours le meme) tout en lui passant des variables (GET). Ces variables en question sont les valeurs des différents champs CCK du meme node.
Donc en gros, j'aimerais articuler tout ceci comme ca:
monlien.swf?variable1=titredemonnonde&variable2=nomdufichierjoint&etc...
Deux pistes actuellement etudiées:
Piste 1
Inclure du php dans un champs ou meme dans le corps, mais quelle syntaxe utiliser?
Chez moi ceci marche:
<?php echo "texte en dur"; ?>
Mais ceci ne marche pas:
<?php echo $node->title; ?>
J'imagine bien qu'il me manque quelque chose mais quoi exactement?
Piste 2
Utiliser Computed Field pour CCK. Mais alors la moi qui ne suis déjà pas trop Php... Comment formater mes champs computed code et display format pour arriver à mes fins?
Suis je sur la bonne voie ou je fais complètement fausse route? Je suis ouvert à toute autres suggestions.
Voila... j'espère que j'aurai été assez claire, n'hésitez pas à me demander des précisions. Merci d'avance a tous ceux qui me confirmeront qu'être passer a Drupal c'est... bien! ;-)
Benjamin
D'après ce que tu décris,
Permalien Soumis par Damien Tournoud le 14 Mai, 2009 - 22:39
D'après ce que tu décris, cela me semble plutôt du ressort du thème.
Dans ton template de node (node.tpl.php), tu as accès à la variable $node, et à tout ce dont tu as besoin.
Pour cela, il faut commencer par créer un thème, est-ce que tu en as déjà un?
Sinon écrire un petit
Permalien Soumis par nyl auster le 15 Mai, 2009 - 10:15
Sinon écrire un petit module; pour éviter d'inclure une fonctionnalité dans un fichier de template (qui ne servent qu'à modifier la présentation normalement.).
Il faut que tu crée dans sites/all/modules :
- un repertoire "lien_flash"
- un fichier "lien_flash.module" qui contiendra ton code php
- un fichier "lien_flash.info" qui donne à drupal le nom de ton module (indispensable)
Le contenu de "lien_flash.module" serait le suivant, en admettant que tu ait un type de contenu "flash"
Bien sur passer dans l'administration pour activer l'admin, si le fichier info a bien été renseigné !
Enfin il vaut mieux ne pas mettre de balises fermante à ton php.
C'est le code que j'utilise pour drupal 5, à tester sous drupal 6 avec réserves.
J'ai écrit un petit truc
Permalien Soumis par nyl auster le 15 Mai, 2009 - 10:19
J'ai écrit un petit truc ici sur la manière d'insérer du php dans drupal:
http://drupalfr.org/node/6300
Créer un module n'est pas obligatoire dans ton cas, c'est juste que
1) ça permet une organisation plus claire du site si celui contient d'autres customisations de ce genre
2) tu pourras te servir du module pour implémenter des développements supplémentaires de ton type de contenu en profitant de la puissance des hooks si besoin est. (tu as donc le pouvoir également de modifier à 100% le formulaire de création de ton node grace au hook_form_alter ! )
3) tu prends le controle complet de ton node; le controle est bien moins important avec contemplate et les fichiers de template
Merci Damien, Merci Nyl, Je
Permalien Soumis par Benj@drupalfr.org le 15 Mai, 2009 - 13:57
Merci Damien, Merci Nyl,
Je vais explorer ces nouvelles pistes et vous tenir au courant de tout ca.
Mais... y'a vraiment personne qui ne sache se servir de Computed field? :-)(je suis sur que si)
Pour avoir un peu parcouru la doc anglaise de computed field hier, je sens qu'avec ce module il ne manque qu'un pet de mouche pour parvenir à mon but.
J'ai vu quelque part sur ce forum l'emploi du template pour insérer du Php, mais etant tout neuf sur Drupal, je n'ai pas encore abordé le templating. Et comme j'aimerais réutiliser mon système sur d'autres sites par la suite je préférai ne pas le lien à un template.
La piste du développement de module me parait tres bien, mais peut être un peu plus longue à appréhender par rapport au fonctionnement de computed field?
Je vais voir tout ca. Allez hop, au boulot! ;-)
Merci pour ces réponses rapide et précises!
Benjamin
C'est bon j'ai trouvé
Permalien Soumis par Benj@drupalfr.org le 15 Mai, 2009 - 16:20
C'est bon j'ai trouvé comment faire ma tambouille! :-)
J'ai laissé de coté computed field (mais j'y reviendrai c'est sur, alors preparez vous à ce que je sois un peu penible avec ca.. ;-))
Je me suis penché du coté de node.tpl.php et à l'aide de devel j'ai compris tres rapidement comment afficher ce que je voulais.
Subsistent encore deux questions dont je crois avoir la reponse mais que je testerai plus tard:
Comment attribuer cet affichage a un seul type de contenu et l'afficher ou non selon le type d'utilisateur? Contemplate sera t'il suffisant?
Merci de me confirmer tout ca!
Benjamin
Contemplate + CCK !!! Je
Permalien Soumis par Benj@drupalfr.org le 17 Mai, 2009 - 00:27
Contemplate + CCK !!!
Je m'eclate comme un dingue avec ce cms!
Je ne regrette pas d'avoir lâcher Joomla, j'ai l'impression de passer de la conduite d'un train vapeur à celle d'un avion de chasse!
Merci pour ces tuyaux precieux!
Contemplate est un outil
Permalien Soumis par nyl auster le 17 Mai, 2009 - 09:50
Contemplate est un outil très pratique mais attention : il "court-circuite" tous changements qui pourraient survenir ensuite sur le node : pour le dire plus clairement : si tu installes un nouveau modules et que celui-ci ajoute quelque chose dans le contenu du node par exemple; tu ne le verras pas sauf à ajouter manuellement la nouvelle variable via contemplate (en tous cas dans drupal 5 ça fonctionne comme ça).
C'est juste un avertissement car ce comportement peut surprendre si on n'est pas au courant.
Tu as aussi la possibilité de créer un fichier de template spécifique à ton type de exemple :
node-story.tpl.php
n'affectera que les nodes qui ont pour type de contenu "story".
http://drupal.org/node/190815#page-suggestion
Ok merci du tuyau Nyl, et
Permalien Soumis par Benj@drupalfr.org le 18 Mai, 2009 - 20:17
Ok merci du tuyau Nyl, et effectivement ca à l'air de se passer comme ca aussi dans Drupal 6. Je ne pense pas que se soit un problème car je connais a peu près le nombre de type de contenus finaux: 2 ou 3, pas plus...
J'ai conscience que ce n'est surement pas la manière la plus souple et pérenne de pratiquer mais je suis hélas dans l'urgence et j'ai déja bien commencer avec contempla te. Mais promis, après je créerai un fichier tpl.php pour chacun de mes contenus !
(d'ailleurs passer mon code de contemplate a mes fichiers tpl.php ne doit pas vraiment s'éloigner du copier/coller en fait?) Je verrai si j'ai le temps.
Merci en tout cas de tes conseils!
Benjamin