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)

Nouvelle classe LSGeo dans Vae Soli! 2012-06-20

Depuis l'opus "5.0.0003"

Cette nouvelle classe est utilisée dans la version beta de notre utilitaire d'analyse de page (The Page Anamyzer, 0.3.0000).

Nous avons généralisé l'utilisation de cette petite classe pour l'insérer directement dans la classe LSPage. Désormais, LSPage pourra extraire des paramètres supplémentaires du géorama (ce que nous codons souvent dans un fichier defaults.xml :

  1. <LSGeoLat>…</LSGeoLat>
  2. <LSGeoLong>…</LSGeoLong>
  3. <LSGeoPlace>…</LSGeoPlace>
  4. <LSGeoRegion>…</LSGeoRegion>

À titre d'exemple, voyez l'extrait de notre fichier defaults.xml qui fait usage de ces nouveaux paramètres :

<Settings landscape="www.latosensu.be;www.latosensu.org;www.latosensu.net">
    <LSDoctype><![CDATA[html5]]></LSDoctype>
    <LSXMLSitemap><![CDATA[/sitemap-ls.xml]]></LSXMLSitemap>
    <LSGeoLat>50.385200</LSGeoLat>
    <LSGeoLong>4.660500</LSGeoLong>
    <LSGeoPlace><![CDATA[Vitrival, Namur, Belgium]]></LSGeoPlace>
    <LSGeoRegion><![CDATA[BE-WNA]]></LSGeoRegion>
</Settings>

Le fichier meta.xml, le fichier qui contient les metas nécessaires au site et qui est mentionné comme île dans le géorama, possède les lignes suivantes :

<meta name="geo.position"   content="{{{LATITUDE}}};{{{LONGITUDE}}}" />
<meta name="geo.placename"  content="{{{PLACENAME}}}" />
<meta name="geo.region"     content="{{{REGION}}}" />

Les parties du meta.xml qui nous intéressent sont en fait des substitutions (une fonction assez unique de Vae Soli!) ce qui veut dire que "{{{LATITUDE}}}", "{{{LONGITUDE}}}", "{{{PLACENAME}}}" et "{{{REGION}}}" seront, avant que d'être envoyés au browser du visiteur substitués par des valeurs de remplacement. Lesquelles ? Celles définies dans le fichier substitutions pardi ! Ah bon ? Et comment puis-je indiquer que Vae Soli! doit utiliser un tel fichier de substitutions ? Par le fameux fichier defaults.xml :

<LSSubstitutions><![CDATA[/web-config/substitutions.xml]]></LSSubstitutions>

… et dans ledit fichier substitutions.xml nous avons défini les substitutions dont nous avons besoin :

<Data key="{{{LATITUDE}}}" active="yes" editable="yes">
    <Value><![CDATA[.php=return $GLOBALS['oApp']->oPage->oGeo->Render( false,array( 'lat' => true ) );]]></Value>
</Data>

<Data key="{{{LONGITUDE}}}" active="yes" editable="yes">
    <Value><![CDATA[.php=return $GLOBALS['oApp']->oPage->oGeo->Render( false,array( 'long' => true ) );]]></Value>
</Data>

<Data key="{{{PLACENAME}}}" active="yes" editable="yes">
    <Value><![CDATA[.php=return $GLOBALS['oApp']->oPage->oGeo->Render( false,array( 'place' => true ) );]]></Value>
</Data>

<Data key="{{{REGION}}}" active="yes" editable="yes">
    <Value><![CDATA[.php=return $GLOBALS['oApp']->oPage->oGeo->Render( false,array( 'region' => true ) );]]></Value>
</Data>

Intéressons-nous à la première substitution, soit {{{LATITUDE}}}.

<Data key="{{{LATITUDE}}}" active="yes" editable="yes">
    <Value><![CDATA[.php=return $GLOBALS['oApp']->oPage->oGeo->Render( false,array( 'lat' => true ) );]]></Value>
</Data>

Comme vous le coonstatez, il s'agit d'une expression PHP. Elle demande de "rendre" le contenu de l'objet oGeo de la page (oPage) sans tags HTML (c'est cela le false) et en ne s'intéressant qu'à la latitude (array( 'lat' => true )).

