5568 sujets

Sémantique web et HTML

slt a tous,
je me retourne vers vous car je ne sais pas comment gérer ce problème.
lorsque je crée un site de base il est composé en général :
- une page header
- plusieurs pages conteneurs (centre)
- une page footer

mon souci est de donner un <title> différent à chaque page (centrale). mais comme la balise est dans le header, je ne vois pas comment faire.

Comment procédez vous pour faire cela ?
Quel est la bonne façon ?

Merci d'avance de vos lumières
@+
Bonjour,

Un peu de PHP et l'affaire est jouée.

Dans les grandes lignes il faut trouver un moyen d'identifier ta page (variable, URL) et attribuer le title (et la meta description tant qu'on y est) en fonction de cela.
Laurie-Anne a écrit :
Dans les grandes lignes il faut trouver un moyen d'identifier ta page (variable, URL) et attribuer le title (et la meta description tant qu'on y est) en fonction de cela.

Ou alors faire plus simple: chaque page est un fichier "nom-de-la-page.php" qui fait un include du fichier d'en-tête, puis a son propre contenu, puis include du fichier de footer. J'ai cru comprendre que c'était la structure actuelle? Dans ce cas, il suffit de déclarer en début de «page» une variable PHP qui va contenir le titre de la page, puis dans le fichier d'en-tête (également en PHP) ajouter le contenu de cette variable entre les balises <title> et </title>.

Donc dans ma-page.php:

<?php
$pageTitle = 'Titre de ma page';
include('inc/header.php');
?>
Ici le contenu de ma page.
<?php
include('inc/footer.php');
?>

Et dans header.php:
<!doctype html>
blabla
<title> <?php echo($pageTitle); ?> </title>
blabla

Bien sûr pour faire ça bien, on voudra sans doute tester l'existence de la variable avant de l'utiliser, afficher un titre par défaut si la variable n'est pas définie, etc. Du PHP de base avec des conditions if/else, et éventuellement la fonction isset(). (À voir, je connais pas grand chose à PHP.)

C'est gérable de la même manière en ASP avec VBScript par exemple.
Modifié par Florent V. (18 Jun 2010 - 19:44)
Il faudrait que tu donnes un peu de précisions
sur la façon dont tu utilises php (s'il s'agit bien de ça)
pour générer les différentes pages.

Au fait on ne dit pas et surtout on ne pense pas que:

header, conteneurs, footer

sont des pages car ce ne sont que des fichiers.

La page c'est ce qui est renvoyé par le serveur au navigateur
après que ces différents fichiers aient été composés.
bonjour, et merci
de vos réponses. Effectivement je vous met un bout de code, cela sera plus parlant exemple de structure de mes pages

<?
include_once "inc/header.php";
?>
<title>le titre</title>
		
<div id="contenu">
   <h2>blablabla</h2>
      <p>bla blablablabla blablablablablabla bla</p>
      <p>blablabla blablabla blablabla blablablablablablablablablablablablablablablablablabla
      blablablablablablablablabla blablabla</p>
</div>
<?
include_once "inc/footer.php";
?>


Par conte Florent V. tu met le Doctype et le title dans le footer.php ????
Je comprends pas trop sur le coup...je pense que tu voulais parler du header.

Merci de vos lumières

Ps : pour les meta "description" donc vous prônez le même concept ?
Modifié par spawns (18 Jun 2010 - 07:01)
spawns a écrit :
Par contre Florent V. tu met le Doctype et le title dans le footer.php ???? (...) je pense que tu voulais parler du header.

Oui, je voulais bien sûr taper header.php.

spawns a écrit :
pour les meta "description" donc vous prônez le même concept ?

Je ne sais pas si je prône le concept ou pas, mais on peut effectivement utiliser la même méthode.
salut
je pense que la methode avec php est la meilleur.
ceci dit, tu peu faire ça avec du javascript, enfin, je pense que c'est du bidouillage, mais je propose l'idée quand même Smiley lol
l'idée, c'est d'attiribuer une class différente selon la page à ta div #contenu
par exemple:

<div id="contenu" class="accueil">

   <h2>blablabla</h2>

      <p>bla blablablabla blablablablablabla bla</p>

      <p>blablabla blablabla blablabla blablablablablablablablablablablablablablablablablabla

      blablablablablablablablabla blablabla</p>

</div>

* pour la page d'accueil.

pour le titre de la page tu vas mettre un titre, le nom du site par exemple, (au cas où l'utilisateur aurait désactivé le js.)
et avec un script js, (j'en ai fait un utilisant la librairie jquery), on va enlever le titre initial et on le remplace par la class que tu as attribué à ta div #contenu:


$(document).ready(function(){
$('title') .remove($('title') .text());/* on enlève le titre initial */
$('title').text($('#corps') .attr("class")); /* et on le remplace par le nouveau */
});

Modifié par eyos (19 Jun 2010 - 20:24)