Intégrer un texte aléatoire dans le header

Proposez ici vos templates, vos plugins ou demandez en un.
Tous les tutoriels disponibles pour Arfooo Annuaire sont disponible dans cette rubrique

Intégrer un texte aléatoire dans le header

Messagede Jongleur » Jeu 28 Oct 2010 09:42

bonjour,
Je termine la mise en forme de mon annuaire aprés migration depuis un revolutionneyourannuaire trés modifié, ça c'est relativement bien passé 8-)
je veux intégrer des citations aléatoires dans le fichier header.tpl mais je n'y arrive pas :cry:
Dans le dossier templates/arfooo, j'ai créé un dossier citations, dans ce dossier 2 fichiers : citations.txt et aleatoire.tpl

dans mon fichier aleatoire.tpl

Code: Tout sélectionner
{php}
$tab = file("citations/citations-arts.txt");
srand((double)microtime() * 1000000) ;
$nbr = rand(0, (count($tab) - 1)) ;
echo $tab[$nbr] ;
{/php}


dans le fichier header.tpl :

Code: Tout sélectionner
<div id="top1">{displayAd place="header"}
<h1><font face="Verdana, Arial, Helvetica, sans-serif" size="0" color="#FFFFFF">{literal}{php}
include('citations/aleatoire.tpl')
{php}{literal}</font></h1>
</div>
ne fonctionne pas

Code: Tout sélectionner
<div id="top1">{displayAd place="header"}
<h1><font face="Verdana, Arial, Helvetica, sans-serif" size="0" color="#FFFFFF">{php}
include('citations/aleatoire.tpl')
{php}</font></h1>
</div>
ça non plus

j'ai essayé ça :

Code: Tout sélectionner
{include file="citations/aleatoire.tpl"}

le code d'erreur retourné :

Code: Tout sélectionner
(2) file(citations/citations-arts.txt) [function.file]: failed to open stream: No such file or directory   class.template.php(535) : eval()'d code   line 4     28-10-10   10:13

Je travaille en local avec WAMPSEVEUR pour les essais, bien sur je vide le cache et compiled à chaque essai.
Je ne suis qu'un bricoleur du web, il y a donc des subtilités qui m'échappent, si une bonne âme pouvait éclairer ma lanterne, je serais reconnaissant. :idea: Merci A+
Alain Vuillemet artiste sculpteur atypique, le web pour communiquer et faire connaitre son travail.
Il gére l'Annuaire des Arts Plastiques
Qui se donne à la cour se dérobe à son art.
Jean-Baptiste Poquelin, dit Molière
Avatar de l’utilisateur
Jongleur
 
Messages: 37
Inscription: Mar 6 Juil 2010 08:32
Localisation: France


Re: Intégrer un texte aléatoire dans le header

Messagede Hexa-67 » Jeu 28 Oct 2010 10:02

Salut,

je ne procède pas tout à fait comme ça, mais ta méthode n'est pas mal.
Déjà, avant d'essayer de comprendre ce que tu fais, je remarque des erreurs dans ton code.

Respecte bien les ouvertures de balises et leurs fermetures respectives.
Exemple raté chez toi: {php} doit se terminer par {/php} pareil pour {literal} et {/literal}

Essaye.
Avatar de l’utilisateur
Hexa-67
 
Messages: 966
Inscription: Lun 1 Mar 2010 17:59

Re: Intégrer un texte aléatoire dans le header

Messagede Jongleur » Jeu 28 Oct 2010 12:54

Hexa-67 a écrit:Salut,

je ne procède pas tout à fait comme ça, mais ta méthode n'est pas mal.
Déjà, avant d'essayer de comprendre ce que tu fais, je remarque des erreurs dans ton code.

Respecte bien les ouvertures de balises et leurs fermetures respectives.
Exemple raté chez toi: {php} doit se terminer par {/php} pareil pour {literal} et {/literal}

Essaye.

Merci pour la réponse, au temps pour moi pour les balises non fermées!
j'ai repris tout le mode opératoire en vérifiant les balises, ça ne fonctionne pas dans tout les essais.
quel est ta méthode.Merci
Alain Vuillemet artiste sculpteur atypique, le web pour communiquer et faire connaitre son travail.
Il gére l'Annuaire des Arts Plastiques
Qui se donne à la cour se dérobe à son art.
Jean-Baptiste Poquelin, dit Molière
Avatar de l’utilisateur
Jongleur
 
