Comment faire un menu qui se reproduit sur toutes les pages?

Le premier forum francophone sur l'éditeur de pages Web multiplateforme (Linux, Mac OS X, Windows) qui monte… KompoZer, héritier de Nvu, permet de créer vos pages Web graphiquement (wysiwyg) sans aucune connaissance du langage HTML.

Modérateurs : Kazé, Ymai, bobo, chinon37


Ymai
Tyrannosaurus Rex
 
Messages : 4200
Inscription : 12 Mar 2005 12:36
Localisation : Brüsel - Les Cités Obscures

Comment faire un menu qui se reproduit sur toutes les pages?

Messagede Ymai » 14 Déc 2005 17:01

[edit 06/09/2008] :wink: Pour ceux qui n'ont pas envie de lire de longues pages de discussion sur les errements de la procédure, on peut lire la version finale (?) là: http://www.geckozone.org/forum/viewtopi ... 215#462215 [/edit]

Bonjour
La question a souvent été posée:
Comment réaliser un menu dont le contenu puisse être modifié et qui, après modification, sera reproduit sur toutes les pages du site web, sans qu'il soit nécessaire d'éditer chaque page?

Ci-dessous, quelques éléments de réponse.
- Il est nécessaire d'avoir un hébergeur qui supporte le PHP
- Je pars de l'hypothèse que:
* le "Gestionnaire de sites" est configuré pour le traitement du site local
* l'excellent et indispensable NsmContext est installé.

- Etablir une page type pour le site web. Dans cette page, incorporer le menu dans un bloc.
<autopromo>
Voir, éventuellement, la structure proposée dans: http://info.sio2.be/NVU/1/2.php .
</autopromo>
Idéalement, ce bloc de menu doit avoir le style "height: auto" afin qu'il s'adapte à son contenu.

- Lorsque le menu est au point, se munir d'une pince de chirurgien et entrer dans l'onglet "Source" afin de procéder à la menuectomie.
- Repérer le fragment de code HTML qui correspond au menu. Par exemple, quelque chose comme
Code: Tout sélectionner
<ul>
  <li><a href="page1.html">item1</a></li>
  <li><a href="page2.html">item2</a></li>
  <li><a href="page3.html">item3</a></li>
  <li><a href="page4.html">item4</a></li>
</ul>

- Couper ce code vers le presse-papier

Préparer la page qui va contenir le menu et rien que le menu.
- Fichier > Nouveau
- Enregistrer la page vierge sous le nom "menu.inc.php"
- Fermer cette page sans y avoir rien apporté.

- Dans le gestionnaire de sites, faire un clic droit sur le nom du fichier "menu.inc.php" et l'ouvrir sous Notepad ou Context (par exemple) : merci NsmContext
- Dans l'éditeur choisi, coller le fragment de code correspondant au menu.
- changer tous les .html en .php
Le menu devient donc
Code: Tout sélectionner
<ul>
  <li><a href="page1.php">item1</a></li>
  <li><a href="page2.php">item2</a></li>
  <li><a href="page3.php">item3</a></li>
  <li><a href="page4.php">item4</a></li>
</ul>

- enregistrer et fermer l'éditeur externe.

