En visitant ce site, vous acceptez l'utilisation de cookies afin de vous proposer les meilleurs services possibles.

[résolu] afficher des champs personnalisés dans la description du produit

  • doc_denis
  • Portrait de doc_denis
  • Hors Ligne
  • Membre senior
  • Membre senior
  • ...oui, la photo date :)
Plus d'informations
il y a 7 ans 8 mois - il y a 7 ans 8 mois #1 par doc_denis
bonjour,
je cherche à afficher des champs personnalisés dans la description produit.

c'est des trucs simples, comme : couleur, hauteur, largeur poids...

ils sont publiés en position "vmchp" que je souhaite récupérer dans la description du produit.

un peu comme avec :
{loadposition vmchp}

ou comme je le fait parfois en dur dans la surcharge, sauf qu'ici avec mon template vp_smart je n'y arrive pas, car la description est dans une balise "script"
<?php echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$product,'position'=>'vmchp')); ?>

il doit exister un truc simple pour ça, mais je ne trouve pas ..grrr

si vous avez des idées, j'écoute :-) ...Merci
Dernière édition: il y a 7 ans 8 mois par doc_denis.

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 7 ans 8 mois #2 par studio42
La liste est dans le produit,
Si il te faut une valeur alors extrait la.
Il faut alors ajouter le titre du champs dans le texte, comme ci dessous.
$texte = 'Mon produit {couleur}, {hauteur}, {largeur}...
$position = 'vmchp';
$fields = $product->customfieldsSorted[$position];// liste des champs perso de $position vmchp
foreach($fields as $field) $texte = str_replace('{'.$field->custom_title.'}',$field->display,$texte);
Ce qui donnera au final , si les champs avec titre : couleur, hauteur et largeur existent, par exemple :
Mon produit bleu, 120mm, 245mm...
Mais bon, c'est pas génial comme système.

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!

Connexion ou Créer un compte pour participer à la conversation.

  • doc_denis
  • Portrait de doc_denis
  • Hors Ligne
  • Membre senior
  • Membre senior
  • ...oui, la photo date :)
Plus d'informations
il y a 7 ans 8 mois - il y a 7 ans 8 mois #3 par doc_denis
ouais, c'est moins simple que l'idée de "loadposition"
c'est dommage, de ne pas pouvoir utiliser une fonction joomla avec des position personnalisées de VM.

j'ai aussi pensé à un module joomla qui rechercherai les valeurs de la position "vmchp" et qui (du coup) serai disponible avec un "loadposition".

je vais regarder ton idée de plus près :-)
Dernière édition: il y a 7 ans 8 mois par doc_denis. Raison: ajout de la dernière ligne ...un oubli

Connexion ou Créer un compte pour participer à la conversation.

  • studio42
  • Portrait de studio42
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Dev Joomla & Virtuemart
Plus d'informations
il y a 7 ans 8 mois #4 par studio42
Tu peux créer un plugin, mais bon, il faut voir dans quel cas c'est intéressant.
C'est plus simple d'afficher directement les champs perso de façon classique et modifier le rendu du sublayout(ce que je fais souvent).

www.st42.fr Truc et astuce Joomla et virtuemart
shop.st42.fr téléchargement Joomla et extension pour virtuemart
Gratuit ! Nettoyage des medias : shop.st42.fr/fr/produits/virtuemart-netoyage-des-medias.htm Nouveau!

Connexion ou Créer un compte pour participer à la conversation.

  • doc_denis
  • Portrait de doc_denis
  • Hors Ligne
  • Membre senior
  • Membre senior
  • ...oui, la photo date :)
Plus d'informations
il y a 7 ans 8 mois #5 par doc_denis
Bonjour,
j'ai réussi avec la modification de "productdetails/defaut.php"
<div class="doc_vmchp">
<?php echo shopfunctionsf::rendervmsublayout('customfields', array('product' => $this->product, 'position' => 'vmchp')); ?>
</div>
ce qui me donne :


merci.
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.