Cela semble compliqué mais cela ne l'est pas tant que cela. Nous vous avons fait l'histoire de manière longue mais vous bénéficiez ainsi d'un mécanisme générique d'indication des géocoordonnées disponible sous la forme de simples subsitutions. Ce texte par exemple, fait usage de cette possibilité : les simples "{{{LATITUDE}}}", "{{{LONGITUDE}}}", "{{{PLACENAME}}}" et "{{{REGION}}}" sont ainsi transformés, DIRECTEMENT, dans notre texte par "50.385200", "4.660500", "Vitrival, Namur, Belgium", et "BE-WNA"  ! Vous en conviendrez, ce n'est vraiment pas difficile !

LSPublication 2012-06-30

Depuis l'opus "5.0.0003"

Il est désormais possible d'indiquer un referer sur les pages (<Land>...</Land>), les archipels (<Archipelago></Archipelago>) et les îles (<Island></Island>).

Ceci est dû à l'ajout d'un filtre supplémentaire dans la classe LSPublication. Un filtre, dans cette classe, c'est tout simplement un test qui doit être effectué et dont la valeur de retour doit être un booléen 'vrai' (true). Par exemple, vous souhaitez qu'une page ne puisse être visualisée que par les personnes faisant partie d'un groupe bien déterminé. Voilà un filtre typique ! Autre exemple : vous souhaitez qu'une île ne soit visualisée que par les visiteurs partageant une même adresse IP. Ou alors vous souhaitez que la page ne soit visible qu'à partir d'une date précise. Voilà autant de filtres !

Nous venons d'ajouter le filtre referer qui vous permet de spécifier si une page (<Land>...</Land>), un archipel (<Archipelago></Archipelago>) ou une île (<Island></Island>) doit s'afficher si le referer fait partie d'une liste donnée.

<Land id="/contact.php"
      group="Utilitaires"
      inherit="public"
      referer="latosensu.be;latosensu.net;latosensu.org"
      href="%geo-path%/contact.pdef.xml">
    <Sitemap priority="0.2" frequency="monthly" />
</Land>

Que nous apprend la définition de cette page ? Elle nous enseigne que pour être visualisée, le visiteur DOIT avoir été envoyé par un des sites suivants : latosensu.be;latosensu.net;latosensu.org.

<Land id="/contact.php"
      group="Utilitaires"
      inherit="public"
      referer="!pilou.com;!spammers.com;"
      href="%geo-path%/contact.pdef.xml">
    <Sitemap priority="0.2" frequency="monthly" />
</Land>

Cette fois le visiteur PEUT PAS avoir été envoyé par un des sites suivants : pilou.com ou spammers.com.

Insérer des notes de bas de page :LSFootnotes 2012-07-04

Depuis l'opus "5.0.0003"

Nous avons déjà décrit comment insérer des notes de bas de page. C'est une fonctionnalité qui date de la version 2.5.0017 (et publié le 17 février 2010). Ce qui est nouveau c'est la possibilité d'insérer une abréviation comme étant la source d'une note de bas de page. Voici comment :

<p>

    Apportons un peu de précision sans pour autant aller dans le tout
    détail. RDFA est une norme conforme au 
    <?php $oNotes            = new LSFootnotes();
          $oAbbrRDF          = new LSTag('abbr');
          $oAbbrRDF->szText  = 'RDF';
          $oAbbrRDF->szTitle = "Resource Description Framework";
          $this->EchoOB( $oNotes->Add( $oAbbrRDF ) ); ?>. L'idée du RDFa est de donner
    un sens au contenu des documents, un sens compris par les hommes et par les
    machines.
    
</p>

Cela peut paraître verbeux mais c'est au contraire très efficace : vous créez une abbréviation ET une note de bas de page. L'insertion des notes de bas de page (c'est-à-dire l'insertion de la liste) se fait comme d'habitude de la manière suivante :

