Ajout d'un script php à un template [résolu]
Est-il possible d'ajouter un script php (un bout de code php) a un template ?
Au delà de la question basique, ce que je souhaiterais pouvoir faire c'est remplacer le header de mon template (à l'endroit où il y a le titre et le slogan dans un template dérivé de boxeandarrows), par un script qui affiche une image aléatoire lors de chaque chargement de la page (donc image différente à chaque page et images stockées dans un répertoire donné)
De la même façon, j'envisage de pouvoir insérer ce même type de script dans une boite extra pour afficher un texte aléatoire (texte stocké dans un fichier .txt) pour une sorte de affichage de 'citations'
En surfant sur le net, j'ai vu qu'il existait des scripts php simples pour faire cela (style rotator.php ou alors la fonction rand) mais je ne sais pas comment les insérer dans le fichier template.php (si c'est bien cela qu'il faut faire) !!
pour info, je ne sais pas trop utiliser le php, j'essaie yacs sur mon site ici mon template est dérivé de boxeandarrows
| Bernard from nearby-an-airport Associate 6544 posts registered on Sep. 12 2003 | La démarche est effectivement la bonne. Le fichier template.php est du PHP 'pur', et non un langage de template exotique comme avec d'autres gestionnaires de contenu... Voilà c'est dit... Pour en revenir à votre question, il s'agit de marier les exemples de code PHP qui fourmillent sur Internet avec le code de base des mises en page fournies avec YACS. Pour la gestion de l'en-tête aléatoireLetemplate.php génère une division de page nommée. Par exemple pour boxesandarrows :Normalement ceci est pris en charge de manière statique par la feuille de style css, à l'identifiant #header_panel.Dans votre cas, il faudrait rajouter du code pour faire une sélection aléatoire, et remplacer les lignes de template.php citées précédemment par ce qui suit.Dans cet exemple, j'ai supposé que vous aviez trois images d'en-tête placées dans le sous-répertoire images de votre style, nommées 1.jpg, etc.Vous pouvez en avoir plus, bien entendu, et il suffit de modifier le contenu de la variable $images pour l'adapter à votre cas particulier.Ajouter une boîte extraTout ce que le scripttemplate.php connait des boîtes extra, c'est une variable qui les contient toutes. Il suffit de compléter cette variable pour ajouter une boîte au début ou à la fin de la liste. Par exemple, pour dire coucou en haut de page :Bien sur il faudrait adapter le titre et le contenu à votre cas précis. Le tout devra être inséré dans template.php, avant l'envoi de la variable au navigateur. Pour boxesandarrows, ce pourrait être juste avant la ligne :Bienvenue dans le monde merveilleux de PHP... |
Hardboiled![]() from le Web Parisien Member 174 posts registered on Jul. 13 2006 |
Bernard : Bernard : Merci de cette réponse très utile mais encore un peu absconse pour un néophyte comme moi en matière de php. Sinon Merci pour cette réactivité !!! |
| Bernard from nearby-an-airport Associate 6544 posts registered on Sep. 12 2003 |
Hardboiled: bien vu, bien vu. J'ai "oublié" le caractère inférieur avant la balise div dans echo 'div... parce que YACS ne l'accepte pas encore dans le validateur XHTML...
|
Hardboiled![]() from le Web Parisien Member 174 posts registered on Jul. 13 2006 | Bernard : Merci de cette réponse mais c'est quoi le caractère inférieur ? Que faut-il écrire au juste; d'ailleurs quand j'essaie de l'écrire dans ce message à l'aperçu je n'ai plus rien !! En un mot je suis perdu Au fait existe il un validateur de code php qui me permettrait de corriger cela ou de trouver ou est l'erreur (je rappelle que je parle aussi bien php qu'une vache espagnole) |
| Bernard from nearby-an-airport Associate 6544 posts registered on Sep. 12 2003 |
Bernard: le caractère inférieur, c'est < tout simplement... |
Hardboiled![]() from le Web Parisien Member 174 posts registered on Jul. 13 2006 | Bernard : J'essaie toujours d'insérer un code php dan mon template sans y arriver. J'ai bien créé la nouvelle boite extra comme indiqué (super ça marche, j'ai modifié le titre) mais maintenant je voudrais remplacer 'un peu de contenu'(c'est à dire le texte affiché) dans
par un texte variable issu d'un script php du type
Est-ce possible et si oui quelle est la bonne syntaxe php ? J'avoue que j'ai essayé des tas de possibilités sans y arriver (dans la majeure partie des cas je n'ai plus rien qui s'affiche)Pour les images aléatoires je n'ai toujours pas réussi même avec tes indications. Merci d'avance |
| Bernard from nearby-an-airport Associate 6544 posts registered on Sep. 12 2003 |
Hardboiled: Il faut remplacer le 'echo' par une assignation de variable. Dans l'exemple fourni :
|
Fernand![]() from Paris Member 1275 posts registered on Nov. 29 2004 | Bernard : Une question inspirée par l'explication ci-dessus concernant les images aléatoires dans le header. Quelle est la signification repeat-x; ?J'ai essayé en nommant mes images 1, 2,3 etc. par un nom. J'obtiens une frise (car ce sont de petites images). mais si j'écris top left repeat-3, par exemple (afin d'en obtenir seulement 3 alignées en haut à gauche), ou bien top left no-repeat; , je n'arrive pas à obtenir autre chose qu'une même frise continue...Je croyais que si l'onvoulait obtenir une seule image par parution d'un article dans le header, no-repeat aurait fonctionné... Dois-je, dans ce cas, retourner dans la CSS ? et toucher à quelle classe ?Hardboiled: j'aime bien cette idée |
ThierryP![]() from Nice, Drap Associate 1114 posts registered on Feb. 22 2006 |
Fernand : repeat-x = répéte les images horizontallement repeat-y = répéte les images verticalement repeat = répéte les images (tous sens) no-repeat= pas de répétition d'image ! |
Hardboiled![]() from le Web Parisien Member 174 posts registered on Jul. 13 2006 |
Fernand : Salut, Comme tu as l'air d'avoir réussi à mettre des images aléatoires dans le header (contrairement à moi) pourrais tu m'indiquer exactement la syntaxe du script php utilisé (et/ou le CSS) Merci d'avance. |
Fernand![]() from Paris Member 1275 posts registered on Nov. 29 2004 |
Hardboiled : Tu dois remplacer le morceau de code cité plus haut par Bernard: ... Par celui-ci (corrigé ici), dans template.php de ton skin, bien évidemment:Auparavant, tu auras bien entendu placé les images dans le répertoire images de ton skin... Et, tu leur donnera dans le code ci-dessus le nom qu'elles ont réellement (pas nécessairement une numérotation).En fait, ça doit absolument fonctionner ainsi !. Ne fais donc pas l'erreur que j'ai d'abord commise : ne pas attendre ! En effet, la chose met parfois un peu de temps à se mettre en place... Je fais une petite maquette pour l'un de mes amis écrivain en "boxesandarrows". J'ai placé quelques bêtises comme images... Ainsi que dans le contenu... De manière à lui donner envie rapidement de prendre les choses en main sur son propre site, et aussi de manière à tester une forme d'harmonie graphique. Etant donné que ça n'est pas abouti, je n'aime pas le montrer mais je t'envoies l'adresse par mail (il me semble que tu ne déteste pas vraiment le sujet de l'écriture) si tu me fais parvenir une adresse e-mail (ne figurant pas dans ton profil de membre). Tu verras que que le défilé des petites images dans le "header" fonctionne bien aléatoirement... C'est assez amusant d'ailleurs. Merci encore pour cette idée Si tu n'y arrivais vraiment pas, je t'enverrais le template.php, tu n'aurais qu'à remplacer le nom des images. Pas de soucis. Relevé des copies demain sur ton site ? Edited by Bernard on Mar. 3 2007 |
Fernand![]() from Paris Member 1275 posts registered on Nov. 29 2004 |
ThierryP : Merci pour cette réponse claire et concise. Je n'avais plus les yeux en face des trous au bout de quelques heures de plongée dans les divers codes... Et puis, comme je le disais plus haut, je n'ai pas attendu suffisamment longtemps le résultat de mes essais avec no-repeat... Il fallait sans doute le temps que ça se mette en place (site de test sur Free). Toutefois, je vais le laisser quelques heures encore comme tel, pour Gérard, si il veut jeter un coup d'oeil au rendu.
|
Hardboiled![]() from le Web Parisien Member 174 posts registered on Jul. 13 2006 |
Fernand : Un Grand MERCI à Fernand grace à qui j'ai enfin pu mettre au point l'affichage d'une image aléatoire dans le header. J'ai même un peu adapté le script pour avoir une image aléatoire au lieu du slogan (image qui change à droite) et une image fixe au lieu du header title (image à gauche). Super et encore Merci le résultat est visible ici ! |
Fernand![]() from Paris Member 1275 posts registered on Nov. 29 2004 |
Hardboiled : Cela me donne envie de relire quelques enquêtes de l'inspecteur Rason: une affaire resurgit que l'on croyait enterrée au "bureau des affaires classées" (Roy Vickers, grand auteur de polars). Cette idée s'adapte parfaitement à ton site. |
Hardboiled![]() from le Web Parisien Member 174 posts registered on Jul. 13 2006 | Bonjour, Je reviens sur ce topic, car j'ai encore quelques soucis pour insérer un autre code php (désolé mais je suis nul en php). Je voudrais donc ajouter le code ci dessous dans une boite mais je n'y arrive toujours pas.
il s'agit d'un code pour donner les stats de visiteurs.
Pourriez vous me donner un coup de main, SVP?NOta: je ne suis pas encore passé à la version 7.1, quels sont vos premeirs retours, très positifs ?? Car je suis totalement perdu maintenant dans le forum et le nouveau site de yacs, à moitié french, moitié anglais et j'ai du mal à retrouver les rubriques du forum !!! |
| Bernard from nearby-an-airport Associate 6544 posts registered on Sep. 12 2003 |
Hardboiled: Ce que je comprend de l'interface applicative de TraceWatch, c'est qu'il faudrait faire comme ceci : Ce code suppose que le répertoire twatch_include est sous la racine d'installation de YACS. Il faut l'insérer dans template.php, avant la ligne qui mentionne l'usage de $context['extra'].
|
Hardboiled![]() from le Web Parisien Member 174 posts registered on Jul. 13 2006 | Merci Bernard Cela marche super Si j'osais insister et profiter de tes lumières, serait-il possible d'avoir plusieurs variables?? Avec ta manip, j'ai donc une boîte et dedans juste le chiffre du nombre de visiteurs pour le mois. Ce que je voudrais pouvoir faire (si cela est possible) est d'avoir dans la même boîte les infos suivantes où xx = $content = twatch_value('visitors','today'); où yy = $content = twatch_value('visitors','this_month'); où zz = $content = twatch_value('visitors','all'); Avoir donc l'affichage dans la même boîte de 3 variables différentes avec leur libellé associé (aujourd'hui, mois et total) En tout cas un grand MERCI pour ton aide Gérard |
| Bernard from nearby-an-airport Associate 6544 posts registered on Sep. 12 2003 |
Hardboiled: abracadabra fouchtra, et voilà
|
Hardboiled![]() from le Web Parisien Member 174 posts registered on Jul. 13 2006 |
Bernard : Encore MERCI Cela marche Gérard |
| Bernard from nearby-an-airport Associate 6544 posts registered on Sep. 12 2003 |
Hardboiled: J'ai vu, sur ton site, et c'est plutôt sympa. Ca donnerait envie de l'intégrer dans YACS, d'origine... |
Rate this page
Posted by Hardboiled on Oct. 29 2006, commented by Bernard on Mar. 7 2007, (popular)


