Niouzes

< Avril 2021 >
Lu Ma Me Je Ve Sa Di
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

Citation

Attention

Certains des exemples que nous fournissons ci-dessous ne sont pas complets. D'emblée, nous nous en excusons, bien sûr. Mais pourquoi diable sont-ils incomplets ?

Ils sont incomplets parce que nous y travaillons en ce moment et que plutôt que de vous faire patienter jusqu'à ce qu'ils soient tous terminés, nous avons préféré vous les livrer dans l'état où ils se trouvent pour que vous puissiez vous faire une idée de ce qu'ils illustrent.

Au fur et à mesure de notre avancement, nous ferons les mises à jour idoines. Nous espérons résorber notre retard au plus vite.

2014-08-06 à 17:05:56 par Patrick Boens

Table Of Contents

  1. Template with patterns, Swipe Simply, cahing pages for bots, … (06/08/2014)
  2. Gestion de redirections, Accept-Language, extrapolation de la langue et du pays, LSContainer et le génome, LSInput et les gènes, utilisation de LSCacheDir, création de propriétés dynamiques de LSPage dans le géorama, … (11/10/2013)
  3. Statistiques d'accès, Site Manager, prefetch, prerender, File Explorer, interactions Ajax … (17/06/2013)
  4. LSTag, LSContentsDatetime, LSContentsCountdown, LSContentsStopwatch, threshold et score, configuration vhosts Apache, génération automatique, LSVStrings.js, LSVDates.js, tracing sur XML des îles, Free User Input Zones, multiple credentials, cookie de dernière visite, LSInput et datalist (10/04/2013)
  5. Tour d'horizon des filtres (23/09/2013)
  6. Messages de service (07/01/2014)
  7. Accès aux propriétés des îles, halt.sem, cookies positionnés dans les îles, filtre 'browsertype', contenus alternatifs, expressions PHP sur les href, gestion de l'expiration, filtre de visite, ... (22/09/2013)
  8. Messages de service, ... (30/10/2012)
  9. Config Apache, LSInput, LSForm, ... (13/03/2013)
  10. LSContentsBooking, Browser Danger Rating, User Agent vides (non spécifiés), filtres sur les paramètres, LSBrowser, ... (11/06/2013)
  11. LSTag('img'), auto pages, nouveaux filtres, audio/video, ... (02/11/2013)
  12. LSGeo, LSFootnotes, LSSourceFile, LSPublication, onfail avec codes de retour HTTP (301, 302, ...), ... (27/06/2013)
  13. LSCache, microformat (lupdate), multicontent, LSContentsTagCloud, LSContentsImageGallery, HTML5 (input zones), ... (15/09/2013)
  14. Check Spamhaus, vos settings dans le géorama, LSContentsMicronews, Switch dans le géorama, LSCursor: des records dans les records, ... (04/12/2012)
  15. Campagnes de pub, TODO list (04/12/2012)
  16. Debugging de page, LSTimeline, le fichier de géorama, LSTag, Glossaire IT, Named colors, Codes langue, ... (23/03/2013)
  17. LSCursor: une revue complète de la classe (12/03/2013)
  18. LSForm, LSInput, … (28/01/2013)
  19. LSContentsBusinessCoordinates, redirection de pages, LSTwitterPost, LSContentsTwitterFollowers, LSContentsShare, calendrier, LSContentsContactForm, LSContentsReview et LSReview, droits sur une page, URLs canoniques, LSPaymentOptions et LSContentsPaymentOptions, Offres d'emploi, LSContentsImageTransition, ... (20/09/2013)
  20. Galerie avec vignettes, RSS, partage d'offres d'emploi, partage de citations, diaporama dewslider, horloge flash, footnotes, ... (01/10/2012)
  21. îles préfixées de texte standard, le paramètre title, le paramètre heading, le paramètre text, le paramètre xsl, LSRegionSubtag, Language Switchers, LSFormEnroll, LSContentsLegal, sitemap, substitution de propriétés, LSSourceFile et LSContentsSourceFile, LSContentsComments, LSContentsCharter, ... (05/11/2013)
  22. LSContentsLoginLogoff, Utilisation de && dans les conditions des îles, LSWidgetOpeningHours et LSContentsBusinessOpeningHours, inclusion de snippets, image bouton de login/logoff, LSContentsBusinessCoordinates, commentaires dans les îles, doctypes, LSImageTrans, calcul de dates, LSWidgetEmailForm, LSContentsMedia, LSContentsIFrame, onload et onunload d'une page, Page settings, ... (22/09/2013)
  23. Dates et heures de publication et/ou d'expiration, PHP expressions, Blocs XHTML avant et après une île, suite de pages, îles valables par domaine, substitutions, envoyer des fichiers au serveur, templates dynamiques, contenus distants, contenus générés en Java, LSCalculator, Gérer des signets (bookmarks), Pages conditionnelles, îles conditionnelles, désactivations, LSContentsMedia, taille du géorama, partager une page entre sites, LSXHtmlImg, île dans la section …, textes latins, Dublin Core, Utilisation de caches, corrections automatiques, In-Place Editing, LSContentsCitation (03/11/2013)

LSContentsLoginLogoff (2013-01-26)

Depuis l'opus "0.9.0051"

L'île LSContentsLoginLogoff est l'une des plus anciennes îles de Vae Soli!. Un peu d'archéologie dans les archives de Vae Soli! nous révèle la première trace officielle au travers de la classe FWLogin (08/08/2006), à un moment où les sources étaient encore la propriété de la société FastWrite. Pour sûr, cette classe a largement évolué depuis.

Voici, adapté à la version actuelle de Vae Soli! (la version 7.1.0000 du 06/11/2018 10:39), un exemple très simple d'utilisation de cette île :

<Island id="login-logoff"
    active="yes"
    class="LSContentsLoginLogoff">
    <param name="logon"><![CDATA[Connexion]]></param>
    <param name="logoff"><![CDATA[Déconnexion]]></param>
</Island>

