CityDesk

Gestion de Contenu de Bureau

Copyright 2001-2002 Fog Creek Software. Tous Droits Réservés.

Traduction en cours par elanceur
[ Retour Sommaire Général Aide > MenuAideCityDesk/CreerDesMasques/NegocierAvecdesChampsManq.html ]

Négocier Avec des Champs Manquants

Parfois vous voulez créer un masque qui s'affiche différemment en fonction des champs qui sont remplis dedans. Par exemple, un listing d'annonces immobilières pourrait afficher des images de maisons à vendre si elles sont encore à vendre, et dans les autres cas automatiquement y substituer une image du Château de Neuschwanstein. Cela peut être réalisé avec if blocks.

Supposons que vous ayez le masque simple suivant :

<html>
<head><title>{$ .headline $}</title></head>
<body>
    <h1>All About {$ .headline $}</h1>
    {$ .body $}
</body>
</html>

Si l'article contient un titre, disons, Monkeys, et un corps d'article, disons, Monkeys are our friends, cela affichera exactement comme vous voulez :

<html>
<head><title>Monkeys<title></head>
<body>
    <h1>All About Monkeys</h1>
    Monkeys are our friends
</body>
</html>

Mais si l'article ne contient pas de titre, vous obtenez :

<html>
<head><title><title></head>
<body>
    <h1>All About </h1>
    Monkeys are our friends
</body>
</html>

Le manque d'un titre est un problème, et avoir "Qui sommes-nous ?" comme titre est un peu laid. Cela peut être résolu en utilisant les blocs if blank ou if nonblank  pour détecter les champs manquants et faire quelque chose de différent. La syntaxe du bloc if est :

{$ if blank .field $}
texte conditionnel
{$ endif $}

ou :

{$ if nonblank .field $}
texte conditionnel
{$ endif $}

Dans le premier cas de figure, tout ce qui est contenu à l'intérieur du bloc (texte conditionnel) est affiché si, et seulement si, le champ est blanc. Dans le second cas, tout ce qui est à l'intérieur du bloc est affiché si le champ n'est pas vide. Ainsi nous pouvons fixer nos masques comme suit :  

<html>
<head>
    <title>
        {$ if blank .headline $}
            Another Article
        {$ endif $}
        {$ if nonblank .headline $}
            {$ .headline $}
        {$endif$}
    </title>
</head>
<body>
    <h1>
        {$ if blank .headline $}
            Another Anonymous Article
        {$ endif $}
        {$ if nonblank .headline $}
            All About Négocier Avec des Champs Manquants
        {$endif$}
   
</h1>
    {$ .body $}
</body>
</html>

Vous pouvez utiliser if avec n'importe quel nom de variable ou  nom de champ. Vous pouvez même l'utiliser à l'intérieur d'une boucle :

{$foreach x in (all)$}
    {$x.headline$}
    {$ if nonblank x.sidebar $}
        With Sidebar!
    {$endif$}
    {$ if blank x.sidebar $}
        No Sidebar on this one.
    {$endif$}
    <br>
{$next$}