5568 sujets

Sémantique web et HTML

Bonjour à tous!

Mettons nous en situation:

Imaginons une structure de page simple avec une page index disposant de:
- un menu a gauche
- le contenu a droite

On clique sur un lien du menu
<a href="/index.php?page=historique">Historique</a>

et le contenu de historique.inc.php est inclus à droite, on epargne ainsi le rechargement de toute la page.

Question :
Avec une telle structure est il possible de faire varier, le contenue des balises <head> sans recharger toute la page?
Sinon quelle structure est appropriée?

Si je me pose une telle question c'est que je viens de me lancer dans le référencement et j'aimerai faire varier les keywords selon le contenu. J'ai peur de devoir changer toute ma structure... Smiley bawling

Merci d'avance pour vos réactions... Smiley confused
Modifié par Dodjo (17 Jul 2006 - 11:28)
Sis tu as un code de ce type (version ultra-simplifiée) :


<!doctype .... >
<html .... >
<head>
<title> .... </title>
.... </head>
<body>
<?php include($_GET['page'].'.php'); ?>
</body></html>


Alors la réponse est non, tu n'as aucun moyen de changer le contenu de l'en-tête depuis le fichier inclus.

Personnellement, j'ai opté pour cette structure :

## fichier une-certaine-page.php

<?php
$titre = "Ma jolie page";
include("header.php");
?>
<p>Laurem ipsum</p>
<p>Laurem ipsum</p>
<?php include("footer.php"); ?>

## fichier header.php
<!doctype .... >
<html .... >
<head>
<title><?=$titre?></title>
... </head>
<body>

## fichier footer.php 
<p>Copyright mon site</p>
</body></html>


ON voit l'avantage évident de pouvoir utiliser des variables pour modifier dynamiquement le contenu des en-têtes...
Tu pourrais utiliser sinon une "reconnaissance d'URL".
Cela demande par contre que l'arborescence de ton site doit être pensée dès le départ en conséquence.

(suis juste pas sûre de la structure de l'include dans le header.php)

Page
<?php include('header.php'); ?>
# corps de ta page


header.php
<?php if (ereg("historique", $_SERVER['REQUEST_URI']) == true) {
  $metas = "metas_historique.php";
} else {
  $metas = "metas_par_defaut.php"; ?>

# doctype, balises html et head...

<?php include($metas); ?>

# fermeture head
Une autre alternative possible : tu utilises deux fichiers par page, un pour les métadonnées et l'autre pour le contenu.
Merci pour vos réponses,

Je vais essayer de faire quelque chose dans ce gout,
ajouter un include de l'entete avant d'inclure le contenu, dans mon switch des pages... je vais voir ça^^

Je laisse le sujet ouvert pour d'éventuelle remarque complémentaire sur le sujet. Le petit "résolu" viendra en fin de journée j'espere Smiley cligne
Une autre solution, que j'utilise...

Tu commences une page avec le header qui cvontient les infos spécifiques à la page, puis tu inclus le reste du header avec les infos génériques au site et ensuite tu continues ta page comme tu le fais normalement.

Cela permet en un seul endroit de modifier pour toutes tes pages des infos et d'avoir quand même des infos pertinentes sur une page précise...

Par contre jongler avec les ouvertures/fermetures de head body peut nécessité une gymnastique intellectuelle difficile au début (Credit mihi experto roberto : crois en mon expérience Smiley biggol )