Niouzes

< Octobre 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 31

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)

Browser Danger Rating 2013-01-17

Depuis l'opus "5.0.0012"

Vous ne souhaitez certainement pas être "scannés", "spidés", "crawlés", "sniffés", … par des navigateurs émanant de sites web à la vocation douteuse.

Après avoir scanné environ 4Gb[1] nous vous détecté une nouvelle tendance qui consiste à modifier le User Agent en lui adjoignant une ancre (<a href="…">…</a>) laquelle renvoit immanquablement vers des sites pornographiques, de ventes de médicaments et autres médiocrités. Il s'agit pour ces sites douteux d'obtenir de la publicité gratuite sur les pages qui recensent les User Agents comme sur la page Base de données (database) : User Agent (mais nous ne sommes pas les seuls à souffrir de ce phénomène !)

Ce travail de scan nous a donc amenés à détecter un certain nombre de patterns suspects dans la chaîne d'identification du User Agent et à affubler la classe LSBrowser d'une nouvelle propriété  : une note de danger, le fameux Browser Danger Rating. C'est de cette note de danger qu'on peut se servir au démarrage d'un site web et cela au travers du paramètre <LSBrowserMaxDangerRating>…</LSBrowserMaxDangerRating> (à définir dans le géorama ou dans le fichier defaults.xml).

<LSBrowserMaxDangerRating>4</LSBrowserMaxDangerRating>

… signifie que vous acceptez de démarrer avec tout browser dont la note de danger est inférieure ou égale à 4. Tout rating de danger supérieur sera traité par un refus de chargement de page.

Halte aux User Agents non spécifiés (empty user agents) 2013-01-17

Vous pouvez aussi décider d'arrêter les sniffers qui ne mentionnent aucun User Agent (chaîne User Agent vide). Voici comment :

<LSBrowserEmpty>true</LSBrowserEmpty>

Ces deux paramètres combinés, LSBrowserMaxDangerRating et LSBrowserEmpty, ne vous mettent évidemment pas à l'abri de toute tentative suspecte mais ils s'ajoutent à l'arsenal de moyens que nous mettons à votre disposition pour bénéficier d'une protection minimale.

Exclure des navigateurs 2013-01-21

Depuis l'opus "5.0.0012"

Le paramètre de config LSBrowserExclusionFilter vous permet de positionner une expression régulière qui sera utilisée pour disqualifier les navigateurs (User Agent string) qui coïncident avec l'expression utilisée. Voici comment disqualifier, à simple titre d'exemple, Internet Explorer :

</Settings>
    <LSBrowserExclusionFilter><![CDATA[MSIE.*Trident]]></LSBrowserExclusionFilter>
</Settings>

LSContentsBooking 2012-07-11

Depuis l'opus "5.0.0005"

Les classes LSBooking et LSContentsBooking[2] existent depuis pas mal de temps, bien que non documentées. Ces classes permettent de réaliser des réservations de ressources. Nous utilisons ces classes pour permettre des réservations de tables dans un restaurant, des réservations de salles dans un château, des rendez-vous dans des salons de coiffure et des réservations de terrains de squash. Les classes sont suffisamment génériques pour s'adapter à une série de situations comme vous pouvez vous en rendre compte.

Nous avons débuté notre gestionnaire / système de réservation avec la programmation du formulaire de réservation pour restaurants. C'est sur le site du Divin Caprice que FastWrite l'a mis en oeuvre pour la première fois.

Ensuite nous avons étendu le concept à la réservation de cabines et/ou de soins dans un centre d'esthétique, Saguenay. Malheureusement ce projet a été postposé et nous n'avons pas pu continuer une série de développements intéressants et prometteurs.

En troisième étape de notre système de réservation est venu le projet Château Jourdain. Cette étape a véritablement marqué un grand tournant dans le développement de notre système parce que c'est avec elle que nous avons introduit une série de zones standardisées, ce que nous avons finalement rendu public dans Vae Soli! sous la classe LSInput. C'est à ce moment que sont nées les zones email, date, url, hour, min, country, …

