Retour à la page principale

Joueb.com est une communauté de construction de jouebs
(joueb = journal web, traduction de weblog et blog).

En quelques clics et gratuitement, vous pouvez vous inscrire pour participer aux jouebs et si vous le souhaitez créer votre joueb.

Page principale - Créer un blog - Perdu ? Lisez la documentation et visitez le joueb d'aide.

Les permettent de créer facilement des configurables.

Avantages

Par rapport à l'approche d'origine des , les apportent des avantages dans les domaines suivants :

Création facile :

  • L'auteur du modèle de mise en page n'a pas besoin de programmer chaque . Il n'a pas besoin de connaître les objets et attributs correspondant aux boites de session, de recherche, de blablas, du calendrier etc.
  • La mise en page des blocs configurables utilise les pour éviter que des portions très similaires de code soient répétées pour chaque bloc. Comme le code n'est pas répète de multiples fois, il est très facile de le changer.

Configuration flexible :

  • C'est l'utilisateur du modèle de mise en page (et non son auteur) qui décide des blocs qui seront affiches ou non sur chaque type de page. Ce choix est effectue via un formulaire, aucune programmation ou édition du modèle n'est requise.

Extensibilite :

  • Lorsque de nouveaux types de blocs sont introduits, il n'est pas nécessaire de modifier le modèle de mise en page pour pouvoir les utiliser.

 

Mise en place

Pour ajouter le support des à un , il faut :

  1. Définir les emplacements de blocs utilisables
  2. Ajouter les indiquant le code a générer pour chaque bloc
  3. Choisir pour chaque emplacement de bloc l'emplacement du code génère

 

1. Définition des emplacements de blocs utilisables

Un emplacement de bloc configurable permet à l'utilisateur d'un modèle de mise en page d'afficher ou non un bloc de n'importe quel type à cet emplacement.

Les emplacements de blocs doivent être définis dans l'en-tête du modèle de mise en page, après la définition des couleurs configurables (lignes commencant par smartcolor) et avant les directives (lignes commençant par pragma).

Chaque emplacement est défini avec la syntaxe suivante :

smartblock [classe de l'emplacement].[identifiant de l'emplacement] "[description de l'emplacement]" [ par défaut] [ par défaut]

Exemple :

smartblock sb.right1 "Bloc de droite 1" calendar index

La signification de chaque champ est :

  • [classe de l'emplacement] : il est possible de définir plusieurs classes d'emplacements et générer pour chacune un code diffèrent. Par exemple, chaque classe d'emplacement pourrait avoir une classe CSS différente et ainsi être présentée différemment. Dans la plupart des cas, une seule classe est utilisée. A chaque classe d'emplacement correspond un jeu de permettant de spécifier le code généré.
  • [identifiant de l'emplacement] : cet identifiant doit être unique. Il permet de spécifier à quel endroit le code doit être génèré.
  • [description de l'emplacement] : décrit a quel endroit se trouve l'emplacement et comment le bloc sera présente.
  • [ par défaut] : précise le type du bloc qui correspond a cet emplacement. Il peut être changé par l'utilisateur du modèle.
  • [ par défaut] : précise le type des pages pour lesquelles le bloc sera affiché. Il peut être change par l'utilisateur du modèle.

 

2. Ajout des macros

Lorsque l'utilisateur d'un modèle de mise en page choisi d'afficher un bloc configurable dans un emplacement de bloc, du code HTML est généré a cet emplacement. Le code dépend du , mais il a toujours une structure similaire, articulée autour de .

Par exemple, voici le code généré par le  :

<object class=active_summaries>
<macro name="<NAME>_start"><arg name="type">active_summaries</arg></macro>
<macro name="<NAME>_title"><arg name="title"><TITLE></arg></macro>
<macro name="<NAME>_list_start"></macro>
<object class=active_summary count=<COUNT>>
      <macro name="<NAME>_link">
         <arg name="text"><attribute title></arg>
         <arg name="url"><attribute url></arg>
         <arg name="extra_text">(<attribute nb_comments>)<object sub_class=active_summary_new_comments> N</object></arg>
       </macro>
   </object>
   
   <macro name="<NAME>_list_end"></macro>
 <macro name="<NAME>_end"></macro>
</object>

Le champ <NAME> est remplace par le nom de la classe de l'emplacement, le champ <TITLE> par le titre choisi par l'utilisateur pour ce bloc, et le champ <COUNT> par le nombre d'éléments choisi par l'utilisateur pour ce bloc.

Les macros suivantes sont utilisées par les blocs configurables :

  • [classe de l'emplacement]_start : appelée au début de chaque bloc
  • [classe de l'emplacement]_title : contient le titre du bloc 
  • [classe de l'emplacement]_list_start : appelée au début de chaque liste comportant des éléments 
  • [classe de l'emplacement]_text : appelée à la fin de chaque bloc 
  • [classe de l'emplacement]_link : appelée pour chaque élément qui a la forme d'un lien 
  • [classe de l'emplacement]_text : appelée pour chaque élément qui a la forme d'une ligne de texte 
  • [classe de l'emplacement]_link_text : appelée pour chaque élément qui a la forme d'un lien + un ligne de texte. 
  • classe de l'emplacement]_link_link : appelée pour chaque élément qui a la forme d'un lien + un autre lien 
  • [classe de l'emplacement]_anything : appelée pour le contenu d'un bloc qui n'est pas une liste de liens. 
  • [classe de l'emplacement]_list_end : appelée a la fin de chaque liste comportant des éléments

Pour chaque classe d'emplacement, vous pouvez définir les macros ci-dessus. Par exemple, voici un exemple classique de macros, avec une classe d'emplacement dont le nom serait sb :

<define_macro name="sb_start">
<div class="<arg name="type">">
</define_macro>

<define_macro name="sb_end">
</div>
</define_macro>

<define_macro name="sb_list_start">
<ul>
</define_macro>

<define_macro name="sb_list_end">
</ul>
</define_macro>

<define_macro name="sb_title">
<h3>arg name="title"></h3>
</define_macro>
  

<define_macro name="sb_text">
<li><arg name="text"> <arg name="extra_text"></li>
</define_macro>   

<define_macro name="sb_link">
<li><a href="<arg name="url">"><arg name="text"></a> <arg name="extra_text"></li>
</define_macro>
  
<define_macro name="sb_link_link">
<li><a href="<arg name="url1">"><arg name="text1"></a> :
<a href="<arg name="url2">"><arg name="text2"></a> <arg name="extra_text"></li>
</define_macro>
  
<define_macro name="sb_link_text">

<li><a href="<arg name="url1">"><arg name="text1"></a> : <arg name="text2"> <arg name="extra_text"></li>
</define_macro> 
 
<define_macro name="sb_anything">
<div class="anything">
<arg name="anything">
</div>

</define_macro>

 

Et après instanciation des macros, le code généré pour le ressemblerait à :

<object class=active_summaries>
<div class="active_summaries">

 <h3><TITLE></h3>
 <ul>
 <object class=active_summary count=<COUNT>>
      <li>
         <a href="<attribute url>"><attribute title></a> (<attribute nb_comments>)<object sub_class=active_summary_new_comments> N</object>
       </li>
   </object>   
   </ul>
</div>
</object>

 

3. Choix des emplacements du code généré

[a rediger]

Sommaire : Tout Savoir Sur Les Jouebs



Logo dessiné par Johan Roirand.
Version  XML  -- Joueb.com est une plateforme d'hébergement gérée par l'association 1901 ViaBloga.