Author Topic: [MOD] Menu personnalisé.  (Read 9005 times)

0 Members and 1 Guest are viewing this topic.

Offline † manurom

  • Full Member
  • ***
  • Posts: 227
    • View Profile
    • manurom's 4images templates
[MOD] Menu personnalisé.
« on: May 17, 2008, 11:27:27 AM »
Bonjour;
vous avez sans doute vu des sites intégrant un menu de navigation dans la colonne de gauche. Vierstra offre souvent cette possibilité dans ses templates, en utilisant un "php include", et fournissant un fichier du genre "4menu.php".

Nous allons voir ici comment créer un menu personnalisé, ainsi qu'un menu de bas de page ou "footer", en évitant l'utilisation de "php include", et en respectant la gestion des sessions utilisateurs de 4images.

  • Editez d'abord le fichier includes/page_header.php
A la fin de ce fichier, juste avant le symbole de fin de script PHP:
Code: [Select]
?>
insérez ces lignes:
Code: [Select]
//---------------------------------------------------------------------------------------------
//---- Template mon_menu.html ------------------------------------------------------------------
//---------------------------------------------------------------------------------------------

$mon_menu = $site_template->parse_template("mon_menu");
  $site_template->register_vars(array(
    "mon_menu" => $mon_menu
  ));
  unset($mon_menu);
 
//---------------------------------------------------------------------------------------------
//---- Template mon_footer.html ----------------------------------------------------------------
//---------------------------------------------------------------------------------------------

$mon_footer = $site_template->parse_template("mon_footer");
  $site_template->register_vars(array(
    "mon_footer" => $mon_footer
  ));
  unset($mon_footer); 


  • Allez maintenant dans le dossier templates/votre_template/.

_____Créez un premier fichier HTML appelé "mon_menu.html", incluant ce code d'exemple:
Code: [Select]
<div align="center">
<table  width="100" border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>
  <td width="100%" align="center" height="17" background="{template_url}/images/button.gif" ><a href="{url_home}" style="text-decoration: none"><strong>Accueil</strong></a></td>
 </tr>
 <tr>
 <td width="100%" align="center" height="17" background="{template_url}/images/button.gif" ><a href="{url_top_images}" style="text-decoration: none"><strong>Top Images</strong></a></td>
 </tr>
 <tr>
 <td width="100%" align="center" height="17" background="{template_url}/images/button.gif" ><a href="{url_new_images}" style="text-decoration: none"><strong>Nouvelles Images</strong></a></td>
 </tr>
 </table>
</div>
<br>
Vous devrez copier cette image: , dans le dossier templates/votre_template/images/.

_____Créez un autre fichier HTML appelé "mon_footer.html" incluant ce code:
Code: [Select]
<br /><div align="center">
  <table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr class="head1">
      <td width="25%" align="center" class="row1"><a href="{url_contact}">Nous contacter</a> </td>
      <td width="25%" align="center" class="row2"><a href="http://www.bourvil.org">Mon v&eacute;lo!</a></td>
      <td width="25%" align="center" class="row1"><a href="http://www.bricedenice.net">J't'ai cass&eacute;!</a></td>
      <td width="25%" align="center" class="row2"><a href="http://www.wazza.com">Etc...</a></td>
    </tr>
  </table>
</div>

  • Voilà, vous avez déclaré votre menu et votre footer dans includes/page_header.php et créé les deux fichiers dans votre template. Vous pouvez dès lors appeler ces fichiers en incluant les tags  {mon_footer} et {mon_menu} dans n'importe quelle autre page de votre template.

Exemple: éditez le fichier templates/votre_template/home.html
Cherchez:
Code: [Select]
{endif random_image}Ajoutez après ceci:
Code: [Select]
{mon_menu}
Cherchez:
Code: [Select]
{footer}
Et insérez AVANT:
Code: [Select]
{mon_footer}
J'ai fait des essais avec le template "default", et voici ce que j'ai obtenu:

  • Mon_menu:
  • Mon_footer:

Ceci étant fait, si vous avez besoin de modifier vos liens, il vous suffit d'éditer mon_menu.html ou mon_footer.html une seule fois, et cela se répercutera dans toutes les pages de template qui incluent vos tags de menu. C'est autre chose que de modifier une par une toutes les pages de votre template! 8O

