Creation d'un template pour catalogue

More
16 years 1 month ago #1035 by Psykotok
Bonjour à toute la communauté,

Je viens de débuter sur FlexiContent et avec tout ce que j'ai lus sur le forum ce composant m'a l'aire d'un outil bien puissant.

Je suis en train de créer un site pour un revendeur de vin. Et après pas mal d'essai pour créer mon propre template je m'en retourne vers vous pour plusieurs explication.

J'ai essayé de prendre exemple sur le template par défaut mais je n'arrive à rien.
La seule chose que j'ai réussi à faire c'est créer mes nouveaux champs qui sont :
- Couleur (ComboBox)
-Rouge
-Blanc
-Rosé
-Champagne

- Région (ComboBox, je ne vais pas vous mettre toutes mes possibilité il y a plus de 30 region)

et je passe les 12 autres champs.

J'ai voulu lier ces champs au template ITEM par défaut mais aucun moyen de les afficher, j'ai ensuite essayé de me faire mon template comme il est indiqué sur plusieurs topic mais rien à faire les champs ne s'affiche pas.

Voici le code pour afficher la région
Code:
<!-- BOF Region block --> <?php if (isset($this->item->positions['Region'])) : ?> <div class="lineinfo Region"> <?php foreach ($this->item->positions['Region'] as $field) : ?> <span class="element"> <?php if ($field->label) : ?> <span class="label field_<?php echo $field->name; ?>"><?php echo $field->label; ?></span> <?php endif; ?> <span class="value field_<?php echo $field->name; ?>"><?php echo $field->display; ?></span> </span> <?php endforeach; ?> </div> <?php endif; ?> <!-- EOF Region block -->

J'ai deja un contenu qui contient toutes les caractéristique d'un vin par exemple pour le "st Emilion" (Je sais j'ai de gout de luxe ^^) il provient de la région (sélectionné dans la combobox) Bordeaux.

Pour ce qui est du code css j'ai mis les pieds de dans mais je ne les ai pas essuyé.

Voici un bout de code (juste celui de la région)
Code:
div.lineinfo { display: block; margin: 0 0 0.5em; overflow: hidden; } div.Region { } div.Region .element { float: left; margin-right: 10px; } /* toute la suite est reprise du code par défaut*/ div.topblock { overflow: hidden; width: 100%; margin-bottom: 10px; } div.topblock .image { border: 1px solid silver; float: left; margin-right: 10px; line-height: 0px; } div.topblock .image a { outline: none; } div.topblock .image img { border: 1px solid white; } div.topblock .infoblock { overflow: hidden; } div.infoblock { border: 1px solid silver; margin: 0; padding: 10px; } #flexicontent div.infoblock ul { margin: 0; padding: 0; } #flexicontent div.infoblock ul li { padding: 0; background: none; min-height: 10px; display: -moz-inline-stack; display: inline-block; vertical-align: top; margin: 2px; zoom: 1; *display: inline; _height: 10px; } div.label { float: left; border-bottom: 1px solid silver; color: #777; font-size: 90%; } div.value { float: left; } div.onecols ul li { width: 100%; } div.onecols div.label { width: 25%; margin-right: 2%; } div.onecols div.value { width: 70%; } div.twocols ul li { width: 48%; } div.twocols div.label { width: 34%; margin-right: 2%; } div.twocols div.value { width: 60%; }

Pouvez vous m'aider?

PS : j'espère que j'ai bien expliqué mon problème

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

More
16 years 1 month ago #1037 by bastou
Bonjour,
il semblerait que ton code soit correct.
A tu déclarer tes champs dans le fichier XML?

Cordialement,
bastou.

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

More
16 years 1 month ago #1039 by Psykotok
Voici mon code XML
Code:
<?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="FLEXICONTENT_ARTICLE"> <message> <![CDATA[FLEXICONTENT_ARTICLE_TIP]]> </message> </layout> <params> <param name="top_cols" type="list" default="two" label="FLEXI_ITEM_TOP_COLS" description="FLEXI_ITEM_TOP_COLS_DESC"> <option value="">Use Global</option> <option value="one">FLEXI_1_COL</option> <option value="two">FLEXI_2_COLS</option> </param> <param name="bottom_cols" type="list" default="two" label="FLEXI_ITEM_BOTTOM_COLS" description="FLEXI_ITEM_BOTTOM_COLS_DESC"> <option value="">Use Global</option> <option value="one">FLEXI_1_COL</option> <option value="two">FLEXI_2_COLS</option> </param> </params> <fieldgroups> <group>title</group> <group>Couleur</group> <group>Region</group> <group>Viticulteur</group> <group>Categorie</group> <group>Cuvee</group> <group>PrixUnite</group> <group>Prix6Bts</group> <group>Prix12Bts</group> <group>Contenance_bouteille</group> <group>Type_agriculture</group> <group>Convenance</group> </fieldgroups> <cssitem> <file>css/item.css</file> </cssitem> <jsitem> </jsitem> </metadata>

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

More
16 years 1 month ago #1041 by vistamedia
En fait il y a une petite confusion, mais ça n'est pas simple puisque pas encore documenté.
Les positions ne servent que si tu souhaites afficher plusieurs champs.
Si tu souhaites les appeler individuellement, il te suffit de faire:
Code:
<?php echo $this->fields['mon_champ']->display; ?>
ou
Code:
<?php echo $this->fields['mon_champ']->label; ?>
pour afficher son étiquette

Utiliser les groupes/positions ne sert qu'à une seule chose: faire des templates génériques (c'est à dire réutilisables par les autres ou par toi même)

