Skip to main content

Comment afficher un champ dans la vue order/show

More
13 years 7 months ago #89868 by Michel75
Voilà je voudrais modifier la vue order/show pour inclure des clauses d'utilisation. j'ai créé des champs que le client remplit au moment de sa commande. Pour l'instant les champs sont visibles à la fin de la facture.
Mais je voudrais les inclure dans un texte. et non pas à la suite. Que dois-je écrire comme code pour avoir uniquement le contenu des champs qui m'intéresse.

Merci

Please Log in or Create an account to join the conversation.

More
13 years 7 months ago #89961 by Xavier
Bonjour,

Le code pour afficher les champs de produits est:
Code:
if(hikashop_level(2) && !empty($this->fields['item'])){ foreach($this->fields['item'] as $field){ $namekey = $field->field_namekey; if(!empty($product->$namekey)){ echo '<p class="hikashop_order_item_'.$namekey.'">'.$this->fieldsClass->getFieldName($field).': '.$this->fieldsClass->show($field,$product->$namekey).'</p>'; } } }
Et les champs de commande:
Code:
<?php foreach($this->fields['order'] as $fieldName => $oneExtraField) { if(!@$oneExtraField->field_frontcomp || empty($this->order->$fieldName)) continue; ?> <tr class="hikashop_order_custom_field_<?php echo $fieldName;?>_line"> <td class="key"> <?php echo $this->fieldsClass->getFieldName($oneExtraField);?> </td> <td> <?php echo $this->fieldsClass->show($oneExtraField,$this->order->$fieldName); ?> </td> </tr> <?php } ?>

Please Log in or Create an account to join the conversation.

More
13 years 7 months ago #89975 by Michel75
merci pour votre réponse.

mais le code que vous me communiquez est une boucle pour afficher l'ensemble des champs. je voudrais afficher seulement le contenu d'un champ pour l'insérer dans un texte du style

votre projet est contenuduchampX

Uniquement le contenu d'un champ spécifique et nom pas tous les champs.

Merci

Please Log in or Create an account to join the conversation.

More
13 years 7 months ago #90014 by Xavier
Code:
foreach($this->fields['order'] as $fieldName => $oneExtraField) { if($this->fieldsClass->getFieldName($oneExtraField) == 'champX') echo $this->fieldsClass->show($oneExtraField,$this->order->$fieldName); }

Please Log in or Create an account to join the conversation.

More
13 years 7 months ago #90080 by Michel75
J'ai essayé de copier ce code
Code:
foreach($this->fields['order'] as $fieldName => $oneExtraField) { if($this->fieldsClass->getFieldName($oneExtraField) == 'monchamp') echo $this->fieldsClass->show($oneExtraField,$this->order->$fieldName); }

où monchamp est un champ créé pour le test . il est bien visible lors de la commande mais il n'apparait pas dans la facture coté partie publique avec ce code. j'ai bien copié ce code dans la partie du template concerné de la vue order/show.php

Please Log in or Create an account to join the conversation.

More
13 years 7 months ago #90136 by Xavier
Qu'avez vous mis comme valeur pour "monchamp", le label ou le column name ? (dans la config du champ)
Dans cet exemple il faut utiliser la valeur du label. Pour la valeur du column name essayez d'utiliser "if($fieldName = "column_name")..." à la place du if existant.

Please Log in or Create an account to join the conversation.

Time to create page: 0.215 seconds
Powered by Kunena Forum