exclure un bloc de certaines pages - 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 : exclure un bloc de certaines pages (/thread-32.html) |
exclure un bloc de certaines pages - maaanu - 05/08/2009 Bonjour à tous, Je découvre CMS Made Simple, et je suis assez bluffé par la souplesse du système. Je bute sur un petit problème actuellement (parmi d'autres que je crois pouvoir résoudre tout seul) : Je cherche (bêtement) à exclure un bloc de certaines pages. J'imagine qu'il doit bien y avoir un moyen de faire ça. J'aimerai éviter de créer deux gabarits (l'un "normal" et l'autre sans le bloc). Est-ce que quelqu'un peut m'éclairer là dessus? Impossible de trouver une piste dans la doc... (je trouve ça bizarre, j'imaginais que c'était quelque chose qui revenais souvent...) Merci d'avance Manu. (et j'espère avoir posté dans la bonne catégorie... toute mes excuses si ce n'est pas le cas) exclure un bloc de certaines pages - Jean le Chauve - 05/08/2009 Il faut une condition : j'affiche si... ou je n'affiche pas si... Donc : {if $variable=="0"}{blocConditionnel}{/if} exclure un bloc de certaines pages - maaanu - 05/08/2009 Ah... Je pensais à un truc plus simple (genre excludeprefix du menumanager). Mais si ça n'existe pas, je vais voir de ce côté. Merci beaucoup. exclure un bloc de certaines pages - spamor - 16/02/2010 Bonjour Etrange, je n'arrive pas à faire fonctionner cette condition qui me permet : - si l'image associée à la page est renseignée, on affiche une <div> avec cette image de fond - sinon, on n'affiche rien Code : {if !empty($page_image)} Merci pour vos lumières exclure un bloc de certaines pages - Jean le Chauve - 16/02/2010 Enlève les apostrophes : (uploads/images/{page_image}) Également, tu utilises 1 fois $page_image et la fois suivante sans le $. exclure un bloc de certaines pages - spamor - 17/02/2010 Merci pour ton aide. Concernant les apostrophes, j'ai essayé en les supprimant, ou en les remplaçant par des guillemets > même souci ; normal me direz-vous, c'est de la syntaxe css Concernant ta remarque, le test "if" génère une erreur sans le $ ; inversement j'ai bien ajouté le $ à la 2eme occurence de page_image ce qui donne : Code : {if !empty($page_image)} exclure un bloc de certaines pages - spamor - 17/02/2010 Alors là, bizarre... la condition doit se faire avec le $ mais l'affichage de l'image, sans le $, sinon elle ne s'affiche pas (pas trouvée par le serveur, pas affichée dans le code...) Le test doit donc donner ceci : si je trouve l'image associée à l'article, je l'affiche en fond de bloc, sinon je n'affiche rien (ni bloc ni image) : Code : {if !empty($page_image)} On en revient au début... :/ exclure un bloc de certaines pages - spamor - 17/02/2010 J'abandonne, ou plutôt je m'adapte : j'utilise un gabarit pour les pages avec image de fond, et un autre gabarit pour les pages "simples" Pourquoi faire compliqué quand on peut faire simple exclure un bloc de certaines pages - Jean le Chauve - 17/02/2010 Tu utilises la balise utilisateur {page_image}. Cette dernière affiche le nom du fichier image uploadé dans les options de la page. Elle est équivalente à cette balise : {$content_obj->GetPropertyValue('image')} (ce sont deux manières différentes d'appeler le nom du fichier). Logiquement, tu dois faire ceci : {if (!empty({page_image}))} Mais, tu reçois alors une erreur, tu ne peux pas placer des accolades dans une accolade. Alors, la bonne syntaxe est celle-ci : Code : {capture name='image'}{page_image}{/capture} exclure un bloc de certaines pages - Jean le Chauve - 17/02/2010 Par contre, ton idée de départ de placer en background une image qui n'apparait que dans une seule page n'est peut-être pas la plus efficace. Tu utiliseras background dans le cas où cette image est répétée dans plusieurs pages. Donc, le mieux pour ton cas est celui-ci (enfin, je pense) : Code : {capture name='image'}{page_image}{/capture} exclure un bloc de certaines pages - spamor - 17/02/2010 Merci pour la doc, j'avais également testé le code trouvé sur cette page officielle : http://www.smarty.net/manual/en/tips.php#tips.blank.var.handling En fait ma démarche est de créer sur certaines pages, une div contenant une image de fond, différente selon l'article où on se trouve. Article 1 affiche l'image "main', article 3 affiche l'image "tête" et d'autres articles n'affichent rien. D'où l'intérêt d'utiliser page_image. Je ne connaissais pas capture mais vais tester cela lorsque je replongerai dans mon projet exclure un bloc de certaines pages - Jean le Chauve - 17/02/2010 Je ne vois pas l'intérêt d'utiliser page_image. Le module article te permet de spécifier une catégorie (ce qui semble être ton cas). Tu peux assigner un gabarit spécifique pour chaque catégorie. C'est donc dans ces gabarits que tu dois simplement ajouter une div (span) avec une classe du nom de la catégorie et qui aura une propriété background-image. Et non pas travailler dans le gabarit de page. exclure un bloc de certaines pages - spamor - 18/02/2010 Je pense même qu'en utilisant un seul gabarit cela doit être possible ? On récupère la catégorie (identifiant unique ?) associée à l'article, puis on appelle une classe css nommée selon cette catégorie / cet identifiant ? C'est ce que je tentais de faire au départ, mais je n'ai pas su utiliser la variable content_id ; d'où mon utilisation de page_image dans un style css associé à la div (ce qui ne sépare pas à 100% le style du contenu mais semblait une bonne solution) Il faut se mettre à la place de la personne qui va ajouter des contenus au site sans être webmaster, page_image permet cette flexibilité. PS : Aucun souci avec la fermeture de l'autre topic |