Manu.

FLEXIcontent lead developer.
www.vistamedia.fr web agency and custom development.
www.joomla.fr co-administrator.
Please no PM for support request, use the forum for that!!!

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

More
16 years 1 month ago #1044 by bastou
OK !
c'est vrai que c'était un peu obscur dans ma tête :) .
Mais pour appeler le champ, il faut bien qu'il soit déclaré dans le xml?

Cordialement,
bastou.

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

More
16 years 1 month ago #1045 by Psykotok
Rebonjour,

Donc concrètement ma structure du fichier php doit ressembler à quoi?

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

More
16 years 1 month ago #1046 by vistamedia
Concrètement, c'est un fichier HTML normal avec les balises php que je t'ai indiquées dans le post précédent.

FLEXIcontent lead developer.
www.vistamedia.fr web agency and custom development.
www.joomla.fr co-administrator.
Please no PM for support request, use the forum for that!!!

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

More
16 years 1 month ago #1047 by Psykotok
Bon ca y est, j'ai quelque chose. J'arrive à afficher le label de la couleur du vin qui est : Couleur.

Maintenant me reste plus qu'a afficher ca valeur sachant que le champ est une combo box...

Apres avoir ecris ce post j'ai trouvé la solution :

Pour afficher la valeur sélectionné sur une combobox il faut utiliser la ligne :
Code:
<?php echo $this->fields['Couleur']->value[0]; ?> // La valeur sélectionné est 0

Merci pour vos réponse.

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

More
16 years 1 month ago #1050 by vistamedia
Hello,
Ce n'est pas normal que tu aies a passer par là. La valeur est affichée avec:
Code:
<?php echo $this->fields['Couleur']->display; ?>

Cela ne fonctionne pas chez toi?

FLEXIcontent lead developer.
www.vistamedia.fr web agency and custom development.
www.joomla.fr co-administrator.
Please no PM for support request, use the forum for that!!!

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

More
16 years 1 month ago #1051 by Psykotok
Non malheureusement cela ne marche pas, une fois sur deux il m'affiche "array" et la 2eme fois il ne m'affiche rien.

J'ai continué mon développement et c'est vraiment un outil puissant. Certe il faut savoir codé un minimum mais une fois qu'on l'a en main ca va tout seul ^^

Le champ couleur est une sélection normal, j'ai un autre champs avec une sélection multiple et j'utilise la même méthode

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

Moderators: vistamediajoomlacornerggppdk
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
Save