Messages: 37
Inscription: Mar 6 Juil 2010 08:32
Localisation: France

Re: Intégrer un texte aléatoire dans le header

Messagede Jongleur » Ven 29 Oct 2010 06:40

bonjour, il n'y a personne! :cry:
Alain Vuillemet artiste sculpteur atypique, le web pour communiquer et faire connaitre son travail.
Il gére l'Annuaire des Arts Plastiques
Qui se donne à la cour se dérobe à son art.
Jean-Baptiste Poquelin, dit Molière
Avatar de l’utilisateur
Jongleur
 
Messages: 37
Inscription: Mar 6 Juil 2010 08:32
Localisation: France

Re: Intégrer un texte aléatoire dans le header

Messagede Hexa-67 » Ven 29 Oct 2010 09:41

Alors,
pour ajouter un petit truc à l'affichage, je procède de la manière suivante:

1) je crée mon TPL avec son code php si il y a besoin
2) dans le css, je crée son conteneur
3) je le déclare dans header.tpl si ça doit apparaître dans le header

Pas plus compliqué!
Regarde sur ma page d'accueil, c'est ainsi que j'ai fait.
Avatar de l’utilisateur
Hexa-67
 
Messages: 966
Inscription: Lun 1 Mar 2010 17:59

Re: Intégrer un texte aléatoire dans le header

Messagede Jongleur » Ven 29 Oct 2010 10:02

Merci Hexa-67 pour ta réponse, dans mon header un texte normal, que j'ajoute, s'affiche correctement entre
Code: Tout sélectionner
<h1>par exemple</h1>

mon problème dans mon fichier.tpl c'est un code php que je veux appeler dans le header, si tu pouvais me donner un exemple concret du code coté serveur ça m'aiderait.
Merci A+
Alain Vuillemet artiste sculpteur atypique, le web pour communiquer et faire connaitre son travail.
Il gére l'Annuaire des Arts Plastiques
Qui se donne à la cour se dérobe à son art.
Jean-Baptiste Poquelin, dit Molière
Avatar de l’utilisateur
Jongleur
 
Messages: 37
Inscription: Mar 6 Juil 2010 08:32
Localisation: France

Re: Intégrer un texte aléatoire dans le header

Messagede Angra-Mainyu » Ven 29 Oct 2010 10:40

Salut,
envoie moi ton fichier contenant tes citations si tu veux par mail,
je verrai ce que je peux te mettre en place.
Angra-Mainyu
 
Messages: 455
Inscription: Dim 14 Sep 2008 23:37

Re: Intégrer un texte aléatoire dans le header

Messagede Angra-Mainyu » Sam 30 Oct 2010 08:01

Je vois que tu me l'a vraiment envoyer ^^
je te fait ça cet après midi, j'ai un big problème de session avec OVH depuis hier.
Angra-Mainyu
 
Messages: 455
Inscription: Dim 14 Sep 2008 23:37

Re: Intégrer un texte aléatoire dans le header

Messagede Jongleur » Sam 30 Oct 2010 08:11

Ok merci .Je me reconnecte cet après -midi A+ merci :)
Alain Vuillemet artiste sculpteur atypique, le web pour communiquer et faire connaitre son travail.
Il gére l'Annuaire des Arts Plastiques
Qui se donne à la cour se dérobe à son art.
Jean-Baptiste Poquelin, dit Molière
Avatar de l’utilisateur
Jongleur
 
Messages: 37
Inscription: Mar 6 Juil 2010 08:32
Localisation: France

Re: Intégrer un texte aléatoire dans le header

Messagede Angra-Mainyu » Sam 30 Oct 2010 13:08

Bon, voila la solution que je vous propose.
Je procède un peu différement mais Arf reconnaitra d'ou vient cette méthode ^^

1/ je crée un dossier dans le fichier cache de mon annuaire que je nomme "files",
on aura donc un dossier accessible /cache/files

2/ je crée un ou plusieurs fichiers textes qui contient mes données, ici, ce sont des citations.
Je les nommerai citation1.txt et citation2.txt

Le fichier que l'on m'a fourni est de la forme
Auteur : voila, c'est ce que j'appelle une belle solution.

Vous noterez que l'on peut avoir également
Ambrose Bierce : Politesse : Forme la plus acceptable de l'hypocrisie.