C'est également à ce moment que nous avons introduit les classes LSForm et LSFieldset. Bien des concepts techniques ont ensuite été transférés dans des classes de plus bas niveau comme LSTag et LSControl.

Aujourd'hui nous venons de terminer la quatrième étape de notre développement de système de réservation qui a évolué depuis vers un système universel : nous l'appelons Système de booking universel car on peut effectivement l'utiliser pour réserver une ressource (une table, un court de squash, un court de tennis, une personne, …) à un moment donné pour une période donnée.

Présentation du calendrier des réservations (adaptation à des courts de tennis ou de squash)

TOUT est paramétrable, soit via des paramètres du système de booking (LSContentsBooking), soit par feuilles de styles externes (CSS), soit par système de dictionnaire (gestion des langues).

Calendrier hebdomadaire des réservations

Heures de réservation

Vous pouvez choisir les heures de début et de fin du booking. Par exemple, si vous ne prenez des réservations qu'à partir du 10h du matin, vous pouvez le mentionner. Pareil pour l'heure de fin des bookings.

Durée standard d'une réservation

Vous pouvez choisir la durée d'un slot de réservation. Par exemple il est assez habituel de permettre des réservations par 1/2 heure, soit 30 minutes en matière de paramétrisation. Le calendrier s'adapte à votre slot de réservation automatiquement. Dans l'exemple ci-dessus, le slot est mis à 30 minutes. La seule contrainte est 60 soit un multiple du paramètre choisi.

Langue d'affichage

