Jump to content

récupérer les données utilisateurs sur les fiches produits


Recommended Posts

Bonjour à tous,

J'utilise la version 1.6.0.9 avec le theme Flatroshop

J'essai en vain de vouloir afficher les différents champs visibles dans "Mes informations personnelles" de l'utilisateur connecté, directement dans les fiches produits. Notamment un champs "dep"(pour le département). Ceci afin de faire des tests sur le département et déterminer l'image qui s'affiche sur la fiche produit.

En suivant les tuto, j'ai déclaré cette variable dans authentification.tpl, identity.tpl, cookies.php et customer.php

Quand je suis sur "mon compte", cela marche bien

Mais je cherche depuis assez longtemps à faire le pont pour avoir accès à ces variables depuis product.tpl

Quelles sont les pistes??

merci

 

Link to comment
Share on other sites

Merci OkOm pour ta réponse... j'ai tout de meme un soucis de compréhension... 

$this->context->customer->dep 

s'ajoute bien dans un fichier php?

comment je fais pour la récupérer dans mon product.tpl

... je pense que j'ai codé n'importe quoi à force de lire ... 

et j'ai du mal a comprendre la liaison entre mes déclarations php et la sortie sur un tpl !!

(je me fouette pourtant !!! lol)

 

voici les différents ajouts que j'ai fais...

 

dans customer.php

 

/** je met la variable du departement pour identifier association correspondante */

public $depasso;
 
/** je déclare depasso dans la définition */
public static $definition = array(
'table' => 'customer',
'primary' => 'id_customer',
'fields' => array(
...
'depasso' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 128),
...

 

/** je l'ajoute a ma fonction getcustomer*/

public static function getCustomers()
{
$sql = 'SELECT `id_customer`, `email`, `firstname`, `lastname`, `depasso`

 

dans authentification.tpl (c'est un champs obligatoire)

...

<div class="required form-group">

<label for="depasso">{l s='Votre Code Postal'} <sup>*</sup></label>
<input type="text" class="is_required validate form-control" data-validate="isdepasso" id="depasso" name="depasso" onblur="$('#depasso').val($(this).val());" value="{if isset($smarty.post.depasso)}{$smarty.post.depasso}{/if}" />
<input type="hidden" id="depasso" name="depasso" value="{if isset($smarty.post.depasso)}{$smarty.post.depasso}{/if}" />
</div>
...

 

dans identity.tpl (toute modification enregistré en BDD)

...

<div class="required form-group">    
<label for="depasso" class="required">
{l s='Votre Code Postal'}
</label>    
<input class="is_required validate form-control" data-validate="isdepasso" type="text" name="depasso" id="depasso" value="{$smarty.post.depasso}"/>
</div>

...

 

et dans cookies.php (je l'ai ajouté dans la fonction mylogout)

 

unset($this->_content['depasso']);

 

 

Merci si tu peux me faire avancer OkOm (7n1)

Link to comment
Share on other sites

oui... allons y par étape !!

 

Ma variable est créée dans la table xxx_customer et se nomme "depasso"

 

J'ai donc créé le fichier customer.php dans l'override: (j'ai bien compris que le customer.php d'origine devait resté propre... j'ai donc nettoyé le mien de mes ajouts !)

<?php
class Customer extends CustomerCore
{
  public $depasso;
  public static $definition = array(
   'fields' => array(
     'depasso' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 128),
    ),
  );
}
 
J'ai créé le répertoire customers et le fichier informations.tpl
override/controllers/admin/templates/customers/informations.tpl
(!oupsss je n'ai pas de fichier information . tpl dans le répertoire customer du chemin admin !! => stand bye plutot que de faire des betises ! c'est pour le BO a ce que j'ai vu !)
 
bref... je continu par la modification de... product.tpl puisque c'est dans ce fichier que je veux voir apparaitre ma variable ! non?
 
j'ai modifier comme cela (meme si les onglets c'est bizarre!)
 
<div id="more_info_block" class="clear">
  <ul id="more_info_tabs" class="idTabs idTabsShort clearfix">
  <!-- ... -->
 
  {if $customer->depasso }
    <li>
      <a id="more_info_tab_information" href="#idTab13">
        {l s='département'}
      </a>
    </li>
  {/if}
 
  <!-- ... -->
</ul>
 
<div id="more_info_sheets" class="sheets align_justify">
  <!-- ... -->
 
  {if isset($customer) && $customer->depasso }
  <div id="idTab13" class="rte">{$customer->depasso }</div>
  {/if}
 
  <!-- ... -->
</div>

 

 

J'ai donc ajouté théoriquement le champs dans tous mes products...

je vide mon cache !

 

ETTTTTTT.......voilà ! ... rien du tout

pas de panique, je pense qu'il y a encore des choses à faire !

 

quelle est la prochaine étape??

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...