Selon sa propre mise en page (avancé)
Doc en cours d'écritureIl est possible de faire des templates spécifiques pour chaque formulaire et ainsi faire apparaître selon votre propre mise en page les infos contenues (ou une partie seulement) dans ces formulaires.
Pour ce faire il faut créer un fichier nommé fiche-id.tpl.html et le placer dans /themes/tools/bazar/templates (ID étant ici l'id du formulaire en question)
Avec la version Doryphore, les templates personnalisés seront chargés prioritairement depuis lerépertoire custom/templates/bazar/templates.
ATTENTION, ce faisant toutes les fiches possedant cet ID de formulaire seront avec le look personnalisé plutot que le look proposé par défaut... pour pouvoir réutiliser les templates, il faut enlever fiche-id.tpl.html (ou le renommer avec un .old)
Il vous reste ensuite à éditer ce fichier et à construire votre mise en page. (code html / css...)
La syntaxe est la suivante :
vous pouvez utiliser<h2><?php echo $fiche['bf_titre']; ?></h2>
<?php show($fiche["bf_champ"], â??Label du champs', 'classe CSS du paragraphe', â??balise HTML du paragraphe'); ?>
- show($fiche : valeur brute telle qu'on la voit avec /raw (par ex si c'est une liste, il va chercher la valeur et pas ce qu'on voit nécessairement à l'écran)
- un exemple : <?php show($fiche["bf_nomduchamp"], '', '', 'h5'); ?>
show($html["bf_champ"], â??Label du champs', 'classe CSS du paragraphe', â??balise HTML du paragraphe'); ?>
- exemple = <?php show($fiche["bf_telephone1"] . ' / ' . $fiche["bf_telephone2"], 'Téléphone(s) :'); ?>
- principalement utilisé pour afficher le contenu de liste ou checkbox (<?php show($html["checkboxListeTheme"], '', ''); ?>)
Il est aussi possible d'affiche le contenu de formulaires liés
Il est possible d'appeler des formulaires liés en utilisant cette syntaxe<?php echo $GLOBALS['wiki']->Format( '{{bazarliste idtypeannonce=«ID du formulaire lié" query=« listeficheID du formulaire de départ=' . $fiche['id_fiche'] . â??« template="nom du template"}}' ); ?>
par exemple :
<?php echo $GLOBALS['wiki']->Format( '{{bazarliste idtypeannonce="6" query="listefiche7=' . $fiche['id_fiche'] . '"}}' ); ?>
- Attention parfois c'est listefiche parfois checkboxfiche
- Attention, il faut bien que les deux formulaires bazar soient bien liés.
- Si les deux formulaires ne sont pas liés clairement (ou uniquement dans un sens), il faut alors aller voir dans /raw et voir comment le champ est renommé par yeswiki. Ce sera listeficheid ou checkboxficheid et utiliser la syntaxe : <?php show($html["checkboxfiche2"]); ?>
un 1er exemple complet
<?php $imgwidth = 320; $imgheight = 240; ?> <?php if ($_GET['wiki'] == $fiche['id_fiche']): ?> <h3> <a href="wakka.php?wiki=AnnuaireS">Répertoire des structures </a> </h3> <?php endif; ?> <?php if (isset($fiche['imagebf_image']) && $fiche['imagebf_image'] != ''): ?> <img class="pull-left img-rounded img-profil" style="margin-right:20px;margin-bottom:20px;" alt="<?php echo htmlentities($fiche['bf_titre']); ?>" src="<?php echo redimensionner_image( 'files/' . $fiche['imagebf_image'], 'cache/image_' . $imgwidth . 'x' . $imgheight . '_' . $fiche['imagebf_image'], $imgwidth, $imgheight, 'crop' ); ?>"> <?php echo $html['imagebf_image']; ?> <?php endif; ?> <h2><?php echo $fiche['bf_titre']; ?></h2> <?php show($fiche["bf_acronyme"], '', '', 'h5'); ?> <?php if (!empty($fiche["bf_site_internet"] )) show('<a href="' . $fiche["bf_site_internet"] . '">' . $fiche["bf_site_internet"] . '</a>', ''); ?> <?php show($fiche["bf_telephone1"] . ' / ' . $fiche["bf_telephone2"], 'Téléphone(s) :'); ?> <?php show($fiche["bf_fax"], '', 'fax'); ?> <?php show($html["bf_mail"] . ' / ' . $html['bf_mail_sec'], 'Mail(s) :'); ?> <?php show($html["checkboxListeInfos"], 'Particularité : ', ''); ?> <div class="clearfix"></div> <div class="well"> <?php echo $GLOBALS['wiki']->Format($fiche["bf_description_longue"]); ?> </div> <div class="row"> <div class="col-md-6 span6"> <h4>Centres d'intérêt</h4> <?php show($html["checkboxListeTheme"], '', ''); ?> <h4>Activités proposées</h4> <?php show($html["checkboxListeActivite"], '', ''); ?> <h4>Public cible</h4> <?php show($html["checkboxListePublic"], '', ''); ?> </div> <div class="col-md-6 span6"> <h4>Matériel disponible en prêt</h4> <?php show($html["checkboxListeMatos"], 'Matériels de base :', ''); ?> <?php show($html["checkboxListeMatospro"], 'Matériels professionnel :', ''); ?> <?php show($html["checkboxListeInfrastructure"], 'Infrastructure :', ''); ?> </div> </div> <hr> <h3>Coordonnées</h3> <?php echo $fiche["bf_adresse"]; ?><br> <?php echo $fiche["bf_code_postal"]; ?> - <?php echo $fiche["bf_ville"]; ?><br> <?php show($fiche["bf_capcacite"], 'Capacité :'); ?> <?php show($fiche["bf_horaire"], 'Horaire :'); ?> <h3>Liste des personnes liées :</h3> <?php echo $GLOBALS['wiki']->Format( '{{bazarliste idtypeannonce="6" query="listefiche7=' . $fiche['id_fiche'] . '"}}' ); ?> <?php if ($fiche['checkboxListeIndic'] == '1') : ?> <div class="pull-right"> <h4>A voir aussi sur</h4> <A HREF="http://www.inforjeunestournai.be/" target="blank"> <img class="img-responsive" src="files/logo-wape.jpg"></A> </div> <?php endif; ?> <br>Pour éditer cette fiche, double cliquer sur cette phrase.
Autre exemple complet – Un template qui n'affiche les informations que pour les membres du groupe @admins
<?php if($GLOBALS['wiki']->UserIsAdmin()) { // on recupere les valeurs de la fiche $fichebazar['values'] = baz_valeurs_fiche($fiche['id_fiche']); // on recupere les infos liees à ce type de fiche $f = $fichebazar['values']['id_typeannonce']; $fichebazar['form'] = baz_valeurs_formulaire($f); // on parcourt le tableau des valeurs pour les afficher for ($i = 0; $i < count($fichebazar['form']['template']); ++$i) { if (function_exists($fichebazar['form']['template'][$i][0])) { echo $fichebazar['form']['template'][$i][0]( $formtemplate, $fichebazar['form']['template'][$i], 'html', $fichebazar['values'] ); } } } else { echo 'Votre inscription est bien prise en compte, elle n\'est visible que par les admins'; } ?>
documentation