Toutes les langues possibles sont supportées, sinon en natif au moins par système de substitutions (un mot est transformé en un autre mot; par exemple 'lundi' est transformé en 'lunedi' pour supporter l'italien).

Affichage des noms

Vous pouvez décider de rendre l'affichage des réservations complètement anonyme ou de permettre d'afficher les noms. Si vous avez décidé de rendre l'affichage des noms possible, chaque personne peut encore décider d'afficher son nom ou pas.

Nom et nombre de ressources

Le nom des ressources (ici 'Court 1', 'Court 2', …) est entièrement paramètrable. Vous pouvez indiquer le nom de chaque ressource dans une langue de votre choix, le nombre de langues n'étant PAS limité.

Le nombre de ressources n'est pas limité. Vous pouvez aussi bien avoir 15 courts ou 3. Dans le cas d'un grand nombre de ressources il est possible de présenter de multiples calendriers (au risque sinon d'avoir des colonnes trop petites et difficilement lisibles).

Présentation par feuille de style

La présentation est entièrement dirigée par feuille de style (CSS). Cela permet de personnaliser l'affichage pour coller de manière parfaite à votre style.

Navigation naturelle et facile

Passer d'une date à l'autre est facile. Pour passer de semaine en semaine, dans le passé ou dans le futur, il suffit de cliquer sur les < ou > dans le haut du calendrier. Vous pouvez naviguer de jour en jour en cliquant sur le nom du jour dont les réservations vous intéressent. Par ailleurs, le jour courant est mis en exergue par l'utilisation d'un style adéquat que vous maîtrisez entièrement (feuilles de styles, CSS).

Un tout autre look du calendrier des réservations

Pour le Château Jourdain, une tout autre politique de réservation est mise en oeuvre, à savoir que la réservation d'une salle du Château, bloque toute autre réservation pour la même date. L'occupation du château est alors présentée sous la forme d'un calendrier mensuel qui renseigne tout de suite le candidat loueur sur la disponibilité du château. Cela donne lieu au rendu suivant :

Calendrier mensuel des réservations

Par ces deux illustrations, on peut aisément se rendre compte de la versatilité du système de réservation.

Présentation du formulaire de réservation

Encore une fois, TOUT est paramétrable : la langue dans laquelle le formulaire doit être affiché, chaque libellé, les zones obligatoires de celles qui ne le sont pas, la marque de distinction des zones obligatoires, le nom des ressources qu'on peut réserver, les heures de début et de fin de réservation, l'obligation ou pas d'accepter des termes et conditions de réservation, le lien vers les termes et conditions s'il y en a un, la rétention des informations du visiteur (afin que les données soient pré-remplies lors de sa prochaine réservation), le fait qu'il puisse accepter ou non l'affichage de son nom, le layout des zones entièrement dirigé par feuille de styles (CSS), …

Voici deux look & feel différents du même formulaire grâce au jeu de la paramétrisation:

Formulaire de réservation

Formulaire de réservation

Smartphones et tablettes

Et cela marche sur smartphones et tablettes… pour que les visiteurs puissent réserver où qu'ils soient. C'est notamment grâce à l'application des nouveaux filtres de paramètrage des îles que c'est possible.

Le paramètrage de l'île (exemple pris du site de Stefan Casteleyn)

<Island id="booking" active="yes" class="LSContentsBooking">
    <param name="storage"               ><![CDATA[/quitus-booking/reservations.xml]]></param>
    <param name="resource-file"         ><![CDATA[/quitus-booking/resources.xml]]></param>
                                        
    <param name="title"                 ><![CDATA[Court Booking]]></param>
                                        
    <param name="CSSClass"              ><![CDATA[booking]]></param>
                                        
    <param name="with-quantity"         >false</param>
    <param name="with-attendance"       >false</param>
    <param name="with-terms"            >true</param>
    <param name="with-remember-me"      >true</param>

    <param name="calendar-day-format"   device="iphone"><![CDATA[short]]></param>
    <param name="calendar-date-format"  device="iphone"><![CDATA[d-m]]></param>
    <param name="calendar-day-format"   device="samsung" model="galaxy s ii"><![CDATA[short]]></param>
    <param name="calendar-date-format"  device="samsung" model="galaxy s ii"><![CDATA[d-m]]></param>
    <param name="multiselect"           >false</param>
    <param name="mandatory-mark"        ><![CDATA[ (*)]]></param>
    <param name="resource-type"         ><![CDATA[court]]></param>
                                        
    <param name="start-hour"            >11</param>
    <param name="end-hour"              >22</param>
    <param name="minutes-per-slot"      >30</param>
                                        
    <param name="debug"                 ip="127.0.0.1">true</param>
                                        
    <param name="foreword-label"        ><![CDATA[{booking-foreword}]]></param>
    <param name="resource-label"        ><![CDATA[{resource}]]></param>
    <param name="resource-tooltip"      ><![CDATA[{resource-tooltip}]]></param>
    <param name="attendance-label"      ><![CDATA[{attendance}]]></param>
    <param name="attendance-tooltip"    ><![CDATA[{attendance-tooltip}]]></param>
    <param name="zipcity-label"         ><![CDATA[{zip-and-city}]]></param>
    <param name="objective-label"       ><![CDATA[{objective}]]></param>
    <param name="objective-tooltip"     ><![CDATA[{objective-tooltip}]]></param>
                                        
    <param name="form-title"            ><![CDATA[{form-title}]]></param>
    <param name="date-filling"          ><![CDATA[next week]]></param>
    <param name="form-version"          ><![CDATA[web 2.0]]></param>

    <param name="data-saved-msg"        ><![CDATA[{data-saved}]]></param>
    <param name="data-not-saved-msg"    ><![CDATA[{data-not-saved}]]></param>
    <param name="data-not-validated-msg"><![CDATA[{data-not-validated}]]></param>

    <param name="close-button-alt"      ><![CDATA[{close-button-alt}]]></param>
    <param name="close-button-title"    ><![CDATA[{close-button-title}]]></param>

    <param name="publish-names"         >true</param>
</Island>

L'utilisation de filtres dans l'assignation des paramètres des îles n'est pas pris en compte pour le calcul des caches (cache sur île, cache sur archipel ou cache sur page). Soyez dès lors prudent dans l'application desdits filtres et des caches.

LSIsland : application de nouveaux filtres 2012-07-28

Depuis l'opus "5.0.0005"

La gestion des paramètres des îles dans Vae Soli! s'est enrichie de deux nouveaux filtres de paramètres, device et model, pour que vous puissiez gérer des paramètres différents en fonction des devices et/ou modèles rencontrés.

Donnons un exemple concret de l'application de ces filtres en choisissant la toute nouvelle île LSContentsBooking. Cette classe présente un calendrier des réservations effectuées. Le calendrier est hebdomadaire comme le montre l'illustration suivante :

Calendrier hebdomadaire des réservations

Vous constatez dans le haut du calendrier que les dates sont indiquées avec le jour de la semaine, suivi par le jour complètement qualifié (jour-mois-année). Par exemple, la date courante de la visualisation du calendrier est ici Maandag 23-07-2012 (en Néerlandais).

Mais sur un Samsung Galaxy S II ou sur un iPhone nous ne disposons pas de la place suffisante pour mentionner le nom long de chaque jour : nous souhaiterions mentionner le nom dans sa forme courte, à savoir Ma pour Maandag. Et finalement pareil pour la date : pourquoi ne pas abréger la date en ne mentionnant que le jour et le mois (on laisse tomber l'année). Voyez un exemple concret :

<Island id="booking" active="yes" class="LSContentsBooking">
    <param name="storage"               ><![CDATA[/quitus-booking/reservations.xml]]></param>
    <param name="resource-file"         ><![CDATA[/quitus-booking/resources.xml]]></param>

    <param name="title"                 ><![CDATA[Court Booking]]></param>

    <param name="CSSClass"              ><![CDATA[booking]]></param>

    <param name="with-quantity"         >false</param>
    <param name="with-attendance"       >false</param>
    <param name="with-terms"            >true</param>
    <param name="with-remember-me"      >true</param>

    <param name="calendar-day-format"   device="iphone"><![CDATA[short]]></param>
    <param name="calendar-date-format"  device="iphone"><![CDATA[d-m]]></param>
    <param name="calendar-day-format"   device="samsung" model="galaxy s ii"><![CDATA[short]]></param>
    <param name="calendar-date-format"  device="samsung" model="galaxy s ii"><![CDATA[d-m]]></param>
    <param name="multiselect"           >false</param>
    <param name="mandatory-mark"        ><![CDATA[ (*)]]></param>
    <param name="resource-type"         ><![CDATA[court]]></param>

    <param name="start-hour"            >11</param>
    <param name="end-hour"              >22</param>
    <param name="minutes-per-slot"      >30</param>

    <param name="publish-names"         >true</param>
</Island>

Comme vous pouvez le remarquer, des paramètres différents sont appliqués dans le cas de l'iPhone et dans le cas du Samsung Galaxy S II. Pour tous les autres cas, on s'en remet aux paramètres par défaut de l'île LSContentsBooking, ce qui ne nécessite aucun paramètrage dans l'île. Le reste, c'est la classe LSContentsBooking qui s'en charge. Pour le reste, c'est grâce à la toute nouvelle classe LSBrowser et à ses capacités de parsing que la détection des préiphériques (devices) et modèles que tout ceci fut possible.

L'utilisation de filtres dans l'assignation des paramètres des îles n'est pas pris en compte pour le calcul des caches (cache sur île, cache sur archipel ou cache sur page). Soyez dès lors prudent dans l'application desdits filtres et des caches.

Depuis l'opus "5.0.0012"

Avec le nouvel opus en préparation chez nous, nous avons ajouté encore un filtre possible sur les paramètres des îles : le paramètre / attribut memberof. Grâce à ce tout nouvel attribut il est désormais possible de concevoir des paramètres dont la valeur est différente en fonction du groupe d'utilisateurs auquel appartient le visiteur. Reprenons l'exemple précédent et voyons comment l'île de type LSContentsBooking peut montrer le formulaire de réservation quand le visiteur est un membre ou simplement le calendrier des réservations dans les autres cas (l'ordre dans lequel les paramètres sont définis est important) :

<Island id="booking" active="yes" class="LSContentsBooking">
    <param name="storage"               ><![CDATA[/quitus-booking/reservations.xml]]></param>
    <param name="resource-file"         ><![CDATA[/quitus-booking/resources.xml]]></param>

    <param name="title"                 ><![CDATA[Court Booking]]></param>

    <param name="CSSClass"              ><![CDATA[booking]]></param>

    <param name="with-quantity"         >false</param>
    <param name="with-attendance"       >false</param>
    <param name="with-terms"            >true</param>
    <param name="with-remember-me"      >true</param>

    <param name="show-calendar"                           >true</param>
    <param name="show-form"             memberof="members">true</param>
    <param name="show-form"                               >false</param>

    <param name="calendar-day-format"   device="iphone"><![CDATA[short]]></param>
    <param name="calendar-date-format"  device="iphone"><![CDATA[d-m]]></param>
    <param name="calendar-day-format"   device="samsung" model="galaxy s ii"><![CDATA[short]]></param>
    <param name="calendar-date-format"  device="samsung" model="galaxy s ii"><![CDATA[d-m]]></param>
    <param name="multiselect"           >false</param>
    <param name="mandatory-mark"        ><![CDATA[ (*)]]></param>
    <param name="resource-type"         ><![CDATA[court]]></param>

    <param name="start-hour"            >11</param>
    <param name="end-hour"              >22</param>
    <param name="minutes-per-slot"      >30</param>

    <param name="publish-names"         >true</param>
</Island>

Ce simple attribut supplémentaire, un tout petit truc en somme, offre une flexibilité sans précédent au modèle des îles tel que nous l'avons défini … puisqu'il s'applique à TOUS les paramètres. Imaginez simplement l'utiliser pour offir des contenus différents (paramètre storage) des îles !

L'utilisation de filtres dans l'assignation des paramètres des îles n'est pas pris en compte pour le calcul des caches (cache sur île, cache sur archipel ou cache sur page). Soyez dès lors prudent dans l'application desdits filtres et des caches.

Depuis l'opus "5.0.0012"

Mais vous pouvez encore bénéficier du filtre land. Ce filtre vous permet dès lors de concevoir des îles dont certains paramètres varieraient en fonction de la page dans laquelle elles vont s'insérer ce qui permet par exemple de concevoir des pages par système d'alias (<Land id="/contact.php;/keepintouch.php"…>…</Land>) mais dont les îles pourraient réagir de manière différente en fonction du nom physique de la ressource que l'on accède (ici /contact.php ou /keepintouch.php).

001 … <Land id="/contact.php;/keepintouch.php" 
002 …       group="utils" 
003 …       inherit="utils">
004 …     <Contents id="contents" class="une-classe">
005 …         <Archipelago id="body" active="yes" category="body">
006 …             <Island id="contact-form" active="yes" class="LSContentsContactForm">
007 …                 <param name="submit"                           ><![CDATA[self]]></param>
008 …                 <param name="company"                          ><![CDATA[true]]></param>
009 …                 <param name="firstname"                        ><![CDATA[true]]></param>  
010 …                 <param name="birthdate"                        ><![CDATA[false]]></param>  
011 …                 <param name="address"                          ><![CDATA[true]]></param>
012 …                 <param name="phone"                            ><![CDATA[true]]></param>
013 …                 <param name="homepage"  land="/keepintouch.php"><![CDATA[false]]></param>
014 …                 <param name="homepage"                         ><![CDATA[true]]></param>
015 …             </Island>
016 …         </Archipelago>
017 …     </Contents>
018 …     <Sitemap priority="0.2" frequency="monthly" />
019 … </Land>

En ligne 001 on distingue la définition d'une page connue sous deux noms différents : /contact.php et /keepintouch.php.

En ligne 013 on remarque que si la page est /keepintouch.php, alors on ne souhaite pas afficher la zone homepage; dans les autres cas, ligne 014, ( /contact.php dans notre cas) la zone homepage sera affichée.

L'utilisation de filtres dans l'assignation des paramètres des îles n'est pas pris en compte pour le calcul des caches (cache sur île, cache sur archipel ou cache sur page). Soyez dès lors prudent dans l'application desdits filtres et des caches.

Depuis l'opus "5.0.0012"

Et ce n'est pas tout puisque vous avez encore le filtre port qui fonctionne exactement de la même manière. Par exemple :

001 … <Island id="booking" active="yes" class="LSContentsBooking">
002 …     <param name="storage" port="8000"><![CDATA[/quitus-booking/reservations-beta.xml]]></param>
003 …     <param name="storage"            ><![CDATA[/quitus-booking/reservations.xml]]></param>
004 …     …
005 … </Island>

En ligne 002, on positionne un storage différent si le port 8000 est utilisé. Dans les autres cas (ligne 003) ce sera le storage traditionnel qui est utilisé. Voici une méthode habile pour permettre des tests sur des données différentes que celles de production (n'oubliez pas que vous pouvez encore spécifier d'autres filtres comme par exemple memberof pour vérifier que l'utilisateur qui accède à votre site sur le port 8000 est bien autorisé  ! Sécurité avant tout !

L'utilisation de filtres dans l'assignation des paramètres des îles n'est pas pris en compte pour le calcul des caches (cache sur île, cache sur archipel ou cache sur page). Soyez dès lors prudent dans l'application desdits filtres et des caches.

LSBrowser 2012-07-28

Depuis l'opus "5.0.0005"

On a évoqué la clase LSBrowser un certain nombre de fois surtout depuis que cette classe est à la base de la reconnaissance fine du BROWSER auquel notre code doit satisfaire. Il était dès lors temps que nous vous montrions par l'exemple comment vous servir de cette classe et quel meilleur exemple utiliser que celui qui est utilisé dans le service RESTful de détection de User Agent :

$oBrowser = new LSBrowser( $_SERVER['HTTP_USER_AGENT'] );
$oBrowser->ParseUA();

if ( isset( $_GET['xml'] ) )
{
    $szXML  = '';
    $szXML .= "<Request><![CDATA[{$szUA}]]></Request>\n";
    $szXML .= "<Response>\n";
    $szXML .=    "<ToolVersion><![CDATA[{$oBrowser->szToolVersion}]]></ToolVersion>\n";
    $szXML .=    "<FullAgent><![CDATA[{$szUA}]]></FullAgent>\n";
    $szXML .=    "<AgentName><![CDATA[{$oBrowser->szName}]]></AgentName>\n";
    $szXML .=    "<AgentType><![CDATA[{$oBrowser->szType}]]></AgentType>\n";
    $szXML .=    "<AgentVersion>\n";
    $szXML .=        "<Major><![CDATA[{$oBrowser->iMajor}]]></Major>\n";
    $szXML .=        "<Minor><![CDATA[{$oBrowser->iMinor}]]></Minor>\n";
    $szXML .=        "<Revision><![CDATA[{$oBrowser->iRevision}]]></Revision>\n";
    $szXML .=        "<Build><![CDATA[{$oBrowser->szBuild}]]></Build>\n";
    $szXML .=    "</AgentVersion>\n";
    $szXML .=    "<Device>\n";
    $szXML .=        "<Type><![CDATA[{$oBrowser->szMobility}]]></Type>\n";
    $szXML .=        "<Name><![CDATA[{$oBrowser->szDevice}]]></Name>\n";
    $szXML .=        "<Model><![CDATA[{$oBrowser->szModel}]]></Model>\n";
    $szXML .=    "</Device>\n";
    $szXML .=    "<Platform>\n";
    $szXML .=        "<Name><![CDATA[{$oBrowser->szPlatform}]]></Name>\n";
    $szXML .=        "<Version><![CDATA[{$oBrowser->szPlatformVersion}]]></Version>\n";
    $szXML .=    "</Platform>\n";
    $szXML .=    "<Perf>\n";
    $szXML .=        "<ParseTime>" . ( $oBrowser->fStop - $oBrowser->fStart ) . " sec</ParseTime>\n";
    $szXML .=    "</Perf>\n";
    $szXML .= "</Response>\n";

    echo SendXML( 'ua',$szXML );
    exit();
}

Notes de bas de page

[1] … Voir 4 Gb de scan: nouvelle sur www.latosensu.be

[2]LSContentsBooking, classe qui implémente une île définie dans le géorama, utilise la classe LSBooking

Précédent Suivant