[Ok] Nom du forum, du message... en Titre de Page
Aller à la page 1, 2, 3  Suivante
PHP-Nuke France - CE -> Référencement - URL Rewrittin - Google

Auteur: FBLocalisation: Gradignan (33) MessagePosté le: 24.09.2004, 21:56:56    Sujet du message: [Ok] Nom du forum, du message... en Titre de Page

Bonjour,

Je cherche depuis assez longtemps à intégrer dans la balise Title d'une page de mon site le titre (ou au moins l'ID) des posts qui y sont visualisés. Je n'ai jamais réussi. (logique : je ne parvenais pas à transmettre la variable $page_title définie dans l'index.php du forum à la fonction head () de header.php ... puisqu'elle s'exécute avant !)

Il me senblait que c'etait pareil ici et, tout à l'heure, en lisant un post, j'ai vu en haut de mon navigateur un titre du genre :PHPNuke EUROPE #id_post#id_post.

Idea Il est donc possible de transmettre une balise < Title > dynamique depuis une page du forum. Comment ? : J'ai "supprimé" la balise title de header.php ( avec un if ($name !="Forums") {echo "< title > etc... ) et ça fonctionne très bien... (le fichier page_header.php génère une balise title avec le sujet du topic)

MAIS : Ma balise title n'est plus dans le < head > ! (et même bien loin de là en dessous dans le code source de la page). Ma question est donc la suivante : cela pose-t-il un problème pour l'indexation des pages du forum ? (par google etc...)

Merci.


Dernière édition par FB le 23.12.2004, 13:38:36; édité 3 fois

Auteur: FBLocalisation: Gradignan (33) MessagePosté le: 24.09.2004, 23:28:25    Sujet du message:

... De retour de WebRankInfo : Il semble que ce ne soit pas bon d'avoir sa balise title hors du head !

Alors, si quelqu'un a une meilleure idée : Merci beaucoup !

Crying or Very Sad

Auteur: ckforumLocalisation: FRANCE MessagePosté le: 25.09.2004, 06:15:20    Sujet du message:

SAlut FB,

Bon sans avoir testé dans tout les sens, voilà j'te file un p'tit bout de code que tu mettras à ta sauce Smile ...

Dans le fichier header.php de la root tu cherches :

Code:

    echo "<title>$sitename $pagetitle</title>\n";


Que tu remplaces par :

Code:

   
// -------------------------------------------------------
// petit bout de code pour titre post forum dans tire page
// titre visible si posté ou déjà posté
// -------------------------------------------------------

      
      global $name, $HTTP_GET_VARS,$db;
      
      // si on est dans forums
      if ($name=='Forums') {
    foreach ($HTTP_GET_VARS as $key =>$v1) { 
       
       // si il y a  viewtopic dans les valeur de l'array $HTTP_GET_VARS
         if (in_array('viewtopic',$HTTP_GET_VARS)) {
            
               // si les Key du tableau sont soit t(view) ou p(view suite post!)
             if ($key=='t' or $key=='p') {
                
                // alors val de l'un ou l'autre (pour récup id pour la
                // requete ci-dessous
                
                $myvalhead = $v1;
             }
          }
        }
   
       // si myvalhead ok et si on est dans forums (pour eviter la requete ailleurs)
       if ($myvalhead && $name=='Forums') {
          $result = $db->sql_query("select post_id, post_subject from nuke_bbposts_text where post_id=$myvalhead");
          list($p_id,$sujet) = $db->sql_fetchrow($result);
         
          // var a mettre dans le titre su site
          $sujet= "<<< ($p_id) $sujet >>>";
        }
     } // fin if forums
 
    echo "<title>$sitename $pagetitle $sujet</title>\n";


