Balise méta dynamique

Résolu/Fermé
Angecorse Messages postés 37 Date d'inscription samedi 25 avril 2015 Statut Membre Dernière intervention 3 novembre 2016 - 17 janv. 2016 à 16:22
Angecorse Messages postés 37 Date d'inscription samedi 25 avril 2015 Statut Membre Dernière intervention 3 novembre 2016 - 18 janv. 2016 à 12:42
Bonjour,

Quelqu'un aurait une astuce qui ressemblerait à ça en plus simple et surtout fonctionnel ;)

<title>
	<?php
		$url = $_SERVER['SERVER_NAME'];

		if ($url.'/index.php') {
			echo META_TITLE_INDEX;
		} elseif ($url.'/blog.php') {
			echo META_TITLE_BLOG;
		}
	?>
		</title>


Merci de votre participation !

1 réponse

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
Modifié par Flachy Joe le 17/01/2016 à 22:02
"C'est un peu court, jeune homme."
Si on en savait plus sur tes besoins on pourrait peut-être t'aider.

Plus simple : c'est déjà pas bien compliqué.
Fonctionnel : tu veux l'encadrer dans une fonction ou tu n'as pas réussi à faire fonctionner ce bout de code ?

;-) Flachy Joe ;-)
"Qui ne se plante jamais n'a aucune chance de pousser !" Graf anonyme
0
Angecorse Messages postés 37 Date d'inscription samedi 25 avril 2015 Statut Membre Dernière intervention 3 novembre 2016
17 janv. 2016 à 23:14
Bonjour F J ;)

En effet désolé pour ce manque d'informations.

J'aimerais pouvoir gérer en base de données ou par des constantes php les balises méta qui se trouvent dans
<head> </head>
de façon à ce qu'elle soient dynamiques et s'affichent différemment selon la page chargée.

J'ai actuellement découpé mes fichiers en plusieurs
include_once('.../....php');


Le
include_once('head.php');
est donc le même pour tout le site. D'autre part je gère les constantes de langue et système (messages et autres paramètres tels que le nombre d'articles ou de caractères affichés avant "En savoir +" dans telle ou telle partie du site) dans
include_once('fr_FR.php');
.

Je pense que c'est beaucoup mieux détaillé pour pouvoir répondre à ma requête ;)
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
18 janv. 2016 à 09:54
Tu veux donc utiliser head.php pour définir ton contenu meta qui changera selon la page chargée.
Déjà, quelques question sur l’intérêt de la chose :
- Est-ce que tu as beaucoup de pages qui partagent le même meta ?
- Est-ce que ça vaut vraiment le coup d'inscrire dans une base de donnée des infos qui sont spécifiques à une page ?
- Est-ce que c'est plus facile de modifier la base de donnée que le contenu de la page ?

Mon idée :
---8<---[head.php]---8<---
function show_headblock($page_id){
    //SELECT title, meta1, meta2 FROM table WHERE page=$page_id
    $head_block='<head>';
    $head_block.='  <meta charset = "UTF-8" />';
    $head_block.='  <title>'.$title_from_sql.'</title>';
    //etc
    $head_block.='</head>';
    echo $head_block;
}

---8<------8<---
---8<---[page.php]---8<---
<html>
  <?php show_headblock("page-standard"); ?>
  <body>
    Machin machin
  </body>
</html>
0
Angecorse Messages postés 37 Date d'inscription samedi 25 avril 2015 Statut Membre Dernière intervention 3 novembre 2016
18 janv. 2016 à 10:28
Hello,

Alors:
1. C'est pour le référencement & la facilité de gestion à posteriori
2. bcp de pages qui partagent les mêmes méta: oui et non => oui pour les méta banales (auteur, copyright,...) et non pour celles qui servent au référencement google, robot, ou SEO en général
3. Plus simple de modifier la DB puisque je crée une admin.

Par contre dans ton script je ne comprend pas comment et où tu dis au navigateur que si c'est la page index.php qui s'affiche alors prendre les infos (...) dans la DB :(
Parce que ma finalité c'est de savoir comment dire à php que s'il voit MON_SITE/index.php il prend dans la table head_block toute la ligne correspondant à page_id: index...

Je n'aime pas du tout mettre des fonctions dans un fichier qui n'est pas dédié à cela et donc pas ou moins sécurisé :D

Mais je peux le faire en base de données en POO ===== Lorsque je saurai comment PHP débrouille la chose =====

Si tu sais comment faire suis preneur ;)
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
18 janv. 2016 à 11:23
C'est le commentaire
//SELECT title, meta1, meta2 FROM table WHERE page=$page_id
qui est à traduire en connexion à la bdd et recup des infos.

C'est bien l'argument de la fonction ($page_id) qui défini ce qu'il faut recup, donc dans index.php tu mets
<?php show_headblock("index"); ?>

Dans la page contact
<?php show_headblock("contact"); ?>

et tu fais la bdd en fonction.
0
Angecorse Messages postés 37 Date d'inscription samedi 25 avril 2015 Statut Membre Dernière intervention 3 novembre 2016
18 janv. 2016 à 12:42
Hello,

Franchement désolé je n'avais pas bien lu et pas vu
<?php show_headblock("page-standard"); ?>
;)

Je te remercie pour ton aide. Comme c'est un forum je pond le script et passerai en résolu à ce moment-là ;)
0