La définition illustrée ci-dessus permet l'affichage d'une petite boîte de dialogue avec "Utilisateur", "Mot de passe" et bouton "Submit". En arrière- plan, Vae Soli! se charge d'intercepter la demande de login, permet de vérifier la validité du couple "account" + "password" et charge le tout dans la session courante.

Refus de double inclusion 2013-02-05

Depuis l'opus "5.0.0012"

Désormais, il n'est plus possible (sans le vouloir fortement) de réaliser des pages où l'île de login – logoff est incluse deux fois (voire davantage). En effet, à partir de l'opus 5.0.0012 Vae Soli! a prévu que lorsqu'une île de login – logoff est incluse dans une page, celle-ci s'en souvient. Une deuxième inclusion ne sera alors pas possible. Ceci se contrôle via la méthode IsLoginIncluded() de l'objet LSPage.

Pour être complet, nous recommandons de paramétrer votre site web avec la valeur suivante dans vos settings (souvent le defaults.xml) : <LSCheckDoubleLogin><![CDATA[true]]></LSCheckDoubleLogin>.

Logon : avec rappel de mot de passe 2009-12-06

Il est possible de mentionner le besoin de rappeler le mot de passe … pour les utilisateurs distraits.

Illustration du 'Remember Password'

Ce setting est contrôlé dans le géorama comme l'illustre le code ci-dessous:

<Island id="login-logoff" 
    active="yes"
    class="LSContentsLoginLogoff">
    <param name="remind-password">true</param>
    <param name="remind-password-action">/remember.php</param>
    <param name="remind-password-caption">Remember password</param>
</Island>

Il vous appartient néanmoins de créer la page de rappel du mot de passe. Le cas échéant, utilisez l'île de contenu LSContentsRememberPassword.

Contrôle des libellés dans l'île de Login/Logoff 2009-12-07

Revenons un instant à la capture d'écran précédente :

Illustration du 'Remember Password'

Nous y découvrons 4 libellés. Tous 4 sont paramétrables. Comment faire ? Tout simplement mentionner les légendes à utiliser dans la configuration du géorama ! Voyez d'ailleurs comment nous les avons transformées :

Illustration de la paramétrisation des libellés

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="username-caption">Compte</param>
    <param name="username-tip">Entrez votre compte utilisateur</param>
    <param name="password-caption">Graal</param>
    <param name="password-tip">Entrez votre code secret</param>
    <param name="logon">Connexion</param>
    <param name="logoff">Déconnexion</param>
    <param name="remind-password">true</param>
    <param name="remind-password-action">/remember.php</param>
    <param name="remind-password-caption">Rappel du mot de passe</param>
    <param name="remind-password-tip">Un petit click ... et nous vous rappelons votre mot de passe</param>
</Island>

Exiger que les zones soient remplies 2011-11-14

Depuis l'opus "4.5.0004"

Il vous est possible de demander que les zones du formulaires soient remplies avant de soumettre le formulaire. C'est bien utile pour éviter des allers-retours inutiles avec le serveur. Après tout, on peut exiger de l'utilisateur que les zones soient remplies avant de les envoyer au serveur qui de toute façon en a besoin.

Cela se fera grâce au paramètre check-input comme illustré ci-dessous :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="check-input">true</param>
</Island>

Validation Javascript du formulaire de la classe de LSContentsLoginLogoff 2013-02-11

Depuis l'opus "5.0.0012"

