Aide - Recherche - Membres - Calendrier
Version complète : [resolu] Changer les titres pour chaque pages
Forum osCommerce-fr > Les Bases d'OsCommerce MS2 > Fonctionnement
Yohan
Bonjour,

aprés recherche, je n'ai pas trouvé comment changer les titres sur chaque page de mon site, car c'est toujour le même.


si une âme charitable pouvait me donné la démarche a suivre.

Par avance merci à vous.
xaglo
Question récurrente, tu trouveras plein d'infos en fouillant un peu.

Comme pour toutes pages html, le titre de la page est défini dans la balise <title>
Le défaut dans oscommerce de base est que cette balise est en effet la même pour toutes, par un appel à une constante TITLE:
CODE
<title><?php echo TITLE; ?></title>

Il suffit donc de remplacer cet echo par ce que tu veux.

L'idéal est de faire ça dynamiquement pour mettre le titre de ton article par exemple dans la page product_info.php. La modif n'est pas bien compliquée: un appel en base du genre
CODE
  $head_info_query = tep_db_query("select products_name from " . TABLE_PRODUCTS . "  where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'  and language_id = '" . (int)$languages_id . "'");
  $head_info = tep_db_fetch_array($head_info_query);

et tu remplaces ton TITLE par le nom de ton article
CODE
<title><?php echo $head_info['products_name']; ?></title>

voili pour le principe. A adapter et modifier à tes besoins.

Tu peux aussi ajouter une contribution comme header_tag qui fera le boulot et plus (trop à mon goût).
thematrixisme
je rajouterais : Référencement

par ailleurs, je te conseille vivement l'utilisation d'une contribution type SEO Ultimate,...
Yohan
Merci à vous
lenawa
CITATION(xaglo @ 15 May 2006, 05:01) [snapback]174668[/snapback]

L'idéal est de faire ça dynamiquement pour mettre le titre de ton article par exemple dans la page product_info.php. La modif n'est pas bien compliquée: un appel en base du genre
CODE
  $head_info_query = tep_db_query("select products_name from " . TABLE_PRODUCTS . "  where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'  and language_id = '" . (int)$languages_id . "'");
  $head_info = tep_db_fetch_array($head_info_query);



Bonjour,

Il faut le placer où ce code sur la page product_info.php ?

Merci d'avance

Léna
xaglo
une page php se lit comme un livre: de haut en bas et de gauche à droite. Il suffit d'ajouter la requète avant d'utiliser son résultat. Pour cet exemple, en début de page, après
CODE
  require('includes/application_top.php');

qui est nécessaire au fonctionnement du code
lenawa
Je viens de tester, et quand je clique sur un produit pour accéder à sa page, ça me met cette erreur:

1054 - Unknown column 'products_name' in 'field list'

select products_name from products where products_id = '35' and language_id = '4'

[TEP STOP]
thematrixisme
il y a une erreur (dsl xaglo)...

CODE
$head_info_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . "  where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'  and language_id = '" . (int)$languages_id . "'");
  $head_info = tep_db_fetch_array($head_info_query);
lenawa
Merci beaucoup car maintenant ça marche parfaitement! smile.gif
thematrixisme
de rien wink.gif

tu peux éditer ton message, et mettre "résolu" stp.. rolleyes.gif
xaglo
CITATION(thematrixisme @ 15 May 2006, 14:46) [snapback]174729[/snapback]
il y a une erreur (dsl xaglo)

C'était fort possible, j'avais tapé cette requète en "live"… un peu prétentieux sur le coup biggrin.gif

merci thematrixisme wink.gif

Yohan
Re bonjour,

si qu'elle qu'un pouvait m'aider ou me donner la démarche a suivre pour installé la contrib header tag, parce que franchement la, je comprend pas !

merci
thematrixisme
si tu nous disais ce que tu ne comprends pas... ce serait plus simple? smile.gif
Yohan
CITATION(thematrixisme @ 15 May 2006, 16:50) [snapback]174773[/snapback]

si tu nous disais ce que tu ne comprends pas... ce serait plus simple? smile.gif



En gros tout, je ne comprend pas comment il faut faire!!!
j'aimerai bien que toutes mes pages produits (environ 600) apparaisse sur google avec le nom du produit.
xaglo
CITATION(Yohan @ 15 May 2006, 23:39) [snapback]174863[/snapback]
En gros tout,
Seulement?? tongue.gif

Soyons sérieux, comment veux-tu que l'on t'aide si on ne sait pas où tu bloques? Pour modifier le titre de tes pages (sujet de ce fil), tout a été dit non?? En tous cas de quoi te débrouiller.

Si tu pars sur la contribution header tag et que tu veux plus de conseils, reporte toi dans le forum à propos (contributions) et commence par lire les nombreux topics qui en parlent.

Bonne lecture
eblovie
J'ai essayé d'ajouter le code de Xaglo pour les titres des pages.
Ca n'a aucun effet, quand je fais les modifications sur product_info.php

Comme j'ai installé STS_template pour le design du site, je me dis que ça vient surement de là...

Donc j'ai essayé de modifier les fichiers de ces templates (index.php.html...).
Si je met un titre en html ça marche, mais pas quand j'essaie de le mettre dynamiquement en php. Logique puisque la page qui défini le template est en html et non en php.

