Creation d'un template pour catalogue

More
14 years 4 months 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
14 years 4 months 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
14 years 4 months 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
14 years 4 months 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
14 years 4 months 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
14 years 4 months 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.

Moderators: vistamediajoomlacornerggppdk
Time to create page: 0.315 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