A toute chose on trouve cause et conséquence.Gallance
5.0.0001La dernière version stable de Vae Soli! est la version 5.0.0001 du 01/05/2012. Cette version contient l'ensemble du code source de Vae Soli! :vaesoli-5.0.0001.zip (01/05/2012 à 12:11 de 9.996.671 bytes). Cette version ne contient plus de documentation automatique, considérée comme trop ancienne. La prochaine version publiable de Vae Soli! sera une version intégrée avec notre gestion d'entreprise "{Q}" et documentée manuellement.
2.1.0000Cliquez sur le signe ci-dessous pour étendre/fermer la liste changements.
La version 2.0.0009 de Vae Soli! sera mise à disposition à la
fin du mois d'avril 2009.
LSSitemap.LSContentsSitemap fait maintenant appel à la
nouvelle classe : LSSitemap.LsContentsSitemap permet un affichage
des pages par le groupe auxquelles elles appartiennent:
<param name="layout">by-group</param>.Language de la classe
LSDictionary a été renommée szLanguage pour
plus de cohérence dans l'ensemble du framework.?VaesoliServiceMessage={doctype}.?VaesoliServiceMessage={landscape:www.domain.com}.LSContentsComments et LSContentsAddComment.
Ces îles remplacent définitivement les paramètres LSIsBlog
et LSAccepComments qui ne seront plus supportés du tout.2.0.0009 est la première version qui utilise
un algorithme de machine de Turing. Cet algorithme est utilisé dans
l'île de type LSContentsAddComment pour contrer les
spammeurs.GetPageDescription()
du Géorama.GetPageH1()
du Géorama.LSPage.LSColor accepte deux nouveaux types de paramètres
lors de l'initialisation : une chaîne rgb (e.g. "rgb(10,20,60)")
et un tableau de trois nombres (e.g. a[0] = 10,a[1] = 20,a[2] = 60).LSImage a trois nouvelles méthodes :
Emboss(), DetectEdge() et
Contrast().LSImage : merci à Damien Thierry.landscape
sur une île de sorte à ne l'afficher que dans le cas d'un domaine
précis (e.g. www.vaesoli.com vs. www.vaesoli.net vs. www.vaesoli.org, ...)landscape
sur des valeurs de substitution de sorte à ne les activer qu'en
fonction de certains domaines (e.g. www.vaesoli.com vs.
www.vaesoli.net vs. www.vaesoli.org, ...).Depuis que Vae Soli! a été acquis par la société Lato Sensu Management, un certain nombre de nouvelles fonctionnalités ont été développées et d'anciennes fonctionnalités abandonnées. En voici la liste :
LSTracingLevels.inc)LSContentsClasses.inc.LSIsland ont maintenant une méthode
de PreRenderingBlock et de PostRenderingBlock.
Ces méthodes appellent des fonctions de callback.LSContents ont maintenant
deux paramètres pre-block et de post-block.
Ces paramètres permettent de mentionner un fichier à inclure avant le
contenu et un fichier à inclure après.cargo est passé de la classe LSPage à la classe
LSMotherNature. Il est donc de facto accessible à toutes
les classes héritées comme par exemple toutes les classes de contenu
LSContents*.LSCalendar a été créée. Elle étend la
classe LSMotherNature.LSContentsCalendar a été créée. Elle étend la classe
LSContents et elle se base sur l'object
LSCalendar.LSPage::AddSubstitution() fait maintenant appel à une trace
de niveau TRACING_INFO_HIGH_LEVEL.LSPage.LSUser::DetectBrowser() déplacée dans
LSMotherNatureLSUser étend la classe LSMotherNature.LSContents.LSIsland.LSContentsZip.LSContentsZip hérite des Pre-Rendering et Post-Rendering
blocks de LSIsland. Ce n'était pas le cas avant.LSContentsXML.LSContentsXML hérite des Pre-Rendering et Post-Rendering
blocks de LSIsland. Ce n'était pas le cas avant.<Switch><Case>...</Case><Default>…</Default></Switch>
dans le géorama.LSPDF et LSContentsPDF (basées sur FPDF).<Pages> est
devenu <Pangaea> et <Page> est
devenu <Land>. Ces dénominations sont plus proches
de l'idée de carte (géorama), d'archipels et îles.landscape. Voilà aussi qui rapproche de l'idée
de terre/mer.GetPageTitle() et GetH1() sont
désormais obsolètes. Prièred'utiliser la variable globale
$GLOBALS['oGeorama'] pour avoir accès à ces informations ou
de faire appel aux fonctions du géorama.ImmerseIsland() et
ImmerseIsland2()). Aujourd'hui, une seule méthode est
utilisée. Il se pourrait qu'on en arrive à découvrir quelques problèmes
d'incompatibilité mais nous les résoudrons plus tard.FW_VAESOLI ont maintenant été renommées
LS_VAESOLI et donc les fichiers des CSS de base fournis
par Vae Soli! ont été modifiés.LSContentsMenu.default="yes" dans le tag
<Land>.LSGeoarama utilise
maintenant (mais pas partout encore) directement le noeud en question
plutôt que de rechercher la page depuis la racine de l'XML.LSEditor.class.php :premiers jets de l'écriture d'un
éditeur WYSIWYG à inclure dans LSIsland par exemple quand
on édite une île. Cette classe n'est pourtant pas encore utilisable.<script ... />) qui étaient incorrectement
formattés (utilisation de <script language="javascript"
… />). Cela a été modifié en
élmininant la référence au langage.http://www.fastwrite.com/search/searchxml.jsp).LSMotherNature, dont sont notamment
héritées les classes LSIsland et LSContents,
a une méthode appelée EchoOB(). Au lieu d'utiliser la
commande echo directement, l'utilisation de la
méthode permet de constituer un Buffer interne qui peut être rendu
au moment où l'affichage est demandé. Pour l'instant, la méthode ne fait
rien d'autre qu'utiliser l'instruction echo.onSubmit a été renommé en onsubmit dans le
"in In-Place editing" des îles.<xi:include href="http://www.my-other-site.com/xml-def/defaults.xml" />href) :
<Land>):
<Land id="/sitemap.php"
href="http://www.my-other-site.com/xml-def/sitemap.xml">
…
</Land>
<Archipelago>):
<Archipelago id="column01" category="c1"
href="http://www.my-other-site.com/xml-def/archipel-column01.xml">
…
</Archipelago>
<Island>):
<Island id="block-01" class="LSContents"
href="http://www.my-other-site.com/xml-def/block-01.xml">
…
</Island>
{properties} est actif. Exemple :
http://www.monsite.com/contact.php?VaesoliServiceMessage={properties}
Ce message de service permet de retourner l'ensemble des propriétés
de la page sous forme de XML.{page:satori} est actif. Exemple :
http://www.monsite.com/contact.php?VaesoliServiceMessage={page:satori}.
Ce message de service permet de retourner la définition XML de la page
en cours. C'est une copie XML du <Land> correspondant.<Land>) peuvent avoir des critères de
récurrence :
onfail n'a pas encore été activé.<<<…>>> ou {{{... }}})
et également des expressions PHP. Ceci permet
lang="{{{..}}}" dans le
fichier de substitutionsLSApplication, despécifier un verbe. L'utilisation du
verbe se fait sans argument et doit être résolue comme un appel à une
méthode de l'objet LSApplicationLSLatin a été améliorée:
l'énumération des paragraphes latins ne se fait qu'une seule fois si
l'endroit où il faut aller les extraire reste le même. Cela améliore
largement les performances.LSContentsContactForm a été créée. Elle permet
de générer un formulaire de contact directement. Exemple :
<Island id="ContactForm" active="yes" class="LSContentsContactForm"> <param name="submit">mailto:info@monsite.com</param> </Island>
LSContentsCharter a été créée. Elle permet de
générer un texte standard d'aide et de charte d'accessibilité. Ce n'est
pourtant qu'un tout début car les paragraphes devraient être tirés de
textes (fichiers) standard et disponibles en plusieurs langues.
Stay tuned.cache="..." est mis sur le
<Land> directement (au lieu du cacheTTL
dans les Settings), alors SSI le
href="…" est positionné, on va cacher sur le site
local la définition provenant du site distant.LSContentsCalendar accepte maintenant 5 paramètres
supplémentaires. L'un indique si le calendrier doit faire appel à
un cartouche :
<param name="cartouche">true</param>.<param name="get-year">year</param><param name="get-month">month</param><param name="get-day">day</param><param name="root">/news</param>.
LSPage :
CargoCargo2Theme
et Language).
LSContentsLegal permet maintenant d'afficher un
texte légal standardisé. Les différents paragraphes du texte légal
peuvent être désactivés à la demande.LSColor a été créée. Elle permet
de créer des couleurs standards et de travailler la saturation et la luminosité.
$oBackground = new LSColor( 'gold' );
if ( isset( $_GET['color'] ) )
{
$oBackground->Set( $_GET['color'] ); /* Named colors */
}
$aColors = array();
$aRGB = array( 'r' => $oBackground->r,
'g' => $oBackground->g,
'b' => $oBackground->b );
$iRed = $aRGB['r'];
$iGreen = $aRGB['g'];
$iBlue = $aRGB['b'];
$aHSL = COLOR_rgb2hsl( $iRed,$iGreen,$iBlue );
/* Exactly 5 times */
for( $i = 0.1;$i < 1;$i += 0.2 )
{
$aHSL['l'] = $i;
$aHSL2 = COLOR_rgb2hsl( $iRed,$iGreen,$iBlue );
$aHSL2['l'] = 1 - $i;
$aRGB = COLOR_hsl2rgb( $aHSL );
array_push( $aColors,new LSColor( $aRGB ) );
}
$oBorder = new LSColor( $oBackground );
$oBorder->SetLuminosity( 0.85 );
LSXHtml.class.php (par exemple
LSXHtmlImg).
$oH = new LSXHtmlH( 2,"Téléchargements disponibles" ); echo $oH; $oH->Demote(); /* <h2> -> <h3> */ $oH->SetContents( "Dernière version" ); echo $oH;
<img> (LSXHtmlImg).
$oImg = new LSXHtmlImg( "/images/WebLogo.jpg" ); echo $oImg;L'utilisation de ce tag est particulièrement utile pour afficher des images sans se préocupper de toute une série de détails qui sont désormais extraits automatiquement de l'image (hauteur, largeur, et infos IPTC).
LSXHtml* est fourni à titre d'"experiment".LSLatin est une nouvelle classe qui permet de générer des
textes latins automatiques. Voyez l'exemple suivant :
<?php $oLatin = new LSLatin(); /* Latin object creation */
$aPara = $oLatin->Get( 5 ); /* 5 paragraphs at random */
$oPara = new LSXHtmlP( '' ); /* XHTML paragraph object */
foreach ( $aPara as $szPara ) /* For each paragraph */
echo $oPara->SetContents( $szPara ); /* Set content + print */
?>
ou ... sans la classe LSXHtmlP:
<?php $oLatin = new LSLatin();
$aPara = $oLatin->Get( 5 );
foreach ( $aPara as $szPara )
echo "<p>{$szPara}</p>;
?>
Les paragraphes proposés sont extraits de "De finibus bonorum et
malorum" et SONT GÉNÉRÉS AU HASARD."\vaesoli\latin\".xhtml="yes").IMG_RedChannel(): nouvelle fonction qui modifie une image
en ne retenant que son canal rouge.IMG_GreenChannel(): nouvelle fonction qui modifie une image
en ne retenant que son canal vert.IMG_BlueChannel(): nouvelle fonction qui modifie une image
en ne retenant que son canal bleu.IMG_Negate(): nouvelle fonction qui inverse les couleurs d'une
image.IMG_GrayScale(): nouvelle fonction qui transforme une image en
niveaux de gris.IMG_Brightness(): nouvelle fonction qui modifie la luminosité
d'une image. ENCORE AVEC UN LÉGER PROBLÈME DE SATURATION.IMG_Saturation(): nouvelle fonction qui modifie la luminosité
d'une image.IMG_Hue(): nouvelle fonction qui modifie la teinte d'une
image.IMG_GrayScale(): nouvelle fonction qui transforme une image en
niveaux de gris.IMG_Fog(): nouvelle fonction qui ajoute un effet de
brouillard sur une image. Ne fonctionne qu'avec les fichiers PNG.IMG_SaveAs(): nouvelle fonction qui sauve un fichier image
d'un format dans un autre. Seuls les trois formats suivants sont
gérés :
IMG_Resize(): nouvelle fonction qui redimensionne une image
suivant un degré de réduction donné.LSPage est maintenant MOINS gourmande et sa
taille est revenue à des proportions plus modestes quoique encore
importantes.{pageinfo} a été éliminé. Il est
remplacé par deux nouvelles classes: LSPageInfo et
LSContentsPageInfo qui fournissent les mêmes
fonctionnalités mais sous la forme d'îles.LSPageInfo. Ladite
classe n'est néanmoins pas encore finalisée (son utilisation n'est,
à ce stade, pas recommandée sauf pour test-beta).LSImage a été créé. Cette classe permet de
créer des images dynamiquement. Vous pouvez par exemple :
CacheIt() et UseCache() de
LSPage ont disparu. Elles sontremplacées par une classe
générique (LSCache) et les méthodes Write(),
Read(). Le cache doit encore être amélioré pour être
utilisé sur un archipel, et une île.LSIsland accepte désormais un paramètre
supplémentaire pour la construction de l'île :
with-div. Cela permet d'insérer des îles de contenu qui
ne seront pas entourées d'une division similaire à
<div class="LS_VAESOLI_CONTENTS_ISLAND" id="…">.
C'est particulièrement utile dans le cas d'îles qui doivent être
insérées à des endroits qui ne permettent pas l'inclusion de division,
comme dans la section <head>…</head>
du XHTML par exemple.LSContentsCharter.
Ce bug, bien que mineur, était gênant car il ne permettait pas la
validation du code (The
W3C Markup Validation Service).LSSourceFile a fait son apparition. Elle permet
de visualiser un fichier source avec des numéros de ligne (paramètre).LSContentsSourceFile utilise la classe
LSSourceFile pour insérer des îles de type
'fichier source'.LSContentsCartouche : nouvelle classe permettant
d'afficher une île entourée de bords ronds (rounded corners).
Les CSS doivent cependant être créés indépendemment comme dans
l'exemple suivant :
div.Rounded { margin : 0 5px;
background : #222;
padding : 0;
}
div.Rounded div.InnerRounded
{ margin : 0;
padding : 8px;
}
b.rtop, b.rbottom { display : block;
background : rgb(13,12,6);
}
b.rtop b, b.rbottom b { display : block;
height : 1px;
overflow : hidden;
background : #222;
}
b.r1 { margin : 0 5px;
}
b.r2 { margin : 0 3px;
}
b.r3 { margin : 0 2px;
}
b.rtop b.r4, b.rbottom b.r4 { margin : 0 1px;
height : 2px;
}
onfail d'une page
(<Land>…</Land>) peut maintenant gérer
un mailto: comme dans l'exmple suivant :
<!-- La condition n'est évidemment JAMAIS satisfaite -->
<Land id="/index.php"
condition=".php= return false;"
onfail="mailto:prenom.nom@domaine">
…
</Land>
phpDocumentor a
permis de créer une documentation "développeur". Une amélioration
sensible a été apportée à la qualité des exemples fournis.LSContentsBlogArchive a été créée pour lister
la liste des archives d'un blog. La classe ne fonctionne pas encore
correctement.TracingOutput est renommé LSTracingOutput.
<?php
/* Indiquer qu'on a besoin des classes de base de Vae Soli! */
require_once( $_SERVER['DOCUMENT_ROOT'] . '/vaesoli/include/LSVfc.class.php');
/* Créer une classe Application et lui dire
1) où est la racine du site
2) où est le géorama */
$oApp = new LSProgram( $_SERVER['DOCUMENT_ROOT'],
$_SERVER['DOCUMENT_ROOT'] . '/georama/georama.xml'
);
/* Faire tourner l'application */
$oApp->Run();
?>
LSApplication , LSGeorama et
LSPage ont été considérablement revues du point de vue des
traces qui étaient générées. Désormais, elles font appel à un objet
LSTracer qui offre des services génériques de traces.LSPage), si elles ne sont
pas préparées, sont héritées des traces de l'objet
LSApplication.GenerateDocType() n'existe plus. Elle est
remplacée par une méthode du même nom dans la classe
LSPage.Avec la version 2.0.0000, les changements dans Vae Soli! sont considérables et il n'y aura pas de compatibilité ascendante assurée. Néanmoins, la possibilité d'utiliser du XSL sur le géorama et le template permet de minimiser les influences.
200901081505'), soit vous lui assignez la valeur
'auto'. Dans ce dernier cas, la date de dernière mise à
jour correspond à l'île la plus ancienne de la page. Voici un exemple
de cette utilisation :
<Land id="/index.php" active="yes" editable="yes" group="main" ¶
creationdate="20081103" lupdate="auto" href="%geo-path%/index.xml">
<Sitemap priority="0.8" frequency="weekly" />
</Land>
<Vars>…</Vars> (en lieu et place des
tags <Variables>…</Variables>).
Chaque variable est maintenant insérée dans les tags
<Var name="…">…</Var>.
Ces changements ont été dictés par notre souci de diminuer le plus
possible la taille du géorama.macarte.xml', Vae Soli! cherchera un fichier
'macarte.xsl' et s'il le trouve, il
l'applique sur le géorama. Cela vous permet ainsi de disposer des
nouvelles fonctionnalités de Vae Soli! avec un minimum de modifications
sur les sites antérieurs construits avec les précédentes versions de
Vae Soli!.
<Georama>
<Vars>
<Var name="path" landscape="www.vaesoli.org;www.vaesoli.net">/org</Var>
<Var name="path" landscape="www.vaesoli.com">/com</Var>
</Vars>
…
</Georama>
template.xhtml',
Vae Soli! cherchera un fichier 'template.xsl'
au même endroit et, s'il le trouve, il l'applique sur votre template
(attention, celui-ci doit être construit comme du XML parfaitement
valide). Cela vous permet ainsi de disposer des nouvelles
fonctionnalités de Vae Soli! avec un minimum de modifications sur les
sites antérieurs construits avec les précédentes versions de Vae Soli!.LSCache.
sameas' sur une page
(<Land>…</Land>) n'est plus supporté.theme -> szThemelang -> szLanguagecargo -> szCargocargo2 -> szCargo2cargo3 -> szCargo35.0.0001, version beta, est disponible sur
la page des downloads.