Afficher et cacher des champs custom

  • Posts: 201
  • Thank you received: 7
  • Hikashop Business
3 years 1 month ago #336146

-- HikaShop version -- : 4.4.3
-- Joomla version -- : 4.0.3

hello
je me penche sur la partie templating de la page product
je voudrais desactiver des champs custom lors de la boucle dans product / show_block_custom_main.php
j'ai essayer

foreach ($this->fields as $fieldName => $oneExtraField) {
if($fieldName!='extrait') continue;
mon champ s'appelle extrait mais cela ne fonctionne pas il n'est pas cacher
et comment l'afficher ailleur quel est le code pour appeler 1 champs
MErci par avance

Last edit: 3 years 1 month ago by c-line.

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 1 month ago #336149

Bonjour,

Le code que vous avez rajouter va enlever tous les champs produit autre que "extrait".
Donc ce code ne change rien pour extrait.
Donc vérifiez qu'il s'affiche bien sans la modification grâce aux options d'affichage du champ.
Si c'est le cas, et qu'avec ce code il ne s'affiche plus, c'est que le nom de colonne de votre champ n'est pas "extrait" mais quelque chose d'autre.

Concernant le fait d'afficher la valeur d'un champs personnalisé ailleurs, difficile de répondre par une unique réponse. Cela dépend de la table et du type du champ ainsi que de l'endroit où vous voulez l'afficher.

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

  • Posts: 201
  • Thank you received: 7
  • Hikashop Business
3 years 1 month ago #336167

ok en fait je suis sur la vue product / show_default.php
j'ai créer plusieur champs de type text, date etc lié au produit
et en fait je dois pouvoir afficher les champs de manière individuelle et non pas dans une boucle pour les placer en fonction d'un design précis

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

  • Posts: 4747
  • Thank you received: 644
  • MODERATOR
3 years 1 month ago #336171

Bonjour,

Désolé pour ce retour mais avec votre dernier message nous ne sommes pas sur de comprendre comment rebondir.
En détails, qu'entendez vous par "design précis" ?

Ce que nous pouvons précisé de notre coté, c'est que comme le disait Nicolas, vous pouvez selectionner les custom field à afficher seulement sur certaines page produits spécifiques.

Exemples :
Vue override customisé, AVEC la vue override séléctionner pour la ou les pages page Produits dans la partie "Display" avec l'Option "Page layout" OU BIEN directement, dans cette même option "Layout on product page" mais cette fois dans la page paramètre de chaque catégorie.

// Afficher uniquement les custom field avec le nom "extrait" :
foreach ($this->fields as $fieldName => $oneExtraField) {
if($fieldName == 'extrait') continue;
...
Ou bien, afficher au cas par cas plusieurs custom field :
// Selectioner par field name :
foreach ($this->fields as $fieldName => $oneExtraField) {
if($fieldName == 'name1') continue;
if($fieldName == 'name2') continue;
etc...
...

En espérant que cela vous aide à obtenir ce dont vous avez besoin.
Cordialement

Last edit: 3 years 1 month ago by Philip.

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

  • Posts: 201
  • Thank you received: 7
  • Hikashop Business
3 years 1 month ago #336175

En fait j'ai un article en 2 colonnes
et je veus pouvoir mettre dans champs dans chaque colonne indépendamment
exemple

Attachments:

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 1 month ago #336176

Bonjour,

Pour les champs de type texte, c'est très facile.
Il suffit d'utiliser ce code:

<?php echo $this->element->xxx; ?>
où xxx est le nom de colonne du champs personnalisé.
Ce code va afficher la valeur stockée en base de données. Du coup, pour les champs de sélection, ou de date, cela n'affichera pas ce que vous voulez. Pour cela, il faudra plutôt utiliser:
<?php
$class = hikashop_get('class.field');
$field = $class->getField('xxx','product');
echo $class->show($field, $this->element->xxx);
?>

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

  • Posts: 201
  • Thank you received: 7
  • Hikashop Business
3 years 1 month ago #336249

ok merci beauxoup

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

  • Posts: 201
  • Thank you received: 7
  • Hikashop Business
3 years 4 hours ago #337379

Re bonjour
comment je pourrait trouver le product brand ou l'auteur d'un produit ?
MErci par avance

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

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
2 years 11 months ago #337381

Bonjour,

Le fabricant (brand) d'un produit est affiché par défaut par HikaShop sur la page du produit.
C'est affiché par le code:

<?php
if($this->config->get('manufacturer_display', 0) && !empty($this->element->product_manufacturer_id)){
	$categoryClass = hikashop_get('class.category');
	$manufacturer = $categoryClass->get($this->element->product_manufacturer_id);
	if($manufacturer->category_published){
		$menuClass = hikashop_get('class.menus');
		$Itemid = $menuClass->loadAMenuItemId('manufacturer','listing');
		if(empty($Itemid)){
			$Itemid = $menuClass->loadAMenuItemId('','');
		}
		$categoryClass->addAlias($manufacturer);
		echo JText::_('MANUFACTURER').': '.'<a href="'.hikashop_contentLink('category&task=listing&cid='.$manufacturer->category_id.'&name='.$manufacturer->alias.'&Itemid='.$Itemid,$manufacturer).'">'.$manufacturer->category_name.'</a>';
		echo "<span style='display:none;' itemprop='brand'>". $manufacturer->category_name ."</span>";
	}
}
?>
dans le fichier show_block_dimensions.php
Ce code peut également être utilisé dans show_default.php ou show_tabular.php si vous souhaitez le placer ailleurs sur la page produit.

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

  • Posts: 201
  • Thank you received: 7
  • Hikashop Business
2 years 10 months ago #338770

super c'est top
petit retours avec joomla 4

$class = hikashop_get('class.field');
$field = $class->getField('art_category','product');
?>
      <span><?php echo $class->show($field, $this->element-art_category); ?></span>
pour afficher la valeur d'une liste déroulante
il me renvoi ceci
Warning: Use of undefined constant art_category - assumed 'art_category' (this will throw an Error in a future version of PHP) in /..../templates/..../html/com_hikashop/product/show_default.php on line 224

Notice: Object of class stdClass could not be converted to number in /..../templates/..../html/com_hikashop/product/show_default.php on line 224

Warning: A non-numeric value encountered in /..../templates/..../html/com_hikashop/product/show_default.php on line 224
Article
normal ? j'ai fait une bétise ?

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

  • Posts: 201
  • Thank you received: 7
  • Hikashop Business
2 years 10 months ago #338771

c'est moi l'erreur j'ai trouv" ..

<span><?php echo $class->show($field, $this->element->art_category); ?></span>

The following user(s) said Thank You: Philip

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

Time to create page: 0.095 seconds
Powered by Kunena Forum