8768 sujets

Développement web côté serveur, CMS

Bonjour,
Je voudrais faire un include différent selon la page affichée.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>include si page=journal.php => title=Journal - monsite.com
                   si page=domain.php => title=Domain - monsite.com
etc.
</title>
<meta name="description" content="
include si page=journal.php => description=bla bla bla journal
                   si page=domain.php => description=bla bla bla domain
etc.
" />

</head>

<body>
bla bla bla ma page
</body>
</html>


Sur la version actuelle mon site, la page journal.php est comme ceci:

<include header>

<title>Journal - monsite.com</title>

<include footer>


Donc bon, le title est pas du tout dans le <head> mais dans <body> :S


Par contre ma page journal.php peut avoir cette forme:
journal.php?id=xxxxx&arch=4545454 :S


Merci
Romain
Modifié par demonofparadise (25 Aug 2008 - 08:00)
Bah jpenses que ça vaut pas le coup alors parce que je veux pas utiliser MySQL alors que c'est qu'un blog perso.

Jvoulais juste que ça fasse bien, et que <title></title> soit dans le header au moins :S

Si je dois passer par autre chose qu'un ""simple"" script PHP, je laisserais comme c'est actuellement :s
Je ne suis pas vraiment sûr d'avoir bien saisi le problème : Dans le code de ce que tu voudrais faire, il y a deux pages à afficher (journal.php et domain.php), mais par la suite tu ne parles que de journal.php
En partant du principe que c'est ces deux pages que tu veux afficher, comment fais-tu à la base pour déterminer si c'est la page journal.php ou domain.php qui est affichée ? Car en fait, tu pourrais réutiliser la même condition pour savoir quel titre afficher.

Si par contre le problème se pose au sein d'une seule page, journal.php, alors une solution simple serait, comme l'a dit Heyoan, d'utiliser un tableau avec une correspondance entre la page et le titre, stocké dans un fichier PHP séparé qui sera inclus au début de chaque page. (La solution du tableau est aussi valable pour la première solution)
Modifié par superjun (23 Aug 2008 - 00:23)
Bah en fait j'ai un header, un footer
Après j'ai journal.php qui en fait est l'affichage de CuteNews
J'ai Romain
J'ai Domain
J'ai Exits

Donc chaque page (journal, romain, domain, exits)
est constitué de cette façon:

include header
LE CONTENU
include footer

www.secretlies.org

Après vu que journal.php a un include de Cutenews, quand on veut afficher les commentaires ça fait
journal.php?id=444444&action=showcomment par exemple

Pour le moment je met la balise <title> dans la page à afficher au lieu d'y mettre dans le header qui lui, contient <head>

Pis pour les news, y'a aussi une balise <title> qui est dans l'include de cutenews
vous voyez ce que je veux dire?
Ben vu que tu n'as que quelques pages statiques je ne vois pas pourquoi tu ne mets pas le TITLE et la META directement dans le HEAD, quitte à inclure le reste. Par exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Journal</title>
<meta name="keywords" content="journal, bidule, machin" />
<?php include('header.inc.php'); ?>
</head>

Bien sûr tu peux également rajouter un test dans ton header.inc.php (ou autre nom) actuel. Quelque chose comme
<?php
$page = basename(__FILE__);
$titles = array(
	'journal.php' => 'Journal', 
	'test.php' => 'Test');
$keywords = array(
	'journal.php' => 'journal, bidule, machin', 
	'test.php' => 'Test, truc');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo $titles[$page]; ?></title>
<meta name="keywords" content="<?php echo $keywords[$page]; ?>" />
...
</head>

A+

Edit: modifié suite à la proposition de kzone (et de basename que j'oublie régulièrement d'utiliser Smiley lol !)
Modifié par Heyoan (23 Aug 2008 - 02:32)
bonjour

je verrais bien une simple utilisation de ton URL pour déterminer le titre de ta page


....
<title>
echo basename (dirname(__FILE__),".php");
</title>
...


et lorsque que tu ajouteras une nouvelle page le code sera toujour bon
Il faut bien sur que le nom de ton fichier php soit le meme que le titre de ta page

donc valable pour de simple nom

ps: a vérifier le dirname(__FILE__) .. je me gourre tout le temps dans les "raccourcis" Smiley langue
Heoyan > ah oui, j'avais pas pensé à inclure le header un peu plus bas tout simplement lol
Jvais quand même testé la versio avec tableaux Smiley cligne

PS: pis si je réponds pas ce weekd end c'est pas que je suis impoli c'est que je suis pas sur que j'aurais accès à internet Smiley cligne
Merci beaucoup pour le tableau Smiley smile
C'est exactement ce que je souhaitais Smiley langue

Juste un dernier truc, dans la cas où la page affichée n'est pas listé dans le tableau par oubli ou autre. Y'a un moyen de mettre un titre par défault dans ce cas là?

Merci Smiley cligne
demonofparadise a écrit :

Juste un dernier truc, dans la cas où la page affichée n'est pas listé dans le tableau par oubli ou autre. Y'a un moyen de mettre un titre par défault dans ce cas là?

Par exemple :
<?php
$page = basename(__FILE__);
$titles = array(
	'journal.php' => 'Journal', 
	'test.php' => 'Test');
$keywords = array(
	'journal.php' => 'journal, bidule, machin', 
	'test.php' => 'Test, truc');
if(!isset($titles[$page])) {
	$titles[$page] = 'Title par défaut';
	$keywords[$page] = 'Keywords par défaut';
}
?>
Merciii Smiley smile

A cause de Cutenews, je vais utiliser le script pour toutes les pages du blog mais pour la page journal.php je donnerais qu'une description et pis le title ça sera comme actuellement :S

Je peux pas faire remonter le titre cutenews avant dans la page donc bon :S Ca sera a la wanagain :s
Modifié par demonofparadise (24 Aug 2008 - 23:26)