Il est désormais possible d'activer une fonction de validation sur le formulaire de login. Cela se fait par paramétrisation de l'île de classe LSContentsLoginLogoff comme le démontre la config suivante :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="remind-password">true</param>
    <param name="remind-password-action"><![CDATA[/remember.php]]></param>
    <param name="remind-password-caption"><![CDATA[Remember password]]></param>
    <param name="remind-password-tip"><![CDATA[We shall send you an email with your password]]></param>
    <param name="username-caption"><![CDATA[e-mail]]></param>
    <param name="username-tip"><![CDATA[Enter your email]]></param>
    <param name="password-caption"><![CDATA[Password]]></param>
    <param name="password-tip"><![CDATA[Enter your password]]></param>
    <param name="logon"><![CDATA[login]]></param>
    <param name="logoff"><![CDATA[logoff]]></param>
    <param name="with-br"><![CDATA[true]]></param>
    <param name="with-remember-me"><![CDATA[true]]></param>
    <param name="check-input"><![CDATA[true]]></param>
    <param name="validation-udf"><![CDATA[IsAgeOK(this)]]></param>
    <param name="remember-me-caption"><![CDATA[remember me?]]></param>
    <param name="user-field" id="txtDay"   tooltip="{d-birth}" cookie="yes" value="" 
           caption="You must be 18 years old or more to enter this site" css-class="mentors" 
           onkeypress="return __chkNumber(event,this,'');" maxlength="2" 
           placeholder="DD"><![CDATA[&#160;]]></param>
    <param name="user-field" id="txtMonth" tooltip="{m-birth}" cookie="yes" value="" 
           caption="" css-class="mentors" 
           onkeypress="return __chkNumber(event,this,'');" maxlength="2" 
           placeholder="MM"><![CDATA[&#160;]]></param>
    <param name="user-field" id="txtYear"  tooltip="{y-birth}" cookie="yes" value="" 
           caption="" css-class="mentors" 
           onkeypress="return __chkNumber(event,this,'');" maxlength="4" 
           placeholder="YYYY"><![CDATA[<br />]]></param>
</Island>

Champs libres dans la classe de LSContentsLoginLogoff 2013-02-11

Depuis l'opus "5.0.0012"

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="remind-password">true</param>
    <param name="remind-password-action"><![CDATA[/remember.php]]></param>
    <param name="remind-password-caption"><![CDATA[Remember password]]></param>
    <param name="remind-password-tip"><![CDATA[We shall send you an email with your password]]></param>
    <param name="username-caption"><![CDATA[e-mail]]></param>
    <param name="username-tip"><![CDATA[Enter your email]]></param>
    <param name="password-caption"><![CDATA[Password]]></param>
    <param name="password-tip"><![CDATA[Enter your password]]></param>
    <param name="logon"><![CDATA[login]]></param>
    <param name="logoff"><![CDATA[logoff]]></param>
    <param name="with-br"><![CDATA[true]]></param>
    <param name="with-remember-me"><![CDATA[true]]></param>
    <param name="check-input"><![CDATA[true]]></param>
    <param name="validation-udf"><![CDATA[IsAgeOK(this)]]></param>
    <param name="remember-me-caption"><![CDATA[remember me?]]></param>
    <param name="user-field" id="txtDay"   tooltip="{d-birth}" cookie="yes" value="" 
           caption="You must be 18 years old or more to enter this site" css-class="mentors" 
           onkeypress="return __chkNumber(event,this,'');" maxlength="2" 
           placeholder="DD"><![CDATA[&#160;]]></param>
    <param name="user-field" id="txtMonth" tooltip="{m-birth}" cookie="yes" value="" 
           caption="" css-class="mentors" 
           onkeypress="return __chkNumber(event,this,'');" maxlength="2" 
           placeholder="MM"><![CDATA[&#160;]]></param>
    <param name="user-field" id="txtYear"  tooltip="{y-birth}" cookie="yes" value="" 
           caption="" css-class="mentors" 
           onkeypress="return __chkNumber(event,this,'');" maxlength="4" 
        placeholder="YYYY"><![CDATA[<br />]]></param>
</Island>

Exiger qu'un retour chariot soit inséré après les zones de saisie 2011-11-14

Depuis l'opus "4.5.0004"

Il vous est possible de demander qu'un retour chariot soit inséré après chaque zone de saisie. Cela se fera grâce au paramètre with-br comme illustré ci-dessous :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="remind-password">true</param>
    <param name="remind-password-action"><![CDATA[/remember.php]]></param>
    <param name="remind-password-caption"><![CDATA[Remember password]]></param>
    <param name="remind-password-tip"><![CDATA[We shall send you an email with your password]]></param>
    <param name="username-caption"><![CDATA[e-mail]]></param>
    <param name="username-tip"><![CDATA[Enter your email]]></param>
    <param name="password-caption"><![CDATA[Password]]></param>
    <param name="password-tip"><![CDATA[Enter your password]]></param>
    <param name="logon"><![CDATA[login]]></param>
    <param name="logoff"><![CDATA[logoff]]></param>
    <param name="with-br">true</param>
    <param name="with-remember-me">true</param>
    <param name="remember-me-caption"><![CDATA[remember me?]]></param>
    <param name="check-input">true</param>
</Island>

Demander à se souvenir du nom de l'utilisateur (Remember me?) 2011-11-14

Depuis l'opus "4.5.0004"

Vous pouvez également demander que l'île de LSContentsLoginLogoff se souvienne de l'entrée précédente. Cette fois il vous faudra jouer avec le paramètre with-remember-me. Au demaurant vous pourrez en outre en contôler le libellé :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="remind-password">true</param>
    <param name="remind-password-action"><![CDATA[/remember.php]]></param>
    <param name="remind-password-caption"><![CDATA[Remember password]]></param>
    <param name="remind-password-tip"><![CDATA[We shall send you an email with your password]]></param>
    <param name="username-caption"><![CDATA[e-mail]]></param>
    <param name="username-tip"><![CDATA[Enter your email]]></param>
    <param name="password-caption"><![CDATA[Password]]></param>
    <param name="password-tip"><![CDATA[Enter your password]]></param>
    <param name="logon"><![CDATA[login]]></param>
    <param name="logoff"><![CDATA[logoff]]></param>
    <param name="with-br">true</param>
    <param name="with-remember-me">true</param>
    <param name="remember-me-caption"><![CDATA[remember me?]]></param>
    <param name="check-input">true</param>
</Island>

Passer le contrôle au gestionnaire du rappel de mot de passe 2009-12-07

Dans l'exemple précédent, il est mentionné que le contrôle du mot de passe se fait par la page /remember.php comme le paramétrage qui suit le démontre :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="username-caption">Compte</param>
    <param name="username-tip">Entrez votre compte utilisateur</param>
    <param name="password-caption">Graal</param>
    <param name="password-tip">Entrez votre code secret</param>
    <param name="logon">Connexion</param>
    <param name="logoff">Déconnexion</param>
    <param name="remind-password">true</param>
    <param name="remind-password-action">/remember.php</param>
    <param name="remind-password-caption">Rappel du mot de passe</param>
    <param name="remind-password-tip">Un petit click ... et nous vous rappelons votre mot de passe</param>
</Island>

Il y a donc lieu de créer une page /remember.php qui elle se chargera de produire le formulaire de rappel du mot de passe.

C'est exactement ce que nous avons fait en créant dans le corps de la page une île de type LSContentsRememberPassword. Voilà la définition de cette île :

<Island id="body-core" active="yes" class="LSContentsRememberPassword" lupdate="auto">
    <param name="username-caption"><![CDATA[Nom d'utilisateur]]></param>
    <param name="username-tip"><![CDATA[Entrez votre compte utilisateur]]></param>
    <param name="submit-caption"><![CDATA[Rappel]]></param>
    <param name="action"><![CDATA[/sendReminder.php]]></param>
</Island>

… ce qui produit l'affichage suivant :

Illustration du formulaire de rappel de mot de passe

… affichage entièrement personnalisable par CSS et donc sous votre contrôle.

Exiger qu'un retour chariot soit inséré après la zone de saisie (classe LSContentsRememberPassword) 2011-11-14

Depuis l'opus "4.5.0004"

Il vous est possible de demander qu'un retour chariot soit inséré après la zone de saisie. C'est un comportemet identique à ce qui vous est proposé dans l'île de prise du mot de passe (LsContentsLoginLogoff). Sans surprise, c'est avec le même paramètre que cela se gère : with-br comme illustré ci-dessous :

<Island id="body-core" active="yes" class="LSContentsRememberPassword" lupdate="auto">
    <param name="username-caption"><![CDATA[e-mail]]></param>
    <param name="username-tip"><![CDATA[Enter your email]]></param>
    <param name="submit-caption"><![CDATA[Request password]]></param>
    <param name="with-br">true</param>
    <param name="check-input">true</param>
    <param name="action"><![CDATA[/send-reminder.php]]></param>
</Island>

Exiger que la zone de saisie soit remplie (classe LSContentsRememberPassword) 2011-11-14

Depuis l'opus "4.5.0004"

Il vous est possible d'exiger que la zone de saisie du formulaire soit contrôlée avant de soumettre le formulaire. C'est le même comportement que celui de la classe LSContentsLoginLogoff) et cela se gère avec le même paramètre : check-input comme illustré ci-dessous :

<Island id="body-core" active="yes" class="LSContentsRememberPassword" lupdate="auto">
    <param name="username-caption"><![CDATA[e-mail]]></param>
    <param name="username-tip"><![CDATA[Enter your email]]></param>
    <param name="submit-caption"><![CDATA[Request password]]></param>
    <param name="with-br">true</param>
    <param name="check-input">true</param>
    <param name="action"><![CDATA[/send-reminder.php]]></param>
</Island>

Détourner la classe LSContentsLoginLogoff 2009-12-16

Depuis l'opus "2.3.0007"

Il est désormais possible de détourner complètement la classe LSContentsLoginLogoff de telle sorte qu'elle se comporte comme une simple île de classe LSContents. Vous pouvez faire cela en spécifiant le paramètre storage de l'île : le contenu présent dans le fichier de storage est alors affiché dans la page à l'endroit approprié.

Dans l'exemple qui suit tous les autres paramètres, excepté storage, seront ignorés :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="storage"  ><![CDATA[/islands/login.php]]></param>
    <param name="?login-submit-type"><![CDATA[image]]></param>
    <param name="?login-submit-image-src"><![CDATA[/images/login.jpg]]></param>
    <param name="?logoff-submit-type"><![CDATA[image]]></param>
    <param name="?logoff-submit-image-src"><![CDATA[/images/lgoff.jpg]]></param>
    <param name="username-caption"><![CDATA[Compte]]></param>
    <param name="username-tip"><![CDATA[Entrez votre compte utilisateur]]></param>
    <param name="password-caption"><![CDATA[Graal]]></param>
    <param name="password-tip"><![CDATA[Entrez votre code secret]]></param>
    <param name="logon"><![CDATA[Connexion]]></param>
    <param name="logoff"><![CDATA[Déconnexion]]></param>
    <param name="remind-password"><![CDATA[true]]></param>
    <param name="remind-password-action"><![CDATA[/remember-password.php]]></param>
    <param name="remind-password-caption"><![CDATA[Rappel du mot de passe]]></param>
    <param name="remind-password-tip"><![CDATA[Un petit click ... et nous vous rappelons votre mot de passe]]></param>
    <param name="welcome"><![CDATA[{welcome} {user-firstname} {user-lastname}]]></param>
</Island>

Mentionner un message de bienvenue lors du logoff :LSContentsLoginLogoff 2009-12-28

Depuis l'opus "2.4.0500"

Le message welcome permet d'agrémenter légèrement la boîte de dialogue lorsqu'elle se met en mode logoff, c'est-à- dire lorsque Vae Soli! a reconnu que l'utilisateur est déjà loggué et qu'on lui repropose la boîte de dialogue. Dans ce cas, c'est le bouton logoff qui sera proposé et lui seul du moins si vous ne décorez pas la boîte. C'est justement ce à quoi sert le message welcome.

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="username-caption"><![CDATA[Utilisateur]]></param>
    <param name="username-tip"><![CDATA[Entrez votre compte utilisateur]]></param>
    <param name="password-caption"><![CDATA[Mot de passe]]></param>
    <param name="password-tip"><![CDATA[Entrez votre code secret]]></param>
    <param name="logon"><![CDATA[Connexion]]></param>
    <param name="logoff"><![CDATA[Déconnexion]]></param>
    <param name="remind-password"><![CDATA[true]]></param>
    <param name="remind-password-action"><![CDATA[/remember-password.php]]></param>
    <param name="remind-password-caption"><![CDATA[Rappel du mot de passe]]></param>
    <param name="remind-password-tip"><![CDATA[Un petit click ... et nous vous rappelons votre mot de passe]]></param>
    <param name="welcome"><![CDATA[<p>{welcome} {user-firstname} {user-lastname}.</p>
        <p>Vous êtes loggué depuis {user-login}.</p>]]></param>
</Island>

Les valeurs entourées d'accolades ({welcome}, …) font appel à des substitutions définies comme suit :

<Data key="{user-firstname}" active="yes" editable="yes">
    <Value><![CDATA[.php=return $GLOBALS['oApp']->oPage->oUser->szFirstname;]]></Value>
</Data>

<Data key="{user-lastname}" active="yes" editable="yes">
    <Value><![CDATA[.php=return $GLOBALS['oApp']->oPage->oUser->szLastname;]]></Value>
</Data>

<Data key="{user-login}" active="yes" editable="yes">
    <Value><![CDATA[.php=return date( 'd/m/Y - H:i:s',$GLOBALS['oApp']->oPage->oUser->iLogin );]]></Value>
</Data>

<Data key="{welcome}" active="yes" editable="yes">
    <Value lang="fr"><![CDATA[Bienvenue]]></Value>
    <Value lang="en"><![CDATA[Welcome]]></Value>
    <Value lang="nl"><![CDATA[Welkom]]></Value>
</Data>

Une fois les valeurs de subtitutions correctement définies (voir comment ajouter des substitutions), vous pourrez avoir une boîte de dialogue similaire à l'illustration ci-dessous :

Illustration message de bienvenue

Proposer de modifier les données de son compte avec LSContentsLoginLogoff 2009-12-28

Depuis l'opus "2.4.0500"

Avec un peu de paramétrisation supplémentaire, il est également possible de proposer une modification des données du compte de l'utilisateur comme le démontre la capture d'écran qui suit :

Illustration du 'My Account'

Un click sur la phrase de bienvenue (et le tooltip vous le prouve) va donner lieu à l'activation d'une nouvelle page, laquelle permettra à l'utilisateur loggué de modifier ses données. Avec la version 2.4.0500 de Vae Soli! le code de cette page vous incombe. À l'avenir, nous proposerons un code standard (probablement une île) permettant le sauvetage automatique des données. Ici, le contrôle est passé au script /myaccount.php.

Voyons rapidement comment nous avons paramétré l'île de LSContentsLoginLogoff pour rendre ceci possible :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="username-caption"><![CDATA[Utilisateur]]></param>
    <param name="username-tip"><![CDATA[Entrez votre compte utilisateur]]></param>
    <param name="password-caption"><![CDATA[Mot de passe]]></param>
    <param name="password-tip"><![CDATA[Entrez votre code secret]]></param>
    <param name="logon"><![CDATA[Connexion]]></param>
    <param name="logoff"><![CDATA[Déconnexion]]></param>
    <param name="remind-password"><![CDATA[true]]></param>
    <param name="remind-password-action"><![CDATA[/remember-password.php]]></param>
    <param name="remind-password-caption"><![CDATA[Rappel du mot de passe]]></param>
    <param name="remind-password-tip"><![CDATA[Un petit click ... et nous vous rappelons votre mot de passe]]></param>
    <param name="myaccount"><![CDATA[true]]></param>
    <param name="myaccount-action"><![CDATA[/myaccount.php]]></param>
    <param name="myaccount-caption"><![CDATA[Mon compte]]></param>
    <param name="myaccount-tip"><![CDATA[Modifiez vos données]]></param>
    <param name="welcome"><![CDATA[{welcome} {user-firstname} {user-lastname}]]></param>
</Island>

Vous pourriez vous poser la question de savoir pourquoi le message affiché n'est pas Mon compte alors que c'est clairement indiqué dans l'île. Réponse : ce qui prime, c'est le message de bienvenue (indiqué en bleu dans le code ci-dessus) !

Afficher le LSContentsLoginLogoff comme une calculette 2013-01-26

Depuis l'opus "5.0.0012"

Pour l'écriture d'un prototype de login pour BNP Paribas, nous avons été amené à proposer une île de login / logoff comme une petite calculette. Voici la paramétrisation qui nous a permis d'y arriver :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="CSSClass"><![CDATA[BNPParibas]]></param>
    <param name="username-caption"><![CDATA[<strong>1.</strong> Saisissez votre numéro 
        client à l'aide du clavier]]></param>
    <param name="password-caption"><![CDATA[<strong>2.</strong> Cliquez pour composer les 
        chiffres de votre code secret]]></param>
    <param name="remind-password"><![CDATA[false]]></param>
    <param name="remind-password-action">/remember.php</param>
    <param name="remind-password-caption">Remember password</param>
    <param name="remind-password-tip">Un email vous sera envoyé</param>
    <param name="logon"><![CDATA[Accès aux comptes]]></param>
    <param name="calculator-layout"><![CDATA[true]]></param>
</Island>

Et voici le résultat :

Illustration du mode Calculette

Utilisation de && dans les conditions des îles 2009-10-08

Depuis l'opus "2.3.0000"

Il est désormais possible d'enchaîner les conditions PHP avec && quand vous mentionnez des conditions dans le géorama.

Pour cela, veuillez mentionner .and., et le tour est joué.

<Island … condition=".php= return ( cond_1() .and. cond_2() );">
   …
</Island>

Afficher les heures d'ouverture en plages : LSWidgetOpeningHours 2009-08-16

Depuis l'opus "2.1.0002"

Il est possible de choisir un type d'affichage supplémentaire dans la réprésentation des heures d'ouverture : l'affichage qui utilise des plages d'ouvertures … le type beach illustré ci-dessous :

Illustration du mode 'plages' dans l'affichage des heures d'ouverture

C'est ce mode d'affichage qui est utilisé dans notre nouvelle page de contact.

2009-09-27 : Attention, la classe LSContentsBusinessOpeningHours a été rénommée LSWidgetOpeningHours. Néanmoins, l'ancien nom de la classe est toujours fourni à titre de compatibilité. Cette classe, maintenant obsolète, disparaîtra de Vae Soli! dès la version 3.x.xxxx.

Détourner la classe LSContentsBusinessOpeningHours 2009-12-16

Depuis l'opus "2.3.0007"

Il est désormais possible de détourner complètement la classe LSContentsBusinessOpeningHours de telle sorte qu'elle se comporte comme une simple île de classe LSContents. Vous pouvez faire cela en spécifiant le paramètre storage de l'île : le contenu présent dans le fichier de storage est alors affiché dans la page à l'endroit approprié.

Dans l'exemple qui suit tous les autres paramètres, excepté storage, seront ignorés :

<Island id="opening-hours" active="yes" class="LSWidgetOpeningHours">
    <param name="storage"   ><![CDATA[/islands/openinghours.php]]></param>
    <param name="type"      ><![CDATA[beach]]></param>
    <param name="slot-width"><![CDATA[20]]></param>
    <param name="ruler-day" ><![CDATA[%day%]]></param>
    <param name="ruler-sep" ><![CDATA[|]]></param>
    <param name="monday"    ><![CDATA[09:15-12:00;13:15-18:30]]></param>
    <param name="tuesday"   ><![CDATA[09:15-12:00;13:15-18:30]]></param>
    <param name="wednesday" ><![CDATA[09:15-12:00;13:15-18:30]]></param>
    <param name="thursday"  ><![CDATA[09:15-12:00;13:15-18:30]]></param>
    <param name="friday"    ><![CDATA[09:15-12:00;13:15-18:30]]></param>
    <param name="saturday"  ><![CDATA[]]></param>
    <param name="sunday"    ><![CDATA[]]></param>
</Island>

Utilisation de microformats dans la clase LSWidgetOpeningHours 2009-12-17

Depuis l'opus "2.4.0000"

Quand nous générons désormais le code des heures d'ouverture, celles-ci sont ficelées avec des microformats comme préconisé sur la page Operating Hours.

Paramètres conditionnels pour les îles 2009-08-16

Depuis l'opus "2.2.0000"

Adresse IP 2009-08-28

L'adresse IP peut aussi servir sur les paramètres des îles. Dans l'exemple qui suit les callback ne sont appelées que si l'adresse IP est l'adresse locale :

<Island id="credo" active="yes" class="LSContents">
    <role-mapping role="editor" groups="admin" />
    <param name="storage" lang="fr">/islands/credo.php</param>
    <param name="callback-pre" ip="127.0.0.1">startRounded</param>
    <param name="callback-post" ip="127.0.0.1">stopRounded</param>
</Island>

Mais l'utilisation la plus "excitante" de ce nouveau filtre sur l'extraction des paramètres va sans conteste à son couplage avec le paramètre "storage". En effet grâce à ce mécanisme, il vous est possible de concevoir des contenus différents pour certaines adresses IP : un truc absolument inestimable pour vos tests car cela vous permet en effet de tester de nouveaux contenus qui n'affecteront en rien votre site de production. Un excellent tyruc !

Domaines différents

Un paramètre d'île pour un domaine spécifique ? Jusqu'à présent vous étiez obligé de creér deux îles différentes : l'une pour le site 1, l'autre pour le site 2. Désormais, vous pouvez indiquer le domaine auquel le paramètre est applicable grâce à l'attribut landscape comme le démontre le code ci-dessous :

<Island id="coordinates" active="yes" class="LSContentsBusinessCoordinates">
    <param name="business-name" landscape="www.vaesoli.org">Vae Soli, asbl</param>
    <param name="business-name" landscape="www.vaesoli.com">Vae Soli, sa</param>
    <...>
</Island>

Conditions générales

Le même principe est mis en œuvre pour l'utilisation de paramètres conditionnels génériques. Vous n'aurez aucun mal à discerner le type de mécanisme mis en place grâce à l'attribut condition :

<Island id="coordinates" active="yes" class="LSContentsBusinessCoordinates">
    <param name="business-name" condition=".php= return false;">Vae Soli, asbl</param>
    <param name="business-name" condition=".php= return true;">Vae Soli, sa</param>
    <...>
</Island>

Inclusion de snippets 2009-08-26

Depuis l'opus "2.2.0000"

Chaque île peut être incluse dans un code snippet. Pour cela il suffit de mentionner un paramètre dans l'île … et celle-ci sera révélée au milieu de votre snippet, juste à l'endroit où vous le souhaitez.

Imaginez par exemple que vous souhaitiez appliquer un petit style de déco à une île déterminée. La solution est d'inclure l'île dans un petit snippet qui aura le look voulu pour votre déco. L'exemple qui suit est trivial mais il exprime correctement le principe :

Snippet
-------

<div class="BLUE_DECO">
    {{{ISLAND}}}
</div> <!-- END OF SNIPPET -->


Île
---
<Island id="body" active="yes" class="LSContents" lupdate="auto">
    <param name="snippet"><![CDATA[/snippets/blue-deco.html]]></param>
    <param name="storage" lang="fr"><![CDATA[/islands/body.php]]></param>
</Island>

Utiliser une image pour le bouton de login/logoff 2009-08-26

Depuis l'opus "2.2.0000"

L'utilisation des paramètres visant à contrôler l'apparence de l'île de login/logoff (connexion/déconnexion) rend possible le rendu des boutons sous forme d'images. Voilà comment :

<Island id="login-logoff" active="yes" class="LSContentsLoginLogoff">
    <param name="login-submit-type"><![CDATA[image]]></param>
    <param name="login-submit-image-src"><![CDATA[/images/login.jpg]]></param>
    <param name="logoff-submit-type"><![CDATA[image]]></param>
    <param name="logoff-submit-image-src"><![CDATA[/images/lgoff.jpg]]></param>
</Island>

Mentionner les coordonnées de votre entreprise 2009-08-23

Vous pouvez mentionner les coordonnées de votre entreprise directement dans le géorama de votre site sous la forme d'une île LSContentsBusinessCoordinates :

<Island id="coordinates" active="yes" class="LSContentsBusinessCoordinates">
    <param name="business-name"          ><![CDATA[Ma Société]]></param>
    <param name="business-legal-form"    ><![CDATA[SA]]></param>
    <param name="business-slogan"        ><![CDATA[Qualité et engagement]]></param>
    <param name="business-address"       ><![CDATA[Rue des fleurs, 18]]></param>
    <param name="business-postal-code"   ><![CDATA[1000]]></param>
    <param name="business-locality"      ><![CDATA[Bruxelles]]></param>
    <param name="business-country-name"  ><![CDATA[Belgique]]></param>
    <param name="business-lon"           ><![CDATA[50]]></param>
    <param name="business-lat"           ><![CDATA[4.6]]></param>
    <param name="rdfa"                   ><![CDATA[true]]></param>
    <param name="business-phones"        ><![CDATA[+32 (0)2 123 45 67]]></param>
    <param name="business-vat"           ><![CDATA[BE 123.456.789]]></param>
    <param name="business-bank-account"  ><![CDATA[My Bank : 000-0123456-78]]></param>
</Island>

En mentionnant également le paramètre rdfa, vous pouvez bénéficier d'un rendu sémantique plus élevé … ce qui ne manquera pas de plaire aux moteurs de recherche (n'oubliez pas dans ce cas de choisir le type rdfa pour le doctype de votre page afin de pouvoir faire valider vos pages).

Insérer des commentaires dans les îles 2009-08-23

Depuis l'opus "2.2.0000"

Un mécanisme générique existe pour insérer dans une île un commentaire défini dans le géorama. Dans l'exemple qui suit, le paramètre indiqué dans la définition de l'île sera automatiquement inséré dans le code XHTML généré :

<Island id="body-core" active="yes" class="LSContents">
    <param name="storage"><![CDATA[/articles/google-maps.php]]></param>
    <param name="comment"><![CDATA[Article : cartes statiques de Google]]></param>
</Island>

Support des doctypes 2009-08-22

Depuis l'opus "2.2.0000"

Vous pouvez choisir parmi un nombre de doctype prédéfinis. Le support des différents doctypes était déjà offert préalablement à la version 2.2.0000. Nous venons d'y ajouter le support pour HTML 5 et pour XHTML 2, peu de temps après avoir ajouté le type RDFa pour construire des sites sémantiques.

Le doctype s'applique par défaut à l'ensemble d'un site (mais il peut être modifié à chaque page) via le paramètre LSDoctype comme illustré ci-dessous :

<Defaults>
    <Settings>
        <LSDoctype><![CDATA[xhtml11]]></LSDoctype>
        <LSTemplate><![CDATA[/template/vaesoli.html]]></LSTemplate>
        <LSSetProceduresTo><![CDATA[/template/specific.php]]></LSSetProceduresTo>
        <LSIsDebug><![CDATA[true]]></LSIsDebug>
        <LSServiceMessages><![CDATA[true]]></LSServiceMessages>
    </Settings>
    <Settings landcape="www.vaesoli.com">
        <LSDoctype><![CDATA[rdfa]]></LSDoctype>
    </Settings>
</Defaults>

Vous pouvez choisir parmi les doctypes suivants :

  1. html-401-frame ou html-401-frameset
  2. html-401-strict
  3. html-401-transitional ou html-401-trans ou html-401
  4. html-401-short
  5. xhtml10 ou xhtml10-strict
  6. xhtml10-trans ou xhtml10-transitional
  7. xhtml10-frame ou xhtml10-frameset
  8. xhtml11
  9. xhtml2
  10. rdfa
  11. html-5 ou html5

Dans le cas où le paramètre que vous passez est incompris, Vae Soli! vous renvoit le paramètre en question. Cela vous permet notamment de spécifier un doctype qui serait inconnu de Vae Soli!.

Créer des transitions entre images : LSImageTrans 2009-08-16

La classe LsImageTrans permet une transition de type fade entre une série illimitée d'images comme le démontre l'exemple ci-dessous :

Picture of 165 by 248 pixels

L'effet reproduit ci-dessus correspond au code suivant :

<?php
$oImg = new LSImageTrans(
         array( FIL_ResolveRoot( '/images/trans/bourse01.jpg'                  ),
                FIL_ResolveRoot( '/images/trans/chapeau.jpg'                   ),
                FIL_ResolveRoot( '/images/trans/severine-et-keyzer.jpg'        ),
                FIL_ResolveRoot( '/images/trans/creation-de-sites-web-02.jpg'  ),
                FIL_ResolveRoot( '/images/trans/bourse02.jpg'                  ),
                FIL_ResolveRoot( '/images/trans/bruxelles01.jpg'               ),
                FIL_ResolveRoot( '/images/trans/creation-de-sites-web-01.jpg'  )
              )                                                                 ,
         20                                                                     ,
         0.01                                                                   ,
         'style="padding:10px;background:rgb(200,210,220);border:1px solid #666;"' );
echo $oImg->Render();
?>

DAT_Add() : calcul de dates 2009-08-09

Depuis l'opus "2.1.0002"

Vae Soli! fournit maintenant une fonction qui permet d'avancer ou de reculer dans les dates de manière extrêmement simple.

<?php

$iYear  = 2009;
$iMonth = 8;
$iDay   = 9;

$szDate = date( 'd/m/Y',mktime( 0,0,0,$iMonth,$iDay,$iYear ) );

echo "<p>{$szDate}</p>";                            /* Print date */

$iDate  = DAT_Add( $iYear,$iMonth,$iDay,-15 );      /* 15 days backward */
$szDate = date( 'd/m/Y',$iDate );                   /* Make date : string format */

echo "<p>{$szDate}</p>";                            /* Print date */

$iDate  = DAT_Add( $iYear,$iMonth,$iDay,30 );       /* 30 days in the future */
$szDate = date( 'd/m/Y',$iDate );                   /* Make date : string format */

echo "<p>{$szDate}</p>";                            /* Print date */
?>

LSWidgetEmailForm : une classe pour rapidement envoyer des emails 2009-08-05

Depuis l'opus "2.1.0000"

Il vous est possible d'envoyer des emails ou de suggérer des pages de votre site grâce à la classe LSWidgetEmailForm.

Type : simple email

<Island id="EmailForm" active="yes" class="LSWidgetEmailForm">
    <param name="email-to"><![CDATA[papy@domain.org;mamy@gmail.com]]></param>
    <param name="action"><![CDATA[self]]></param>
</Island>

Type : suggestion de page

<Island id="EmailForm" active="yes" class="LSWidgetEmailForm">
    <param name="type"><![CDATA[suggest]]></param>
    <param name="action"><![CDATA[self]]></param>
</Island>

LSContentsMedia : Hey! Welcome back!2009-08-04

Depuis l'opus "2.1.0000"

Ce type d'île existait depuis le 10 octobre 2006. Elle avait simplement été désactivée après la version 1.1.0515 de Vae Soli!. Là, elle vient de faire sa réapparition.

Pour l'instant, seuls les media de type .mpg, .wmv, .asf, .swf et .mov sont supportés. C'est pour nous le temps de vérifier le code des autres types de media : .mp3, .wma

Voilà en tout cas comment insérer une vidéo MPG dans une de vos pages :

<Island id="video" active="yes" class="LSContentsMedia">
    <param name="mediatype">mpg</param>
    <param name="comment">Play a .mpg (played via Windows Media Player - not streamed)</param>
    <param name="src">/media/vanishing.mpg</param>
    <param name="autoplay">true</param>
    <param name="loop">true</param>
    <param name="width">400</param>
    <param name="height">350</param>
    <param name="showcontrols">true</param>
    <param name="embed">false</param>
</Island>

Voilà un autre exemple avec un fichier .wmv qui se touve sur un autre site :

<Island id="video" active="yes" class="LSContentsMedia">
    <param name="mediatype">wmv</param>
    <param name="comment">Play a .wmv (Windows Media Movie)</param>
    <param name="src">http://www.shawlinmixin.com/videos/shawlin2.wmv</param>
    <param name="autoplay">false</param>
    <param name="loop">true</param>
    <param name="width">400</param>
    <param name="height">350</param>
    <param name="showcontrols">true</param>
</Island>

Encore un autre exemple avec un fichier .asf :

<Island id="video" active="yes" class="LSContentsMedia">
    <param name="mediatype">asf</param>
    <param name="comment">Film trailer - Green Street Hooligans</param>
    <param name="src">mms://view.trailers.be/hig/12156.asf</param>
    <param name="autoplay">false</param>
    <param name="loop">true</param>
    <param name="width">400</param>
    <param name="height">350</param>
    <param name="showcontrols">true</param>
</Island>

Les trois exemples précédents appellent le Windows Media Player!!!

Le code suivant permet d'insérer une vidéo de type Quicktime :

<Island id="video" active="yes" class="LSContentsMedia">
    <param name="mediatype">mov</param>
    <param name="comment">Play a .mov (Quicktime)</param>
    <param name="src">/media/vanishing.mov</param>
    <param name="autoplay">true</param>
    <param name="loop">true</param>
    <param name="width">720</param>
    <param name="height">496</param>
    <param name="showcontrols">true</param>
</Island>

L'exemple qui suit permet d'insérer une animation Flash :

<Island id="video" active="yes" class="LSContentsMedia">
    <param name="mediatype"><![CDATA[flash]]></param>
    <param name="src"><![CDATA[/media/home.swf]]></param>
    <param name="width"><![CDATA[480]]></param>
    <param name="height"><![CDATA[150]]></param>
    <param name="scale"><![CDATA[true]]></param>
</Island>

LSContentsIFrame : nouveau type d'île 2009-08-04

Depuis l'opus "2.1.0000"

Ce type d'île existait depuis quelque temps mais il n'avait jamais été documenté. Désormais, c'est chose faite.

À quoi peut bien servir une île de type LSContentsIFrame ? Tout simplement à inclure rapidement une page dans une page, par exemple la page d'un site distant dans le vôtre.

Attention toutefois … ce type d'île générera des erreurs de validation si vous utilisez un doctype XHTML 1.1.

<Island id="WebTemplates" active="yes" class="LSContentsIFrame">
    <param name="src"><![CDATA[http://www.fastwrite.com/paradeigma.php]]></param>
    <param name="title"><![CDATA[Templates web de FastWrite]]></param>
    <param name="name"><![CDATA[TemplateWeb]]></param>
    <param name="longdesc"><![CDATA[http://www.fastwrite.com/paradeigma.php?explain=yes]]></param>
    <param name="width"><![CDATA[480]]></param>
    <param name="height"><![CDATA[600]]></param>
</Island>

onload et onunload d'une page 2009-07-24

Depuis l'opus "2.0.0009"

Le géorama permet de mentionner les événements onload et onunload de chaque page. En voici un exemple :

<Land id="/index.php" active="yes" editable="yes" group="main"
      onload="Bonjour();" onunload="AuRevoir();">
...
</Land>

Si l'un ou l'autre événement était déjà mentionné dans le tag body de la page, les nouvelles clauses sont ajoutées : elles ne remplacent pas les clauses existantes (ex: c'est le cas lorsque les clauses onload et/ou onunload sont déjà pré-remplies dans votre template de base).

Page settings 2009-07-09

Depuis l'opus "2.0.0009"

Vae Soli! supporte le multi-domaines. En d'autre termes, plusieurs domaines peuvent tous pointer vers le même site. Par exemple, www.vaesoli.org, www.vaesoli.net et www.vaesoli.com peuvent être tous résolus en pointant vers le même site.

Plusieurs domaines, même s'ils sont résolus vers le même site, peuvent néanmoins avoir des paramètres différents, avoir des pages différentes, certaines pages peuvent n'exister que pour un des domaines, le contenu peut varier, des îles qui sont affichées ou inhibées, etc. C'est à cet effet que nous avons introduit l'attribut landscape dans le XML qui définit le géorama d'un site.

Quand plusieurs domaines ne diffèrent que par de légers paramètres, il est désormais possible de ne mentionner que les paramètres qui changent et non pas de recopier l'ensemble des paramètres domaine par domaine. C'est ce que démontre l'exemple suivant :

<Defaults>
    <Settings>
        <!-- Default settings for all domains -->
        <LSDoctype><![CDATA[xhtml11]]></LSDoctype>
        <LSIsDebug><![CDATA[true]]></LSIsDebug>
        <LSCacheTTL><![CDATA[0]]></LSCacheTTL>
        <LSMustCheckIP><![CDATA[true]]></LSMustCheckIP>
        <LSMustCheckSpamhaus><![CDATA[false]]></LSMustCheckSpamhaus>
        <LSMustCheckSpam><![CDATA[false]]></LSMustCheckSpam>
        <LSAcceptComments><![CDATA[false]]></LSAcceptComments>
        <LSIsStats><![CDATA[false]]></LSIsStats>
        <LSLanguage><![CDATA[fr]]></LSLanguage>
        <LSMustWriteSourceHeader><![CDATA[true]]></LSMustWriteSourceHeader>
        <LSMustStripWhitespaces><![CDATA[false]]></LSMustStripWhitespaces>
        <LSServiceMessages><![CDATA[true]]></LSServiceMessages>
        <...>
    </Settings>

    <Settings landscape="www.myotherdomain.net">
        <!-- Default settings for myotherdomain.net -->
        <LSDoctype><![CDATA[rdfa]]></LSDoctype>
        <LSLanguage><![CDATA[en]]></LSLanguage>
    </Settings>
</Defaults>

Précédent Suivant