Cas particuliers: gestion des liens internes et des sessions utilisateurs.
Nous abordons ici un sujet sensible, car 4images est un script basé sur les sessions utilisateur.
Vous avez sans doute remarqué que la barre d'adresse de votre navigateur affiche parfois une adresse comme ceci:
Quote
http://www.chemin/vers/ma/galerie/details.php?image_id=1&sessionid=c5f78g2943057ipf21cnoj4t01

Le script génère un code MD5 pour chaque visiteur, qui va le suivre lors de son exploration de votre site.
Il est d'après certains membres de ce forum important de conserver cette identification de session.
Ces membres n'étant pas les premiers venus, et ayant de solides connaissances en PHP, plus une familiarité certaine avec 4images, nous allons tenter de générer des liens qui respectent la gestion des sessions utilisateurs.

  • Premier cas: vous faites un lien vers un fichier PHP existant dans le script:
    le script décrit en interne des tags menant vers des pages PHP, tout en respectant la session utilisateur.
    Par exemple:
    -> Un lien vers la page d'accueil "index.php" sera appelé dans un fichier HTML par:
Code: [Select]
<a href="{url_home}">Page d'accueil</a>
    Examinez le code PHP de 4images, et vous trouverez quelques tags du type "url_xxx", que vous pourrez exploiter à loisir.
    (un conseil, plutôt que d'utiliser la fonction de recherche de Windows, adoptez
Agent Ransack, un freeware qui vous permet de faire des recherches beaucoup plus fines et efficaces, tout en étant beaucoup plus léger et beaucoup moins "prise de tête")
[/li][/list]

  • Deuxième cas: vous incluez un MOD qui dépend d'un fichier PHP principal:
Vous avez dû constater que dans mon code pour "mon_footer.html", j'ai utilisé le tag "{url_contact}", qui n'existe pas dans la version originale de 4images.
Cela dérive d'un MOD existant dans le forum: [MOD] Contact Form, qui vous permet de créer un formulaire de contact, ou de "feedback".
En choisissant ce MOD, vous allez créer dans le "core" ou "noyau" du script 4images un nouveau fichier PHP appelé "contact.php".
Voici ce qu'il faudrait faire pour créer des liens vers ce fichier depuis des fichiers HTML de template:

Veuillez éditer le fichier includes/page_header.php.
Trouvez cette ligne:
Code: [Select]
  "url_captcha_image" => $site_sess->url(ROOT_PATH."captcha.php"),
Insérez juste après:
Code: [Select]
  "url_contact" => $site_sess->url(ROOT_PATH."contact.php"),
Utilisez dès lors {url_contact} dans le fichier de template où vous souhaitez placer votre lien.

Accessoirement, si vous gérez un site multilangue, trouvez cette ligne:
Code: [Select]
  "charset" => $lang['charset'],
et insérez juste après:
Code: [Select]
  "lang_contact" => $lang['contact'],
Editez dès lors chaque fichier PHP "main.php" des langues que vous exploitez.
Vous devrez y ajouter cette ligne (exemple en français):
Code: [Select]
$lang['contact'] = "Nous contacter";[/li]
[/list]

  • Dernier cas: vous créez un fichier de template HTML personnalisé:
    rendez-vous ici: How to add a new, custom template page, pour apprendre comment créer une page de template (HTML) personnalisée.
    Admettons que vous appeliez cette page "ma_page.html".
    Si vous désirez faire un lien vers cette page, utilisez cette syntaxe:
    Code: [Select]
    <a href="{url_home}?template=ma_page">Lien vers ma page</a>

    Voilà. Pour la énième fois, je vous présente mes excuses pour ma logorrhée. Il est important pour moi d'être avant tout compris par les membres débutants ou peu familiers  du langage PHP. Ce n'est que pour eux que j'ai accepté d'être le nouveau modérateur du forum francophone. J'ai tellement profité des connaissances d'autres membres ces dernières années qu'il me semble juste de participer à l'expansion de 4images dans la mesure de mes modestes moyens.

    N'hésitez pas à soumettre dans ce forum vos problèmes. Personne ne rira de vous. Nous avons tous été et restons des débutants... et nous continuons à apprendre chaque jour.

    Je reste à votre disposition, soit sur ce forum, soit par message personnel.

    Le seul but est que vous appréciiez 4images et continuiez à le faire, et pourquoi pas, le faire connaître autour de vous.

    Salutations.
    « Last Edit: May 18, 2008, 05:20:19 PM by manurom »