Forum CMS Made Simple FR
Afficher une div si la balise content est présente - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html)
+--- Sujet : Afficher une div si la balise content est présente (/thread-987.html)



Afficher une div si la balise content est présente - alas - 15/02/2011

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.9.3
#~ Nom de l'hébergeur :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.9.3
#~ Installed Modules:
#~ * CMSMailer: 2.0.1
#~ * FileManager: 1.1.0
#~ * MenuManager: 1.7.5
#~ * ModuleManager: 1.4
#~ * News: 2.11.1
#~ * nuSOAP: 1.0.2
#~ * Printing: 1.1.2
#~ * Search: 1.6.10
#~ * ThemeManager: 1.1.4
#~ * TinyMCE: 2.8.3
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * output_compression: false
#~ * max_upload_size: 2000000
#~ * default_upload_permission: 664
#~ * url_rewriting: none
#~ * page_extension:
#~ * query_var: page
#~ * image_manipulation_prog: GD
#~ * auto_alias_content: true
#~ * locale:
#~ * default_encoding: utf-8
#~ * admin_encoding: utf-8
#~ * set_names: true
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~


Bonjour, j'ai vu qu'il etait possible d'avoir plusieurs balise "content" dans un gabarit, cependant est t'il possible d'afficher une div seulement si une de mes balises "content" n'est pas vide.

En gros je voudrais afficher la div avec son contenu seulement si l'utilisateur a insérer du texte dans l'administration.

Merci pour votre aide


Afficher une div si la balise content est présente - bess - 15/02/2011

passe par des tests smarty

Code :
{capture name=myContent}{content}{/capture}

{if $myContent.strlen() > 0}
  <div>{$myContent}</div>
{/if}



Afficher une div si la balise content est présente - alas - 15/02/2011

J'avoue que j'ai un peu de mal avec les tests smarty, il faut que je mette ce code directment dans mon gabarit ??

J'ai appeler mon bloc de la facon suivante comment se presente la syntaxe du cou ??

{content block="bloc_droit" label="bloc_droit"}
Code :
{capture name=myContent}{content block="bloc_droit"}{/capture}

{if $myContent.strlen() > 0}
  <div>{$myContent}</div>
{/if}

Merci


Afficher une div si la balise content est présente - bess - 15/02/2011

tu as tout bon Smile


Afficher une div si la balise content est présente - jce76350 - 19/02/2011

- Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.


Afficher une div si la balise content est présente - rtlinfo - 18/05/2011

Bonjour

Je tente de mettre en place le code signalé ci dessus pour n'afficher un "content block" que s'il n'est pas vide (dans la page affichée)

Dans mon template, je mets ceci :
Code :
{* bloc 1 DEBUT *}        
         {capture name=contenuBlocGauche1Titre}{content block="Bloc Gauche 1 (titre)"}{/capture}
         {if $contenuBlocGauche1Titre.strlen() > 0}
            <div class="sbar-top">
              <h2 class="sbar-title">{content block="Bloc Gauche 1 (titre)" oneline="true"}</h2>
            </div>
        {/if}


Mais ce code me génère l'erreur smarty suivante:

Code :
string(178) "Smarty error: [in tpl_body:100 line 80]: syntax error: variable function call '$contenuBlocGauche1Titre.strlen' not allowed in if statement (Smarty_Compiler.class.php, line 1403)" string(173) "Smarty error: [in tpl_body:100 line 86]: syntax error: variable function call '$contenuBlocGauche1.strlen' not allowed in if statement (Smarty_Compiler.class.php, line 1403)"
J'ai beau regarder mon code, je trouve pas l'erreur !

La voyez vous ?

Merci d'avance


Afficher une div si la balise content est présente - rtlinfo - 18/05/2011

Il semble que cela s'est résolu

Après pause d'1/2h, j'ai supprimé des fichiers obsolètes dans mon dossier uploads et puis fais un nouveau refresh de page ; et j'ai plus l'erreur smarty

Bizarre... Bizarre

PS : n'étant pas à l'origine de ce fil de discussion, je ne peux et/ou ne sais si je dois mettre "résolu"


Afficher une div si la balise content est présente - rtlinfo - 18/05/2011

Bizarre, bizarre, ça marche un coup sur deux !

j'édite mon gabarit (avec le code indiqué ci dessus permettant d'afficher bloc1 titre et bloc 1 s'ils sont pas vides

je ne modifie rien et je clique sur "Envoyer"

Je fais un refresh (Ctrl F5) de la vue de mon site sur une autre fenêtre du navigateur (ouverte en permanence)

J'ai l'erreur !

Je refais refresh ! elle disparait !

J'ai fait des essais en vidant le cache préalablement à la ré-exécution des manips précitées ; pareil !


Bizarre non ? je pense que c'est smarty qui en est la cause (cache interne, ou je ne sais quoi)

Quelqu'un a t il eu ce genre de soucis ?


Afficher une div si la balise content est présente - Rémy - 03/05/2012

Salut,
Je viens de galérer sur le même problème (presque un an plus tard ^^) et c'est ton utilisation de {capture} qui pêche...
Il faut faire le {if} sur la variable $smarty comme ça
Code :
{if $smarty.capture.contenuBlocGauche1Titre != ""} Ok {else} Pas Ok {/if}

En espérant que cela aide quelqu'un