Principes d'architecture
Portlets
Les pages de contenus interactives et les parties applicatives utilisent le principe du "portlet". Les composants fonctionnels de la plate-forme mettent en commun des "unités élémentaires" d'affichage, constituées par des petits fichiers qui présentent la séquence HTML nécessaire à l'affichage d'une zone carrée de l'écran.
Un "portlet" est en général lié à une fonctionnalité particulière. Les portlets sont organisés en librairies, suivant leur composant d'origine. Ils sont en principe individuellement multilingues à partir de ressources textuelles disponibles dans leur environnement d'utilisation. L'ensemble des portlets sont stockés dans l'entrée "/lib" de la distribution.
Librairie de "portlets"
Portlets génériques
pagingResults.portlet.php |
portlet d'affichage d'un moteur de pagination. |
physicalFile.portlet.php |
Portlet de représentation d'un fichier physique. |
menu1.portlet.php |
Portlet de représentation du menu de premier niveau. Ce portlet est en général recomposé pour chaque instance de site. |
menu2.portlet.php |
Portlet de représentation du menu de deuxième niveau. Ce portlet est en général recomposé pour chaque instance de site. |
menu3.portlet.php |
Portlet de représentation du menu de troisème niveau. Ce portlet est en général recomposé pour chaque instance de site. |
Portlets spécifiques
Certains portlets sont spécifiques à des services trés contextuels ou spécifiques :
googlesearch.portlet.php |
insère un appel du moteur de recherche Google. |
paypal.nip.portlet.php |
Insère un appel NIP vers Paypal. |
sendToPaypal.portlet.php |
Insère le formulaire d'émission d'ordre de transaction via Paypal. | services.portlet.php | Portlet d'accès aux "services" (authentification, bug report, services annexes). | alphaFilter.portlet.php | Portlet permettant d'inclure un sélecteur alphabétique pour un affichage d'items. |
Et bien d'autres...
Spécification des portlets
Composition d'un portletEn tant que "pavé" de contenu, un portlet est en général composé d'un élément "principal" de type "bloc". Il existe deux utilisations majeures du portlet : - Le portlet-bloc unique (bloc sémantique)
- Le portlet-bloc itératif (enregistrement de données, ligne-résultat, etc.)
La forme du portlet dépend de ces utilisations. Pour le portlet "bloc-unique", on pourra y trouver une table HTML comme élément principal, éventuellement alimentée par un script de génération de données interne, bien qu'il soit préférrable en principe d'amener les données de l'extérieur. Pour le bloc itératif, on admet en général que le portlet ne fournisse que le code d'un "élément" itératif par nature, tel que le code d'une ligne HTML (<tr></tr>), ou de tout autre élément potentiellement itératif (liste, paragraphe).
Alimentation du portlet
Le portlet est pensé comme un "template" de "glue" dans lequel on injecte des données ad hoc au moment de sa réalisation. Il est donc alimentable en données à travers un objet opportuniste. Dans la plate-forme IntuitiveCMS, cet objet est constitué, avant l'appel au portlet, dans une variable $portlet. Le programmeur créera les attributs dynamiques nécessaires et les architectures des composantes de cet objet nécessaires pour que le portlet y retrouve les données.
Exemple de portlet
<tr>
  <td>     Â
<?= portlet->date ?> Â Â
</td> Â Â
<td> Â Â Â Â Â
<?= portlet->product ?> Â Â
</td> Â Â
<td> Â Â Â Â Â
<?= portlet->price ?> Â Â
</td>
</tr>
|
peut être alimenté par un objet constitué ainsi : $portlet->date = "2006-01-31";
$portlet->product = "Clio 3 portes rouge";
$portlet->price = "8560";
précédant un appel au portlet : include "lib/test/catalogue.portlet.php";
|