<section class="footnotes">
   <h3>Notes de bas de page</h3>
   <?php $this->EchoOB( $oNotes->Render() ); ?>
</section>

Classe LSSourceFile 2012-07-05

Depuis l'opus "1.1.0515"

Voilà longtemps que cette classe est disponible dans Vae Soli!. Elle permet d'inclure le contenu d'un fichier, considéré comme fichier source, dans une page. Voici un exemple d'une telle utilisation (exemple réel extrait du site de Lato Sensu Management - nouveau didacticiel HTML5).

$oHTML5_0001 = new LSSourceFile( 'html5-0001.html',true,$this );
$oHTML5_0001->Read();
echo '<pre>' . $oHTML5_0001->Render() . '</pre>';

$oHTML5Reset = new LSSourceFile( 'reset.css',true,$this );
$oHTML5Reset->Read();
echo '<pre>' . $oHTML5Reset->Render() . '</pre>';

LSSourceFile permet d'inclure n'importe quel type de fichier texte. Mais il est également possible d'inclure des fichiers de code source PHP et dès lors d'utiliser la coloration syntaxique. En voici un exemple :

$oFile = new LSSourceFile( 'LSStrings.functions.php',true,null );
$oFile->bSyntaxColoring = true;
$oFile->Read();
echo '<pre>' . $oFile->Render() . '</pre>';

Onfail dans le géorama 2012-07-05

Depuis l'opus "5.0.0003"

Vous connaissez le mécanisme 'onfail' du géorama. Par ce mécanisme vous pouvez brancher l'exécution de votre site vers une page bien spécifique si les conditions de rendering de la page ne sont pas remplies. Ce mécanisme est intimement lié à la conditionnalité des pages. Prenons un exemple bien précis. Voici une page fictive définie dans le géorama :

<Land id="/index.php"
      group="main"
      creationdate="20081103"
      inherit="public"
      condition=".php= return false;"
      onfail="/legal.php"
      href="%geo-path%/index.pdef.xml">
</Land>

On voit que la condition, mentionnée comme une expression PHP, retourne false dans tous les cas (return false). Et donc dans tous les cas, il faut brancher l'exécution vers la page /legal.php. Voilà un mécanisme en place depuis longtemps au sein de Vae Soli!.

La petite nouveauté de la version 5.0.0003 du framework c'est de pouvoir mentionner un code d'erreur (code de retour HTTP). Très utile lorsque vous souhaitez, par exemple, indiquer qu'un service est temporairement non disponible. Voilà comment faire cela en Vae Soli!:

<Land id="/index.php"
      group="main"
      creationdate="20081103"
      inherit="public"
      condition=".php= return false;"
      onfail="503:Service Unavailable"
      href="%geo-path%/index.pdef.xml">
</Land>

Dans ce cas, Vae Soli! génèrera une page dont les HTTP headers font usage du code de retour 503 en indiquant clairement que le service est non- disponible.

Imaginons maintenant qu'une page est désormais indisponible parce que vous l'avez bougée à un autre endroit. C'est la norme de pouvoir indiquer aux moteurs de recherche que ladite page a été déplacée à un autre endroit. Il faut utiliser le code 301 (Moved Permanently). Rien de plus simple grâce à notre petite fonctionnalité.

<Land id="/index.php"
      group="main"
      creationdate="20081103"
      inherit="public"
      condition=".php= return false;"
      onfail="301:Moved permanently {*header('Location: http://www.latosensu.be/nouvelle-page.php')*}"
      href="%geo-path%/index.pdef.xml">
</Land>

Comme il faut indiquer l'endroit auquel les moteurs de recherche doivent se rendre, vous pouvez alors utiliser le pattern {*header(…)*} pour spécifier ce que vous souhaitez, ici, l'adresse à laquelle se rendre, cad http://www.latosensu.be/nouvelle-page.php dans notre cas. Voilà de quoi gérer simplement l'ensemble de vos redirections.

Précédent Suivant