Probleme avec les fonctions {if}{else if}{else}

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Pinpin31, 8 Mai 2015.

  1. Pinpin31
    Pinpin31 Nouveau WRInaute
    Inscrit:
    25 Décembre 2014
    Messages:
    3
    J'aime reçus:
    0
    Bonjour,
    Je suis en pleine modification/évolution de mon CMS (Arfooo) et je rencontre actuellement un problème en voulant utiliser les fonctions {if}{else if}{else} de smarty.

    Je souhaiterais permettre aux webmasters qui inscrivent leurs sites (et à moi même) de soumettre une description courte pour les pages catégories, nouveaux sites, etc... ET une description longue pour la fiche du site.
    Je précise que tout ce passe bien jusqu'au moment de l'affichage.

    D'origine Arfooo ce contente d'afficher une partie de la description longue. Voici le code utilisé:
    Code:
    {if isset($display.highlightKeywords)}
    {$site.description|htmlspecialchars_decode|strip_tags|truncate:$setting.numberOfCharactersForItemDescription|highlight:$display.highlightKeywords|nl2br}
    {else}
    {$site.description|htmlspecialchars_decode|strip_tags|truncate:$setting.numberOfCharactersForItemDescription|nl2br}
    {/if}
    
    Il va piocher dans la BDD la description du site et la coupe après un nombre de caractères défini par l'admin.

    J'ai donc pensé quand rajoutant les lignes ci-dessous je pourrais afficher soit la description courte si elle est présente, soit la description longue.
    Code:
    {if isset($site.metaDescription)}
    {$site.metaDescription}
    
    {elseif isset($display.highlightKeywords)}
    {$site.description|htmlspecialchars_decode|strip_tags|truncate:$setting.numberOfCharactersForItemDescription|highlight:$display.highlightKeywords|nl2br}
    
    {else}		{$site.description|htmlspecialchars_decode|strip_tags|truncate:$setting.numberOfCharactersForItemDescription|nl2br}
    {/if}
    
    Mais celà ne fonctionne pas... Les sites ne possedant pas de description courte n'affiche plus de texte à coté de leur thumbshot.

    J'ai bien essayé plusieurs variantes mais rien à faire...

    Merci d'avance
    Pinpin31
     
  2. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 828
    J'aime reçus:
    206
    pas d'idée, mais un conseil, plutôt que isset utilise !empty
     
  3. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
  4. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Bah non, ce n'est pas pareil.
    Les deux fonctions permettent de tester l’existence d'une variable. Mais empty test aussi que la variable n'est pas vide (vide == null == "" == false == array() et j'en oublie).
    En gros :
    PHP:
    <span class="syntaxdefault"><br />$test </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$test</span><span class="syntaxkeyword">));</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// true<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(!empty(</span><span class="syntaxdefault">$test</span><span class="syntaxkeyword">));</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// false<br /></span><span class="syntaxdefault"></span>
    En général, quand on récupère des données de la base, les variables existent toujours mais peuvent être vide.
     
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
    Je me suis mal exprimé, et j'ai lu la phrase de M-A à l'envers (plutôt que !empty utilise isset) :D
     
  6. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 828
    J'aime reçus:
    206
    :D :D aujourd'hui est un grand jour, pour une fois que j'ai techniquement raison contre spout :D :D
     
  7. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 170
    J'aime reçus:
    344
    Stop le dev pr moi ajd ça vaut mieux j'pense :lol:
     
  8. Pinpin31
    Pinpin31 Nouveau WRInaute
    Inscrit:
    25 Décembre 2014
    Messages:
    3
    J'aime reçus:
    0
    [Résolu] Probleme avec les fonctions {if}{else if}{else}

    Merci beaucoup Marie-Aude !
    Effectivement, en remplaçant "isset" par "!empty" tout fonctionne parfaitement.

    Merci également aux autres intervenants.
     
Chargement...
Similar Threads - Probleme fonctions {if}{else Forum Date
Problème de fonctions synchrone/asynchrone Développement d'un site Web ou d'une appli mobile 24 Janvier 2021
Problème avec mes fonctions latex sur mon site URL Rewriting et .htaccess 17 Novembre 2008
[Reglé][Maths 1ereS] Problème ac fonctions trinomes Le café de WebRankInfo 11 Octobre 2004
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web Lundi à 12:12
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Probleme de visibilité de ma page Facebook Facebook 5 Juillet 2022
problème avec le développeur Droit du web (juridique, fiscalité...) 22 Juin 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022
Problème : Google Crawl et Index des pages en No Index et bloqué par le robot.txt Crawl et indexation Google, sitemaps 26 Avril 2022
Problème avec GA4 : nb de visiteurs temps réel et par jour Google Analytics 19 Avril 2022
Problème indexation pages précises en React.js Débuter en référencement 19 Avril 2022
Problème de référencement Demandes d'avis et de conseils sur vos sites 8 Avril 2022
Problème adsence : Annonces ne s'affichent plus AdSense 10 Mars 2022
problèmes procédures stockées Administration d'un site Web 9 Mars 2022