[Résolu] Affichage des champs optionnels

More
14 years 11 months ago #1822 by serval92
Bonjour à tous.

J’ai un souci depuis l’installation de la bêta 5.
J’ai créé des champs optionnels qui n’apparaissent plus en frontend.
Exemple : j’ai créé un champs « pièces jointes » que j’ai nommé « pj », sous la forme d’un textarea.
Dans mon « item.xml », j’ai créé le groupe « pj ».
Dans mon « item.php », j’ai inséré le code suivant (tel que mentionné dans le tuto des versions précédentes) :
Code:
<?php // Pièces jointes if ($this->fields) : $i = 0; foreach ($this->fields as $field) : if (in_array('pj'.$tmpl, $field->positions)) : $i++; endif; endforeach; if ($i > 0) : ?> <p> <?php foreach ($this->fields as $field) : // step 1 : start the loop on the object if (in_array('pj'.$tmpl, $field->positions)) : // step 2 : assigned to this group if (!empty($field->value)) : // step 3 : avoid empty fields if (!$field->parameters->get('hidden')) : // step 4 : it's not an hidden field ?> <?php if ($field->parameters->get('display_label')) : // step 5 : we have to display the label ?> <span class="pjlabel"><?php echo $field->label; ?></span> : <?php endif; // end step 5 ?> <span><?php echo $field->display; ?></span> <?php endif; // end step 4 endif; // end step 3 endif; // end step 2 endforeach; // end step 1 ?> </p> <?php endif; endif; ?>

Dans la version précédente, je cochais directement dans le champs « pj » la case correspondante. Je pouvais alors voir le résultat en frontend.

Dans la version actuelle, je me suis rendu dans la rubrique « templates » de Flexicontent, je clique sur la vue « item » de mon template, et je vois le bloc « pj ». J’utilise le glisser-déposer de mon champs « pièces jointes » vers le bloc « pj ».
Lorsque je retourne à mon article en frontend, rien n’apparaît si j’ai ajouté des informations dans le champs.

Je tiens à préciser que le côté optionnel est très important, sachant que les autres champs sous la forme « <?php echo $this->fields->display; ?> » sont visibles.

Quelqu’un pourrait-il m’aider ? Merci beaucoup.

PS : longue vie à Flexicontent.

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

More
14 years 11 months ago #1894 by Doywan
Tu utilise la méthode d'appel de la béta 3, fallait lire les release notes ! =)

Voici la nouvelle methode :
Code:
<?php if (isset($this->item->positions['ta_position'])) : ?>//on vérifie qu'il y a des champs attribués à la position // <div class="ta_classe"> <?php foreach ($this->item->positions['ta_position''] as $field) : ?>// pour chaque champs dans cette position // <span class="element"> <?php if ($field->label) : ?> // si on a choisit d'afficher le label // <span class="label field_<?php echo $field->name; ?>"><?php echo $field->label; ?></span> // on l'affiche // <?php endif; ?> <span class="value field_<?php echo $field->name; ?>"><?php echo $field->display; ?></span> // on affiche le champs // </span> <?php endforeach; ?> </div> <?php endif; ?>

Dev et rédacteur en chef Fonky les bons tuyaux
www.fonkyt.com - magasine online de l'événementiel culturel et loisirs d'Orléans et son agglO

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

More
14 years 11 months ago #2263 by serval92
Merci beaucoup, ça fonctionne (j'ai simplement corrigé une guillemet en trop :).

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

Moderators: vistamediajoomlacornerggppdk
Time to create page: 0.390 seconds
Save
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Essential
These cookies are needed to make the website work correctly. You can not disable them.
Display
Accept
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline