- Posts: 143
- Thank you received: 6
Positionnement champs personnalisé dans le template
- pincealinge
-
Topic Author
- Offline
Less
More
3 years 8 months ago #348268
by pincealinge
Positionnement champs personnalisé dans le template was created by pincealinge
Bonjour,
J'ai une question dont la réponse est peut être super simple. (j'ai cherché mais pas trouvé)
Voilà je souhaite créer plein de champs personnalisé pour mes fiches produits. Et ensuite les afficher a différent endroit de la page produit. (et non a la suite)
Actuellement, j'ai bien compris que les champs personnalisé sont appelé dans "product / show_default"
Qui lui même appel : "show_block_custom_main"
Mais du coup les champs apparaissent à la suite... moi je voudrais les faire un peu n'importe ou dans ma mise en page.
Je me dis que le top, serait de les appeler individuellement pour pouvoir les mettre à l'emplacement de mon choix.
(pour une mise en page aux petits oignons)
Il n'y aurai pas une méthode, genre un appel ? J'ai testé de mettre dans mon "product / show_default" un truc comme ça :
<?php echo $this->element->NOMDEMONCHAMPS; ?>
NOMDEMONCHAMPS : j'ai mis le nom de mon champs personnalisé...
Mais évidemment ça ne fonctionne pas... je ne sais pas codé, je me dis dans mon fort intérieur que c'est possible... avec le bon appel ?
peut etre ?...
Si vous aviez une idée ?
Merci
J'ai une question dont la réponse est peut être super simple. (j'ai cherché mais pas trouvé)
Voilà je souhaite créer plein de champs personnalisé pour mes fiches produits. Et ensuite les afficher a différent endroit de la page produit. (et non a la suite)
Actuellement, j'ai bien compris que les champs personnalisé sont appelé dans "product / show_default"
Qui lui même appel : "show_block_custom_main"
Mais du coup les champs apparaissent à la suite... moi je voudrais les faire un peu n'importe ou dans ma mise en page.
Je me dis que le top, serait de les appeler individuellement pour pouvoir les mettre à l'emplacement de mon choix.
(pour une mise en page aux petits oignons)
Il n'y aurai pas une méthode, genre un appel ? J'ai testé de mettre dans mon "product / show_default" un truc comme ça :
<?php echo $this->element->NOMDEMONCHAMPS; ?>
NOMDEMONCHAMPS : j'ai mis le nom de mon champs personnalisé...
Mais évidemment ça ne fonctionne pas... je ne sais pas codé, je me dis dans mon fort intérieur que c'est possible... avec le bon appel ?
peut etre ?...
Si vous aviez une idée ?
Merci
Please Log in or Create an account to join the conversation.
3 years 8 months ago - 3 years 8 months ago #348269
by nicolas
Replied by nicolas on topic Positionnement champs personnalisé dans le template
Bonjour,
Le code est bon. Par contre, c'est la version simple.
Si le produit a des variantes, alors $this->element contient les données de la variante par défaut, et $this->element->main contient les données du produit principal.
Aussi, ce code va afficher les données brutes de la base de données. Donc par exemple, pour un champ "ajax file", il va afficher le nom du fichier dans le dossier d'upload, et non le lien de téléchargement du fichier comme le fait l'affichage par défaut.
Pour avoir un affichage plus propre, il faut faire comme ceci:
Aussi, notez qu'il faut remplacer NOMDEMONCHAMPS par le nom de colonne du champ et pas le label, et que la casse (minuscule/majuscule) doit être respectée.
Le code est bon. Par contre, c'est la version simple.
Si le produit a des variantes, alors $this->element contient les données de la variante par défaut, et $this->element->main contient les données du produit principal.
Aussi, ce code va afficher les données brutes de la base de données. Donc par exemple, pour un champ "ajax file", il va afficher le nom du fichier dans le dossier d'upload, et non le lien de téléchargement du fichier comme le fait l'affichage par défaut.
Pour avoir un affichage plus propre, il faut faire comme ceci:
Code:
<?php
$fieldClass = hikashop_get('class.field');
$field = $fieldClass->getField('NOMDEMONCHAMPS', 'product');
echo $fieldClass->show($field,$this->element->NOMDEMONCHAMPS);
?>
Last edit: 3 years 8 months ago by nicolas.
The following user(s) said Thank You: pincealinge
Please Log in or Create an account to join the conversation.
- pincealinge
-
Topic Author
- Offline
Less
More
- Posts: 143
- Thank you received: 6
3 years 8 months ago #348293
by pincealinge
Enorme !!!!!!!!
Le champs des possible est infini !!! j'ai des paillettes dans les yeux !!
Du coup, j'ai cherché ton code dans le forum, je suis tombé sur ça, ça complète (pour ceux qui passerai par là.)
www.hikashop.com/forum/development/89757...-description-if.html
Merci !!!!!
Replied by pincealinge on topic Positionnement champs personnalisé dans le template
Enorme !!!!!!!!
Le champs des possible est infini !!! j'ai des paillettes dans les yeux !!
Du coup, j'ai cherché ton code dans le forum, je suis tombé sur ça, ça complète (pour ceux qui passerai par là.)
www.hikashop.com/forum/development/89757...-description-if.html
Merci !!!!!
Please Log in or Create an account to join the conversation.
- pincealinge
-
Topic Author
- Offline
Less
More
- Posts: 143
- Thank you received: 6
3 years 7 months ago - 3 years 7 months ago #349206
by pincealinge
Replied by pincealinge on topic Positionnement champs personnalisé dans le template
C'est juste fantastique.
Du coup je place ça, et j'ai le contenu de mon champs personnalisé qui apparait ou je veux, j'adore... Mais il me manque un truc, le titre du champs personnalisé :
Je ne sais pas comment faire pour récupéré le "nom" du titre du champs personnalisé…
Donc a la place de ça :
J'ai essayé ça :
Evidement ça ne fonctionne pas… en même temps je suis intégrateur css...
Si tu as une solution, mille merci.
Du coup je place ça, et j'ai le contenu de mon champs personnalisé qui apparait ou je veux, j'adore... Mais il me manque un truc, le titre du champs personnalisé :
Code:
<?php
if(!empty($this->element->nom-du_champ)) {
echo '<div class="titre">TITRE DU CHAMPS PERSONNALISÉ</div>';
$fieldClass = hikashop_get('class.field');
$field = $fieldClass->getField('nom-du_champ', 'product');
echo '<div class="description">' . $fieldClass->show($field,$this->element->nom-du_champ) . '</div>';
}
if(!empty($this->element->autortext)) {
echo '<div >' . $this->element->autortext . '</div>';
}
?>
Je ne sais pas comment faire pour récupéré le "nom" du titre du champs personnalisé…
Donc a la place de ça :
Code:
echo '<div class="titre">TITRE DU CHAMPS PERSONNALISÉ</div>';
J'ai essayé ça :
Code:
echo '<div class="titre">' . $fieldClass->show($field_realname,$this->element->nom-du_champ) . '</div>';
Evidement ça ne fonctionne pas… en même temps je suis intégrateur css...
Si tu as une solution, mille merci.
Last edit: 3 years 7 months ago by nicolas.
Please Log in or Create an account to join the conversation.
3 years 7 months ago - 3 years 7 months ago #349208
by nicolas
Replied by nicolas on topic Positionnement champs personnalisé dans le template
Bonjour,
Vous n'êtes pas loin.
Vous pouvez faire comme ceci:
Vous n'êtes pas loin.
Vous pouvez faire comme ceci:
Code:
<?php
if(!empty($this->element->nom-du_champ)) {
$fieldClass = hikashop_get('class.field');
$field = $fieldClass->getField('nom-du_champ', 'product');
echo '<div class="titre">'.$fieldClass->getFieldName($field).'</div>';
echo '<div class="description">' . $fieldClass->show($field,$this->element->nom-du_champ) . '</div>';
}
if(!empty($this->element->autortext)) {
echo '<div >' . $this->element->autortext . '</div>';
}
?>
Last edit: 3 years 7 months ago by nicolas.
The following user(s) said Thank You: pincealinge
Please Log in or Create an account to join the conversation.
- pincealinge
-
Topic Author
- Offline
Less
More
- Posts: 143
- Thank you received: 6
3 years 7 months ago #349333
by pincealinge
Replied by pincealinge on topic Positionnement champs personnalisé dans le template
C'est tellement beau, merci
Please Log in or Create an account to join the conversation.
Time to create page: 0.201 seconds