Retour dans NVU à (aux) la page(s) qui doivent contenir le menu (nous avions laissé le patient sur la table d'opération).
- A l'endroit où le menu doit venir prendre place, insérer un fragment de code PHP: Insertion > Code PHP
- écrire
Code: Tout sélectionner
include ("menu.inc.php");

et fermer la boîte de dialogue
- enregistrer le fichier ainsi modifié et le publier avec FileZilla, par exemple
- uploader également le fichier "menu.inc.php"
- voir la page publiée
A la place du code PHP se présente le menu souhaité.
Faire de même pour toutes les pages (menuectomie et greffe d'include) du site web existantes ou à venir.

Lorsque de nouvelles pages sont ajoutées au site, revoir le fichier "menu.inc.php" pour qu'il pointe également vers ces pages-là. Plus rien d'autre à faire au niveau des pages existantes.

Remarques importante:
Chacune des pages qui contiendra l'include *doit* être munie de l'extension .php. Il faut donc probablement ré-enregistrer chacune de ces pages après insertion du code PHP.
Pour éditer les pages .php créées, il n'est plus possible de faire un double clic sur le nom du fichier dans le gestionnaire de site. A la place: clic droit sur le nom du fichier, sélectionner "Nouvel onglet" ou "Nouvelle fenêtre".
Attention, si la page est déjà ouverte, le Gestionnaire de sites se plante lamentablement!!


Voilà, ceci est certainement à retravailler.
Merci pour vos remarques, rectifications, modifications.
Ah, évidemment, s'il y avait un Wiki... :lol:

[edit]Exemple à télécharger et à tester:
http://sapajou.be/menu/
[/edit]

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1
Dernière modification par Ymai le 17 Sep 2008 22:23, modifié 6 fois.
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.


chinon37
Animal mythique
 
Messages : 5519
Inscription : 21 Mar 2005 11:17
Localisation : Touraine, entre Loire et Vienne

Messagede chinon37 » 14 Déc 2005 18:07

Super, le tuto... à faire encadrer à coté de Nvu :lol:
Merci, Ymai


Kazé
Tyrannosaurus Rex
 
Messages : 3031
Inscription : 10 Fév 2005 11:26
Localisation : Grenoble

Re: menus et PHP

Messagede Kazé » 14 Déc 2005 19:07

Je me permets d'ajouter mon grain de sel...

Ymai a écrit:- Lorsque le menu est au point, se munir d'une pince de chirurgien et entrer dans l'onglet "Source" afin de procéder à la menuectomie.
- Repérer le fragment de code HTML qui correspond au menu [...]
- Couper ce code vers le presse-papier
Alternative sans passer par l'onglet "source" :
  • cliquer n'importe où dans le menu ;
  • dans la barre d'état, sur la balise <ul> :
    * clic droit, "Code HTML..." (nécessite HandCoder)
    * ou clic gauche, menu Insertion > Code HTML...
  • sélectionner tout, copier et fermer la fenêtre "Insertion du code HTML" (Ctrl+A, Ctrl+C, Esc).
Ca permet d'être sûr qu'on a bien pris toute la liste, de <ul> à </ul> inclus.

Ymai a écrit:Préparer la page qui va contenir le menu et rien que le menu.
- Fichier > Nouveau
- Enregistrer la page vierge sous le nom "menu.inc.php"
- Fermer cette page sans y avoir rien apporté.
Attention, ce fragment de code ne doit pas contenir d'élément <html>, <head>, ou <body> ; je pense qu'il vaut mieux utiliser un éditeur texte pour coller le code.

Dans ma version de travail de HandCoder, j'ai ajouté un item "Enregistrer sous..." dans le menu contextuel de la barre d'état, pour enregistrer un élément HTML dans un fichier texte (ça réduit le nombre d'actions nécessaires). J'essaierai de la mettre en ligne rapidement.

Nota : HandCoder peut éditer en WYSIWYG le fragment "menu.inc.php" sans le corrompre (il faut basculer une préférence cachée). Ca permet de tout faire sans ouvrir d'éditeur texte.

Ymai a écrit:Retour dans NVU à (aux) la page(s) qui doivent contenir le menu (nous avions laissé le patient sur la table d'opération).
- A l'endroit où le menu doit venir prendre place, insérer un fragment de code PHP: Insertion > Code PHP
- écrire
Code: Tout sélectionner
include ("menu.inc.php");

et fermer la boîte de dialogue
Alternative qui utilise la barre d'état :
  • cliquer n'importe où dans le menu à remplacer ;
  • dans la barre d'état, clic gauche la balise <ul> :
  • Insertion > Code PHP, insérer le code.
Ca remplace tout le menu <ul> par le code PHP.

Merci pour ce tuto ! Je vais tâcher de poster une version de HandCoder qui permette de faire toute la manip sans éditeur texte.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »

Quent1
Salamandre
 
Messages : 20
Inscription : 11 Déc 2005 14:07
Localisation : Belgique

Messagede Quent1 » 15 Déc 2005 19:41

euh, dsl, mais les url fontionnent plus... :(

et autre chose aussi, est-on vraiment obligé de installer nmscontent ? :?


chinon37
Animal mythique
 
Messages : 5519
Inscription : 21 Mar 2005 11:17
Localisation : Touraine, entre Loire et Vienne

Messagede chinon37 » 15 Déc 2005 22:26

Attention, on ne peut pas voir l'effet de "include" directement dans le navigateur en local sans avoir installer une base de données.
Pour voir le résultat, soit tu charges ta page php chez ton hebergeur après avoir activer la fonction php, soit tu utlises un logiciel comme easyphp...n'est ce pas, Kazé :wink:
<fayot> NmsContext, c'est vraiment un plus </fayot>


Ymai
Tyrannosaurus Rex
 
Messages : 4200
Inscription : 12 Mar 2005 12:36
Localisation : Brüsel - Les Cités Obscures

Messagede Ymai » 15 Déc 2005 23:05

chinon37 a écrit:<fayot> NmsContext, c'est vraiment un plus </fayot>

Faux!
Ce n'est pas un "plus", c'est obligatoire.
Un de ces jours, quand j'aurai un peu de temps, je me fendrai d'un post politiquement incorrect ayant pour thème: "NVU tout nu, quel intérêt?".
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.


Kazé
Tyrannosaurus Rex
 
Messages : 3031
Inscription : 10 Fév 2005 11:26
Localisation : Grenoble

Messagede Kazé » 16 Déc 2005 8:38

chinon37 a écrit:Attention, on ne peut pas voir l'effet de "include" directement dans le navigateur en local sans avoir installer une base de données.
Pour voir le résultat, soit tu charges ta page php chez ton hebergeur après avoir activer la fonction php, soit tu utlises un logiciel comme easyphp...n'est ce pas, Kazé :wink:
Non pas une base de données, mais juste un serveur PHP.
C'est l'occasion de recopier ce que je t'avais écrit dans le sujet HandCoder :
Nota :
  • Contrairement à une page complète, l'extension ".inc.php" du menu n'a aucune importance : on peut aussi bien utiliser html, tpl, txt, xml ou dieu sait quoi encore. Personnellement je n'aime pas utiliser html ni php comme extension pour un fragment HTML...
  • "include" fontionne en relatif par rapport à la page où il est appelé. Attention, il utilise une adresse de fichier : /menu.inc.php fait référence à la racine du disque sur le serveur web, et non à la racine du site. Nuance !
  • Une page contenant du code PHP doit porter l'extension 'php' (et non html).
  • Pour faire fonctionner un "include" ou tout autre code serveur (PHP), il faut disposer d'un serveur PHP ! En clair, si on fait une prévisualisation avec Firefox :
    • à l'adresse file:///C:/Monsite/index.php, on ne voit rien (le code PHP est ignoré) ;
    • à l'adresse http://monsite.com/index.php, ça marche !
    Pour travailler localement tout en utilisant du PHP, on peut installer EasyPHP sous Windows : c'est un serveur WAMP (Apache + MySQL + PHP sous Win32) prêt à l'emploi.
En espérant que ça t'aide un peu ! Le top serait qu'une bonne âme fasse un tutoriel pour inclure un menu en PHP avec HandCoder...
Sur le coté "indispensable" de NsmConText pour cette manip, je ne sais pas quoi dire !
Je ne vais pas cracher sur une si belle pub, non ? :P
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »


chinon37
Animal mythique
 
Messages : 5519
Inscription : 21 Mar 2005 11:17
Localisation : Touraine, entre Loire et Vienne

Messagede chinon37 » 16 Déc 2005 9:25

kaze a écrit:Non pas une base de données, mais juste un serveur PHP

Autant pour moi, :oops: J'ai encore beaucoup à apprendre
Ymai a écrit:[NsmContext]Ce n'est pas un "plus", c'est obligatoire.

C'est vrai; j'imagine mal travailler maintenant avec Nvu sans la "suite d"extensions" de Kaze. Ce qui fait l'intérêt de Nvu, ce sont tous ces petits bouts qui sont ajoutés. Dommage que Htmlheader bugue un peu car c'est aussi une extension qui améliore l'ergonomie (en autre, pour ouvrir les feuilles de style internes grâce à sa barre d'outils spécifiques... oui, oui, oui, ça fait une barre de plus.... mais bientôt on aura des écrans 25", alors! :lol: Calimo, si tu peux faire pression sur le développeur de cette ext pour qu'il la peaufine, merci d'avance!


Kazé
Tyrannosaurus Rex
 
Messages : 3031
Inscription : 10 Fév 2005 11:26
Localisation : Grenoble

Messagede Kazé » 16 Déc 2005 10:02

chinon37 a écrit:
kaze a écrit:Non pas une base de données, mais juste un serveur PHP
Autant pour moi, :oops: J'ai encore beaucoup à apprendre
On fait souvent la confusion, tellement le trio Apache / mySQL / PHP semble indissociable.

chinon37 a écrit:<html Header> Calimo, si tu peux faire pression sur le développeur de cette ext pour qu'il la peaufine, merci d'avance!
C'est une extension déjà ancienne, peut-être même la toute première qui ait été sortie pour Nvu. Son développement semble arrêté... Si tu as l'e-mail de son auteur (Simon Wunderlin), je pourrais prendre contact avec lui pour savoir s'il accepterait des patches ?
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »

Quent1
Salamandre
 
Messages : 20
Inscription : 11 Déc 2005 14:07
Localisation : Belgique

Messagede Quent1 » 17 Déc 2005 16:49

c'est quoi le gestionnaire des sites ? :?:


chinon37
Animal mythique
 
Messages : 5519
Inscription : 21 Mar 2005 11:17
Localisation : Touraine, entre Loire et Vienne

Messagede chinon37 » 17 Déc 2005 17:10

F9 ou affichage :arrow: barre d'outils
en paramétrant le gestionnaire de site avec l'adresse de ton site, tu peux ainsi accéder directement à tous les fichiers de ce site (pages html, photos, feuilles de style, etc)
Tu peux aussi le paramètrer en local pour avoir directement accès aux dits fichiers présents sur ton dique dur ( par exemple si tu veux créer tout ton site sur ton disque dur avnat de le transférer chez ton hébergeur)
Ensuite, l'installation de l'extension "nsmcontext" (je prends désormais 10% sur les ventes :twisted: ) permet un usage élargi du gestionnaire de site


Do-IT
Varan
 
Messages : 1067
Inscription : 03 Juil 2005 9:46
Localisation : Strasbourg

Messagede Do-IT » 24 Déc 2005 0:24

Oups, tromper de sujet
Redhat, CentOs, Mandriva, Ubuntu au boulot. Ubuntu à la maison. Vista et Xp grâce à la vente liée.
Soutenir KompoZer


Ymai
Tyrannosaurus Rex
 
Messages : 4200
Inscription : 12 Mar 2005 12:36
Localisation : Brüsel - Les Cités Obscures

Messagede Ymai » 27 Déc 2005 11:31

Sujet remis en forme dans la FAQ.
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.


Kazé
Tyrannosaurus Rex
 
Messages : 3031
Inscription : 10 Fév 2005 11:26
Localisation : Grenoble

Messagede Kazé » 27 Déc 2005 12:30

Joli. J'irai y mettre mon grain de sel ;)
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »

pasdechance
Arias
 
Messages : 13
Inscription : 02 Fév 2006 15:07

Messagede pasdechance » 06 Fév 2006 23:53

Il faut bien préciser pour les gens comme moi que quand il faut rajouter la partie en php qu'il faut le faire dans l'onglet html et non source si on veut pouvoir le faire :wink:

Suivante

Retourner vers Kompozer : l'éditeur de pages Web au format HTML

Qui est en ligne

Utilisateurs parcourant ce forum : fiatskol et 1 invité