Aide - Recherche - Membres - Calendrier
Version complète : Afficher "Bienvenue Monsieur untel"
Forum osCommerce-fr > Adapter OsCommerce MS2 > Design
nicon
Bonjour,

j'ai bien trouvé quelques sujets parlant d'afficher "Bonjour Monsieur untel" dans la Faq [url=http://www.oscommerce-fr.info/forum/index.php?showtopic=32014]
ici !
[/url] mais impossible de savoir quels sont les fichiers que l'on doit changer !!!

j'ai une petite idée mais je crois savoir qu'il y a plusieurs fichiers

1) C:\Program Files\EasyPHP1-8\www\catalog\includes\languages\french.php

changer ceci : define('TEXT_GREETING_PERSONAL', 'Bienvenue <span class="greetUser">%s!</span> Voudriez vous voir quels <a href="%s"><u>nouveaux produits</u></a> sont disponibles à la vente ?');


en cela : define('TEXT_GREETING_PERSONAL', 'Bienvenue' .SEXE(). ' <span class="greetUser">%s</span> <a href="%s"><u>cliquez ici pour accéder au questionnaire</u></a>');

Mais pour le reste impossible de savoir

Merci d'avance a tous

Nicon
fissiaux
Tu as cherché dans catalog/includes/functions/general.php ?
nicon
Re Bonjour,

Et surtout Merci mais voila j'ai changer dans C:\Program Files\EasyPHP1-8\www\catalog\includes\functions\general.php

en ligne 932
Ceci

