Titres differents sur les pages

Eléphanteau du PHP | 10 Messages

27 févr. 2012, 22:12

Bonjour à tous, j'ai un petit soucis à vous exposer!

Voilà j'ai une refonte de site à faire et je dois attribuer des differents titres à chaque pages jusque là rien de compliqué!

Là ou ca se corse un peu c'est que j'ai deux fichiers index.php dans mon site
/index.php
/content/index.php

comment je pourrais attribuer une valeur differente à chaque fichiers avec ce bout de code:

Code : Tout sélectionner

$page_titre['index.php'] = array( 1 => 'accueil', 2 => 'content_accueil' ); $page_titre['test.php'] = array('test'); $page_titre['test_2.php'] = array('test_2'); $address_fichier = $HTTP_SERVER_VARS['PHP_SELF']; $address_fichier = basename($address_fichier); $titre_page = $page_titre[$address_fichier][0];
Merci d'avance pour les comms!

ViPHP
xTG
ViPHP | 7331 Messages

27 févr. 2012, 23:12

Faut pas travailler avec basename() sinon c'est du kif-kif bourricot.
Mais ça veut aussi dire qu'il faudra que tu remettes à jour tes index.

Eléphanteau du PHP | 10 Messages

27 févr. 2012, 23:26

merci pour la réponse, pourrais tu develloper un peu, qu'entends tu par mettre à jour mes index?

ViPHP
xTG
ViPHP | 7331 Messages

27 févr. 2012, 23:41

basename() isole le nom du fichier.
Mais sans lui tu garderas les noms des dossiers.

Donc tu n'auras plus "index.php" pour la page d'accueil de ton site mais "/index.php" donc il faudra bien modifier les index de ton array $page_titre.

Eléphanteau du PHP | 10 Messages

28 févr. 2012, 00:05

ok ok j'ai vu ce que me renvoyai basename() en faisant un echo

mais par contre quand je fais ca

Code : Tout sélectionner

<?php $page_titre['index.php'] = array( 1 => 'accueil', 2 => 'content_accueil' ); $page_titre['test.php'] = array('test'); $page_titre['test_2.php'] = array('test_2'); $address_fichier = $HTTP_SERVER_VARS['PHP_SELF']; $address_fichier = basename($address_fichier); if(isset($page_titre[$address_fichier][0])) { $titre_page = $page_titre[$address_fichier][0]; } else if(isset($page_titre[$address_fichier][1])) { $titre_page = $page_titre[$address_fichier][1]; } else if(isset($page_titre[$address_fichier][2])) { $titre_page = $page_titre[$address_fichier][2]; }
il me revoi bien les titres de /index.php, test.php et test_2.php mais pour /content/index.php il me renvoi la valeur 1 du array $page_titre['index.php'] à cause du basename() si j'ai bien compris.

Apres si j'enleve la ligne $address_fichier = basename($address_fichier); il me renvoi une erreur Undefined variable titre_page

il y aurait pas un moyen pour dire :
si j'appelle /content/index.php
titre_page = page_titre 2

??

ViPHP
xTG
ViPHP | 7331 Messages

28 févr. 2012, 10:48

Je t'ai parlé de modifier tes index de tableau... C'était pas pour des prunes tu sais. :roll:
Est-ce que c'est le terme d'index qui te laisse baba et tu n'as pas osé poser la question ?

Eléphanteau du PHP | 10 Messages

28 févr. 2012, 11:51

Ah les index de l'array j'avais pas compris mais alors il devrait avoir quel valeurs?

ViPHP
ViPHP | 2577 Messages

28 févr. 2012, 11:57

Question con, ne serait il pas plus simple de mettre :
$titre_page = 'un titre';
au début de chaque page ?

Eléphanteau du PHP | 10 Messages

28 févr. 2012, 12:04

c'est pour un site multilingues avec plus de 100 pages donc non ca serait la crise de faire ca sur chaque page!

Eléphant du PHP | 179 Messages

28 févr. 2012, 12:13

$_SERVER['REQUEST_URI']
?

ViPHP
xTG
ViPHP | 7331 Messages

28 févr. 2012, 12:34

Ah les index de l'array j'avais pas compris mais alors il devrait avoir quel valeurs?
Bah la valeur de ceci : $HTTP_SERVER_VARS['PHP_SELF']
Au passage, il serait préférable d'utiliser $_SERVER plutôt que $HTTP_SERVER_VARS.

REQUEST_URI est pas tiptop pour ce qu'il veut Thibaud C car ça prend aussi en compte les paramètres et donc il faudrait les enlever.

Eléphanteau du PHP | 10 Messages

28 févr. 2012, 12:34

non ca donne rien ca Thibaud !

Eléphant du PHP | 179 Messages

28 févr. 2012, 12:36

Exact PHP_SELF est mieux ! fatiguefatigue
oui $_SERVER['PHP_SELF']
Modifié en dernier par Thibaud C le 28 févr. 2012, 13:26, modifié 1 fois.

Eléphanteau du PHP | 10 Messages

28 févr. 2012, 12:56

ok donc quand je fais :

Code : Tout sélectionner

$page_titre = array( '/index.php' => 'accueil', '/content/index.php => 'content accueil' ); $address_fichier = $_SERVER['PHP_SELF']; $titre_page = $page_titre[$address_fichier];
là ca marche sauf il me renvoi que la premiere lettre dans mon titre!

Eléphanteau du PHP | 10 Messages

28 févr. 2012, 13:38

non en faite c'est bon ca marche très bien !!

merci de votre aide.

désolé de vous prendre du temps pour un truc aussi simple mais parfois j'ai besoin d'un ptit coup de pouce!

dernière question toutefois,

est- ce possible d'attribuer le même titre à tout les fichiers d'un répertoire??

peut être avec $_SERVER['DOCUMENT_ROOT']??