Selon sa propre mise en page (avancé)

Doc en cours d'écriture

Il 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>
ici la mise en page se fait avec les balises html et un echo classique

<?php show($fiche["bf_champ"], â??Label du champs', 'classe CSS du paragraphe', â??balise HTML du paragraphe'); ?>
Les 3 champs sont facultatifs.
  • 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'); ?>
- show($html = montre la valeur contenue dans le champ mise en forme
  • 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