// Return a customer greeting
function tep_customer_greeting() {
global $customer_id, $customer_first_name;

if (tep_session_is_registered('customer_first_name') && tep_session_is_registered('customer_id')) {

En cela

// Return a customer greeting
function tep_customer_greeting() {
global $customer_id, $customer_first_name;

if (tep_session_is_registered('customer_name') && tep_session_is_registered('customer_id')) {

Pas de message d'erreur mais maintenant il me dit "Bonjour Monsieur, Madame" et de me dit toujours pas mon Nom ni mon sex confused.gif

Merci pour votre aide

@+

Nicon
yap
Il ne fallait pas modifier la condition du if.

Remets-là comme avant et, si tu veux afficher le nom du client plutôt que le prénom, c'est juste un peu plus loin qu'il faut remplacer $customer_first_name par $customer_last_name
nicon
Re bonjour,

J'avance petit à petit cool.gif

Voila!!!

dans dans C:\Program Files\EasyPHP1-8\www\catalog\includes\functions\general.php

J'ai mis cela

// Return a customer greeting
function tep_customer_greeting() {
global $customer_id, $customer_first_name;
$customer_last_name_previous="select customers_lastname from customers where customers_id=$customer_id";
$customer_last_name_integration=mysql_query($customer_last_name_previous);
$customer_last_name_pointer=mysql_fetch_object($customer_last_name_integration);
$customer_last_name=$customer_last_name_pointer->customers_lastname;


if (tep_session_is_registered('customer_first_name') && tep_session_is_registered('customer_id')) {
$greeting_string = sprintf(TEXT_GREETING_PERSONAL,tep_output_string_protected($customer_last_name), tep_href_link(FILENAME_PRODUCTS_NEW));
} else {
$greeting_string = sprintf(TEXT_GREETING_GUEST, tep_href_link(FILENAME_LOGIN, '', 'SSL'), tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));
}

return $greeting_string;
}

Puis dans C:\Program Files\EasyPHP1-8\www\catalog\includes\languages\french.php

Ligne 284

define('TEXT_GREETING_PERSONAL', 'Bienvenue Monsieur, Madame, <span class="greetUser">%s!</span> Voudriez vous voir quels <a href="%s"><u>nouveaux produits</u></a> sont disponibles à la vente ?');

Mais voila le résultat est qu'il me dit "Bienvenue Monsieur, Madame, Untel"

Si je suprime "Monsieur, Madame" alors il me dit "Bienvenue Untel"
La solution serais peut être de lui faire dire "Bienvenue Prénom + Nom" tongue.gif si je peu pas mèttre madame ou Monsieur biggrin.gif

Si quelqu'un a une idée ce serais sympa

Merci a tous et bon week end a vous

@+

Nicon
yap
Tous les textes que tu mets dans un define sont fixés une fois pour toutes. Si tu déclare que TEXT_GREETING_PERSONAL doit afficher "Bienvenue monsieur, madame", il affichera "Bienvenue monsieur, madame" à chaque fois.

Si tu veux différencier les deux, il te faut une fonction qui renvoie "monsieur" ou "madame" selon la valeur de la variable customers_gender.

Et ensuite appeller cette fonction dans la définition de TEXT_GREETING_PERSONAL

Je croyais d'ailleurs que c'était ce que faisait la fonction sexe() dont tu parlais dans ton premier post

nicon
Re Bonjour, wink.gif

Voila ce que donne comme érreur la fonction sex() wub.gif

Fatal error: Call to undefined function: sexe() in c:\program files\easyphp1-8\www\catalog\includes\languages\french.php on line 284 blush.gif

Et moi les Fatal error : j'aime pas ça evil.gif

@+

Nicon
Gnidhal
Jamais entendu parler de cette fonction dans osc laugh.gif laugh.gif laugh.gif
Mais bon, si tu veux la créer... wink.gif

Utilise l'existant. Tu as une fiche client qui contient toutes les données que tu cherches. Ces données sont sûrement insérées dans la variable session après l'identification visiteur.
Après il faut un peu manipuler le code pour rassembler tout cela dans la fonction que tu tripotes depuis le début. (tep_customer_greeting()). D'ailleurs à force, elle ne va plus ressembler à rien celle là!
Si des données te manquent regarde comment est construite la base, fais une requête SQL à partir de $customer_id et injecte ces données manquantes vers la fonction.

Ce que tu cherches à faire n'est pas très compliqué, mais ça demande une bonne compréhension PHP et de l'observation du code existant.

Courage !
nicon
Ce n'est peu être pas compliquer mais c'est bien expliquer dans le forum à cette adresse. tongue.gif

http://www.oscommerce-fr.info/forum/index....showtopic=32014

J’apprends le PHP depuis peu, je suis depuis ce matin à la recherche d’une réponse et cela ne fonctionne pas alors si cette fonction là n’existe pas alors il faut la corriger.

Bon week end et merci a tous wink.gif

Nicon
fissiaux
Tu as regardé cela ?

http://www.oscommerce-fr.info/forum/index....stomer_greeting
nicon
Voila une explication qui a l'air clair rolleyes.gif

Merci a toi fissiaux
yap
On s'est embrouillé parce qu'on ne parlait plus de la même chose.

Je faisais référence à la définition de text_greeting_personal que tu donnais dans ton premier post, à savoir

CODE

define('TEXT_GREETING_PERSONAL', 'Bienvenue' .sexe(). ' <span class="greetUser">%s</span> <a href="%s"><u>cliquez ici pour accéder au questionnaire</u></a>');


Car ceci devrait fonctionner dès qu'il existe dans catalog/includes/functions/general.php une fonction sexe() qui renvoie les chaînes "monsieur" ou "madame".

Et le sujet que tu cite donne bien un code possible pour cette fonction:

CODE

function sexe() {
   global $customer_id;
   $sexe_previous="SELECT customers_gender from customers where customers_id=$customer_id";
   $sexe_integration=mysql_query($sexe_previous);
   $sexe_pointer=mysql_fetch_object($sexe_integration);
   $sexe=$sexe_pointer->customers_gender;

   if ($sexe=='m') {
   $sexe_aff=" Monsieur";
   }
   else if ($sexe=='f') {
      $sexe_aff=" Madame";
   }
   else {
      $sexe_aff= " Madame, Monsieur";
   }
   return $sexe_aff;
}


Voilà.
dino95
bonjours a tous

j'ai fais l'installation de ces quelques ligne de code tout va au mieux sauf un message quand le client arrive sur la page d'accueil avant diouvrir sa session

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\web\easyphp1-7\www\catalog\includes\functions\general.php on line 922

et voila la ligne 922

function sexe() {
global $customer_id;
$sexe_previous="SELECT customers_gender from customers where customers_id=$customer_id";
$sexe_integration=mysql_query($sexe_previous);
$sexe_pointer=mysql_fetch_object($sexe_integration);
$sexe=$sexe_pointer->customers_gender;

if ($sexe=='m') {
$sexe_aff=" Monsieur";
}
else if ($sexe=='f') {
$sexe_aff=" Madame";
}
else {
$sexe_aff= " Madame, Monsieur";
}
return $sexe_aff;
}

comment me sortir de là?? merci

Bon ba j'ai resolu mon bleme en suprimant le code si dessus et avec les modifs suivantes:

pour avoir la mention Mr ou Mme suivie du nom du client en page d'accueil (template) pas la version d'origine

dans catalog/include/header

a l'endroit ou vous voulez voir apparaitre la mention et le nom

<?php echo tep_customer_greeting(); ?>


dans catalog/includes/french.php

define('TEXT_GREETING_PERSONAL', '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bienvenue : &nbsp;<span class="greetUser"> %s<br><br></span>&nbsp;&nbsp;&nbsp;&nbsp; Consulter nos <a

href="%s"><u>nouveaux produits</u></a>');
define('TEXT_GREETING_PERSONAL_RELOGON', '<small>Si vous n\'êtes pas %s, merci de vous <a href="%s"><u>reconnecter in</u></a> avec votre compte.</small>');
define('TEXT_GREETING_GUEST', '&nbsp;&nbsp;Bienvenue <span class="greetUser">: nom de mon site<br><br>&nbsp;</span> Déja Client(e) : <a href="%s"><u>OUVRIR VOTRE

SESSION</u></a><br>&nbsp; Devenir Client(e) : <a href="%s"><u>CREER UN COMPTE</u></a> ');



catalog/includes/functions/general.php

// Return a customer greeting

function tep_customer_greeting() {

global $customer_id, $customer_first_name, $customer_lastname, $customer_gender;



if (tep_session_is_registered('customer_first_name') && tep_session_is_registered('customer_id')) {

$greeting_query = tep_db_query("select customers_firstname, customers_gender from ". TABLE_CUSTOMERS . " where customers_id = '" . $customer_id . "'");

$greeting_data = tep_db_fetch_array($greeting_query);

if ($greeting_data['customers_gender'] == 'm') {

$gender = 'Mr';

} else {

$gender = 'Mme';

}



$customer_name = $gender . '&nbsp;' . $greeting_data['customers_firstname'];

$greeting_string = sprintf(TEXT_GREETING_PERSONAL, $customer_name, tep_href_link(FILENAME_PRODUCTS_NEW, '', 'NONSSL'));

} else {

$greeting_string = sprintf(TEXT_GREETING_GUEST, tep_href_link(FILENAME_LOGIN, '', 'SSL'), tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));

}



return $greeting_string;

}


si ca peut aider ceux qui ont une template
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.