Alors avez-vous une idée de comment je dois m'y prendre ? Je pense que c'est cette contrib qui pose problème... Mon but, mettre un titre différent à chaque page en fonction du produit, de la catégorie...

Merci pour votre aide
From Fan 2 Fans
J'ai simplement ajouté les boutq de codes donéns ci-dessus. Ca marche du tonnerre!
Petite question; c'est prix en compte lors du référencement (pour savoir si je devrais être mieux placé dans google)

Merci!
xaglo
oui, la balise <title> est LA plus importante pour le positionnement d'une page dans le référencement
Starvey
Et
CODE
META NAME="Description"

Ca serait con de l'oublier puisque Google affiche, sous le lien, la description du site en quelques mots.
Si c'est toi qui remplit la balise, celui qui fait la recherche lit ce que tu as mis (interessant, non ?). Sinon, il lit ce que Google a décidé de mettre (moins intéressant, surtout si tes premiers mots sont : "Une boutique de merde qui vous pourrit la vie en vous vendant n'importe quoi à n'importe quel prix, c'est tout l'inverse de notre politique" ; car il y a de grande chance que Google n'affiche que : "Une boutique de merde qui vous pourrit la vie en vous vendant n'importe quoi à n'importe quel prix" biggrin.gif )
az23
CITATION(Starvey @ 29 Feb 2008, 11:47) [snapback]271195[/snapback]
Et
CODE
META NAME="Description"

Ca serait con de l'oublier puisque Google affiche, sous le lien, la description du site en quelques mots.
Si c'est toi qui remplit la balise, celui qui fait la recherche lit ce que tu as mis (interessant, non ?). Sinon, il lit ce que Google a décidé de mettre (moins intéressant, surtout si tes premiers mots sont : "Une boutique de merde qui vous pourrit la vie en vous vendant n'importe quoi à n'importe quel prix, c'est tout l'inverse de notre politique" ; car il y a de grande chance que Google n'affiche que : "Une boutique de merde qui vous pourrit la vie en vous vendant n'importe quoi à n'importe quel prix" biggrin.gif )


CITATION(xaglo @ 15 May 2006, 14:00) [snapback]174739[/snapback]
C'était fort possible, j'avais tapé cette requète en "live"… un peu prétentieux sur le coup biggrin.gif

paria
bonjour et merci pour le code

est ce quelqu'un peut décrire comment faire des requetes supplémentaires sur d'autres champs (catégories, fabricants, etc) et les intégrer dans la balise <TITLE> à la suite du nom de l'article ?

(car les 2 derniers posts ci dessus semblent résolus mais on ne sait pas comment rolleyes.gif )
jp15
pour rajouter la categorie il faut rajouter avant le code pour recupérer la categorie

Code
  if (tep_not_null($cPath)) {
    $cPath_array = tep_parse_category_path($cPath);
    $cPath = implode('_', $cPath_array);
    $current_category_id = $cPath_array[(sizeof($cPath_array)-1)];
  } else {
    $current_category_id = 0;
  }


et modifier $HTTP_GET_VARS['categories_id'] par $current_category_id

Code
$head_info_category_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . $current_category_id . "' and language_id = '" . (int)$languages_id . "'");
$head_info2 = tep_db_fetch_array($head_info_category_query);

$sts->template['headertags']= "<title>".$head_info2['categories_name']." - ".$head_info['products_name']." titre en dur sur toute les page</title>";


voici le code complet :

Code
$head_info_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . "  where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'  and language_id = '" . (int)$languages_id . "'");
  $head_info = tep_db_fetch_array($head_info_query);
    
    if (tep_not_null($cPath)) {
     $cPath_array = tep_parse_category_path($cPath);
     $cPath = implode('_', $cPath_array);
    $current_category_id = $cPath_array[(sizeof($cPath_array)-1)];
  } else {
    $current_category_id = 0;
  }

  $head_info_category_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . $current_category_id . "' and language_id = '" . (int)$languages_id . "'");
$head_info2 = tep_db_fetch_array($head_info_category_query);
  
    $sts->template['headertags']= "<title>".$head_info2['categories_name']." - ".$head_info['products_name']." titre en dur sur toute les pages</title>";


tous ceci se fait dans le fichier general.php dans sts_inc/ pour les personne qui utilise STS
Eric B
Salut jp15

Je suis bien arrive a faire la premiere partie de ce topic sur les articles mais je n'arrive pas a faire ce que tu proposes pour les categories !

Peux tu me dire dans quel dossier.php (+chemin) mettre ton code :

CODE
$head_info_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");
$head_info = tep_db_fetch_array($head_info_query);

if (tep_not_null($cPath)) {
$cPath_array = tep_parse_category_path($cPath);
$cPath = implode('_', $cPath_array);
$current_category_id = $cPath_array[(sizeof($cPath_array)-1)];
} else {
$current_category_id = 0;
}

$head_info_category_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . $current_category_id . "' and language_id = '" . (int)$languages_id . "'");
$head_info2 = tep_db_fetch_array($head_info_category_query);

$sts->template['headertags']= "".$head_info2['categories_name']." - ".$head_info['products_name']." titre en dur sur toute les pages";



Merci
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.