Skip to main content Help Control Panel

 

support «   Besoin d'aide «  

Affichage sur la page d'accueil

PreviousNextIndex

affichage de la date du jour, uniquement sur la page d'accueil

WorkflowSupport request
StatusProblem has been recorded
OwnerDaniel 46
Progress0%
Bonjour, tout d'abord, merci à Agnès pour ses précieux conseils, pour le passage à la 7.10, parfaitement réussi, même pas de problème avec les accents .

Pour mon besoin d'aide précisément, et après avoir consulté la doc sur yacs, avec quelques éléments de réponses trouvés, mais pas complètement, je désire afficher la date du jour dans une boîte extra, uniquement sur la page d'accueil (un peu comme "Propulsé par Yacs"). En local avec easyphp (pour l'instant) J'ai intégré le tag suivant dans template.php:
//ajout de boite supplémentaire extra pour date du jour en français
  // titre de la boite
$titre 'Bonjour';
     
// tableaux des jours et des mois traduits en français
$nom_jour_fr = array("dimanche""lundi""mardi""mercredi""jeudi""vendredi""samedi");
$mois_fr = Array("""janvier""février""mars""avril""mai""juin""juillet""août",
        
"septembre""octobre""novembre""décembre");
// on extrait la date du jour
list($nom_jour$jour$mois$annee) = explode('/'date("w/d/n/Y"));
  
//contenu de la boite, affiche la date
  
$contenu $nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].' '.$annee;

// mise en page de la boite
$boite Skin::build_box($titre,$contenu'extra');

// insertion en haut de page
$context['extra'] = $boite.$context['extra'];


Tout ça s'affiche parfaitement, mais sur toutes les pages. Pour éviter ça, j'ai créé template_home.php, avec ce tag, je l'ai enlevé dans template.php. Le résultat est conforme à ce que je désire, la date apparaît uniquement sur la page d'accueil.

Par contre, le téléchargement de deux pages différentes allonge le temps de réaction.

Si on regarde dans template.php (grigloo par exemple), on trouve ce tag qui permet de n'afficher que sur la page d'accueil "Propulsé par Yacs"
// link to yacs if we are at the front page
 
if(($context['skin_variant'] == 'home') && is_callable(array('i18n''s')))
    echo 
Skin::build_box(NULL'<p>'.sprintf(i18n::s('Powered by %s'), Skin::build_link(i18n::s('http://www.yetanothercommunitysystem.com/'), i18n::s('yacs'), 'external')).'</p>''extra');
Mes connaissances en php étant réduites, très réduites, mais je me soigne, je ne suis pas arrivé à faire "cohabiter" ces deux tags. Quelqu'un(e) aurait-il une réponse à ma demande? Merci pour vos conseils avisés et pertinents Pour voir notre site

Comments

Lasares - on Nov. 12 2007

Je ne sais pas trop où vous avez inséré le code que vous avez écrit pour qu'il s'affiche, mais c'était certainement avant une instruction qui provoque l'affichage, car votre bout de code n'en comporte pas.

Si vous désirez rendre ce code complètement autonome (non dépendant d'autres instructions d'affichage), il suffit de remplacer votre dernière déclaration de variable par une instruction echo. En reprenant l'instruction conditionnelle que vous avez identifiée (pour la première page), cela donne ceci :

// ajout de boite supplémentaire extra pour date du jour en français  
// seulement si nous sommes en première page
if($context['skin_variant'] == 'home') {
    
// titre de la boite
    
$titre 'Bonjour';     
    
// tableaux des jours et des mois traduits en français
    
$nom_jour_fr = array("dimanche""lundi""mardi""mercredi""jeudi""vendredi""samedi");
    
$mois_fr = Array("""janvier""février""mars""avril""mai""juin""juillet""août""septembre""octobre""novembre""décembre");
    
// on extrait la date du jour
    
list($nom_jour$jour$mois$annee) = explode('/'date("w/d/n/Y"));  
    
//contenu de la boite, affiche la date  
    
$contenu $nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].'    '.$annee;
    
// mise en page de la boite
    
echo Skin::build_box($titre,$contenu'extra');
}

Voilà, ça fonctionne. Je l'ai même ajouté sur mon site. Merci !


Daniel46 - on Nov. 13 2007
Merci Alain pour ces bons conseils. l'affichage de la boite se faisait par l'instruction
// insertion en haut de page
$context['extra'] = $boite.$context['extra'];


En remettant les mains dans le cambouis, j'étais arrivé à ça:
//ajout de boite supplémentaire extra pour date du jour
  // titre de la boite
$titre 'Bonjour';
     
// tableaux des jours et des mois traduits en français
$nom_jour_fr = array("dimanche""lundi""mardi""mercredi""jeudi""vendredi""samedi");
$mois_fr = Array("""janvier""février""mars""avril""mai""juin""juillet""août",
        
"septembre""octobre""novembre""décembre");
// on extrait la date du jour
list($nom_jour$jour$mois$annee) = explode('/'date("w/d/n/Y"));
  
//contenu de la boite, affiche la date
  
$contenu $nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].' '.$annee;
   
// mise en page de la boite
$boite Skin::build_box($titre,$contenu'extra');
    
// Affichage de la boite seulement en première page
 
if(($context['skin_variant'] == 'home'))
    echo 
Skin::build_box($titre,$contenu'extra');
Je pense que votre formulation est plus "propre", puisque on déclare la condition au démarrage du tag, et non à la fin, comme je l'ai écrit. En tout cas ça va me permettre d'aller un peu plus loin dans l'affichage 'spécialisé' Encore merci
Daniel46 - on Dec. 5 2007
Une précision supplémentaire, pour un affichage correct des mots accentués, il faut encoder les caractères spéciaux des mois février, aôut et décembre.

Voila, voila, bonne journée à tous et merci pour le coup de main, on peut peut-être considérer cette demande d'aide comme résolu.

un peu quand même, j'ai tenté ici d'écrire les modifications, mais comme les caractères spéciaux sont interprétés... on ne voit pas les changements.

PreviousNextIndex