le deuxième exemple comprend deux fois ":", c'est un détails important.

Comme cette fonction ne sera pas très importante dans le fonctionnement du script puisque cela ne le modifie en rien, je crée une nouvelle fonction dans le fichier /controllers/infoController.php

3/ Je nomme cette fonction displayRandomTextAction
et voici son contenu
Code: Tout sélectionner
        function displayRandomTextAction()
   {
      // on défini le dossier ou se situe les fichiers ( arbitraire )
      define('CITATION_DIR',CODE_ROOT_DIR.'/cache/files/');

      $quotations = array(); /** tableau vide destiné a contenir nos citations **/

               /*** Liste tous les fichiers, en omettant les dossiers . et ... **/       
               $dir = new DirectoryIterator(CITATION_DIR);

              foreach ($dir as $file)
             {
         if ($file->isDot())   {
                      continue;
              }
              /*** on ouvre le fichier ***/
             $fp = fopen(CITATION_DIR . $file->getFilename(), "r");
           
             /*** tant qu'on est pas à la fin du fichier ***/
            while (!feof($fp)) {
             /*** on récupère une ligne de 10000 caract max et se terminant par un retour à la ligne **/
                $line = stream_get_line($fp, 10000, "\n");
            if(!empty($line)) { /*** si la ligne n'est pas vide ***/
                       /*** !important : on sépare seulement par le premier ':' trouvé dans la ligne **/
               /* on sépare le ligne en deux parties en fonction du caractère : */
                                            $stringPart = explode(':',$line,2);
               
                                          /*** affectation dans le tableau contenant toutes les citations ***/
               $quotations[] = array('author' => $stringPart[0], 'quotation' =>$stringPart[1]);
            }
               
            }
            fclose($fp); /*** toujours fermer une porte que l'on a ouverte! */
        }

               /** si on a récupéré des citations */
      if(!empty($quotations))
      {   
                        /** on récupére le nombre total de citation -1 pour connaitre la dernière valeur du tableau **/
         $maxRandomNumber = count($quotations)-1;
         
                        /*** on demande la création d'un nombre aléatoire entre 0 et ce maximum compris */
         $randomNumber = rand(0,$maxRandomNumber);
         
                         /**** on récupère la citation située à cette position dans le tableau ***/
                         $quotationToDisplay = $quotations[$randomNumber];

                         /*** on envoie la donnée dans une variable connue du template ***/   
            $this->set('quotation',$quotationToDisplay);
      }
      
   } /* end of displayRandomTextAction */


4/ On crée un fichier displayRandomText.tpl que tu places dans le dossier montheme/info/

voici le contenu que j'ai mis :
Code: Tout sélectionner
{if !empty($quotation)}
   <div class="quotation">
      <span id='quotationAuthor'>{$quotation.author|escape:'htmlall'}</span> :
      <span id='quotation'>&#147;{$quotation.quotation|escape:'htmlall'}&#148;</span>
   </div>
{/if}


le div est les span contiennent leurs propres identifiants, cela permettra de faire une petite mise en forme via le css, à adapter selon vos besoin.

5/ Pour faire appel à l'affichage des données dans le template,
il faut utiliser le code
Code: Tout sélectionner
{'/info/displayRandomText'|action}


Je l'ai inséré pour ma part dans le fichier header.tpl
en dessous de
Code: Tout sélectionner
{if isset($includeSearchEngine)}
{include file="menu/menuheader/searchEngine.tpl"} 
{/if}


ce qui donne
Code: Tout sélectionner
{if isset($includeSearchEngine)}
{include file="menu/menuheader/searchEngine.tpl"} 
{/if}
{'/info/displayRandomText'|action}
<div id="main1">


J'ai essayé de mettre le plus d'indication possible, faire quelque chose de compréhensible n'est pas mon fort ^^'
Angra-Mainyu
 
Messages: 455
Inscription: Dim 14 Sep 2008 23:37

Suivante

Retourner vers Templates, plugins et tutoriels

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

 
Copyright © arfooo.com  2007 - 2011  -  Tous droits réservés  -  Partenaires de confiance
Sites du groupe: petites annonces gratuites   voyance en direct - tirage tarot   Consultant en référencement
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group | phpBB SEO Traduction par: phpBB-fr.com
cron