Voilà avec Ce code tu auras l'id + le titre du post qui s'affichera dans le titre de la page (balise title) uniquement dans le mod Forums et sans avoir a toucher le reste (pratique car ok dans tout les themes Exclamation ...

J'ai essayé de commenté un peu ...

Désolé si je suis passé à côté de ce que tu voulais mais il est tard et je suis un peu dans le gaz Mr. Green

Auteur: FBLocalisation: Gradignan (33) MessagePosté le: 25.09.2004, 10:36:48    Sujet du message:

Salut Ck et merci beaucoup !

En attendant une réponse, j'ai pensé a utiliser $_GET et codé ceci, qui marche très bien :

1) Ajouter $prefix, $db à la fin de la ligne global située au début de header.php ( tout début de la fonction head() ) qui devient :

Code:
global $slogan, $sitename, $banners, $nukeurl, $Version_Num, $artpage, $topic, $hlpfile, $user, $hr, $theme, $cookie, $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4, $textcolor1, $textcolor2, $forumpage, $adminpage, $userpage, $pagetitle, $page_title, $name, $prefix, $db;


2) Remplacer la ligne :

Code:
echo "<title>$sitename $pagetitle</title>\n";


Par :

Code:
/***** TITRE PAGE (Ajout FB) *****/   
if ($name =="Forums") {
   if ($_GET['file'] =="viewforum"){
      $forumid = $_GET['f'];
      $row = $db->sql_fetchrow($db->sql_query("SELECT forum_name FROM ".$prefix."_bbforums WHERE forum_id='$forumid'"));
      $forum = $row['forum_name'];
      echo "<title>Forum $sitename : $forum </title>\n";}
   if ($_GET['file'] =="viewtopic"){
      $topicid = $_GET['t'];
      $row = $db->sql_fetchrow($db->sql_query("SELECT topic_title FROM ".$prefix."_bbtopics WHERE topic_id='$topicid'"));
      $topic = $row['topic_title'];
      echo "<title>Forum $sitename : $topic </title>\n";}
   if ($_GET['file'] =="search"){echo "<title>Forum $sitename : Recherche </title>\n";}
   if ($_GET['file'] =="faq"){echo "<title>Forum $sitename : FAQ du Forum </title>\n";}
   if (($_GET['file'] =="index") OR ($_GET['file'] =="")){echo "<title>Forum $sitename : Accueil </title>\n";}
   else {echo "<title>Forum $sitename</title>\n";}
} else {echo "<title>$sitename $pagetitle</title>\n";} // si pas forum
/*****   /FIN TITRE PAGE/    *****/



Qu'en penses-tu ? (code de petit amateur, je suppose... en plus, çà m'a coûté du sommeil !)


J'ai un autre problème : Le forum génère ses propres balises (doctype, head, title ...) qui se trouvent donc en milieu de la page html envoyée par le serveur pour toute page concernant le forum : COMMENT DESACTIVER L'EDITION DE CES LIGNES (-> < title > $sitename :: $page_title...) car il parait que ce n'est pas bon du tout. J'ai cherché dans tout le module forum mais...

MERCI.


Dernière édition par FB le 25.09.2004, 12:21:01; édité 1 fois

Auteur: FBLocalisation: Gradignan (33) MessagePosté le: 25.09.2004, 12:15:16    Sujet du message:

Bon...

C'est dans le thème. Ce qui suit est peut-être à adapter (exemple avec Cooldsteel) quique les deux fichiers en question doivent exister dans tout les thèmes puisqu'ils sont indispensable pour un phpBB en standalone. Question

Ces lignes sont dans themes/nom_theme/forums, il s'agit de overall_header.tpl et overall_footer.tpl.

1) Dans ce dernier, enlever les deux dernières lignes :

Code:
 </body> et </html>


2) dans overall_header.tpl, enlever le début du fichier, à savoir :

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 ... jusquà
... <title>{SITENAME} :: {PAGE_TITLE}</title>



Voilà de quoi avoir des pages conformes, sur ce point, avec le W3C Laughing

@+



PHP-Nuke France - CE -> Référencement - URL Rewrittin - Google

Toutes les heures sont au format GMT + 2 Heures

Aller à la page 1, 2, 3  Suivante
Page 1 sur 3


>> Fermer cette Page <<