Forum CMS Made Simple FR

Version complète : AdvancedContent, utilisation judicieuse
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

guismo20

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.9.2
#~ Nom de l'hébergeur : infomaniak
#~ Informations Système :
#~ déjà mis il n'y a pas longtemps mais je ne pense pas que ce soit lié à ma question, je les mettrai si demandés
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~

Bonjour à tous, voilà, je continue ma découverte de cmsms et je continue de bricoler pour avoir le meilleur rendu possible tant côté utilisateurs qu'admin
j'utilise pas mal les blocks de contenu (1,2,3,4 ...) mais je pense que ca deviendrait rapidement très lourd et illisible du côté de l'édition/création de pages.
Donc du coup je me tourne vers "AdvancedContent" qui me plait bien dans le sens où je peux créer des "tabs" (en francais ca doit se dire "menu" (je suis trop habitué à faire mes recherches en anglais ! Smile )) ce qui allège la structure de l'édition de pages notamment dans l'idée future de laisser des utilisateurs créer eux mêmes leurs pages pour le site.
Après, j'ai le problème que j'ai plusieurs types de pages dans mon site, donc plusieurs types de contenus et que si je propose 50 blocks de contenu différents sur une page, de un c'est super lourd et de deux les utilisateurs risquent de s'amuser dans leur choix, donc oui ce n'est pas la solution !

donc je me disais que ce qui devait être jouable pour ce type de besoin, hormis l'utilisation de 50 gabarits différents sachant que seuls le contenu et son affichage changent dans mes pages, c'était l'utilisation de blocs de contenus globaux ou de balises utilisateurs appelant pour chaque type de page des blocs de contenus différents .

je suis un peu (beaucoup) newbie dans l'utilisation des cms donc je voulais juste savoir si ma démarche était la bonne ou si j'avais loupé une grosse subtilité de cmsms
merci Wink
Bonjour guismo,

Je dirais qu'il n'y a pas forcément qu'une seule bonne manière de faire vu la souplesse du CMS Wink Tu as combien de gabarits différents à présenter à tes utilisateurs ?
Pour moi, la solution la plus simple si tes utilisateurs doivent créer et gérer des pages côté admin, c'est tout de même de créer un gabarit différent à chaque fois. Ainsi, ils n'ont qu'à choisir le bon gabarit via le menu déroulant approprié. AdvancedContent peut également bien t'aider à ce niveau-là.

Pour les blocs de contenus globaux, ca te sera surtout utile pour les blocs récurrents à travers les pages. Par exemple un encart avec les coordonnées, le footer, un numéro de téléphone, javascript, .. Mais sinon, je pense que ta démarche est la bonne Wink

guismo20

salut, merci pour ta réponse,
en l'état actuel des choses, je n'utilise qu'un seul gabarit, j'ai réussi à proposer différents éléments dans le header, footer et menu, avec l'aide de "capture" ou de "if $content_obj->mProperties->" et des "attributs supplémentaires", il n'y a au final que ma partie contenu qui diffère dans son affichage donc il serait dommage de proposer 50 fois le même gabarit avec simplement les "content blocks" qui différent, ce serait un peu retourner à l'époque des pages statiques et toutes modifications du gabarit m'obligeraient à modifier les 50 Wink
là ce que j'aimerai faire au final c'est un peu un site en 2 parties, d'un côté "header, menu et footer", de l'autre simplement le "contenu"
au final la premiére partie avec mon astuce je l'adapte facilement et de manière quasi infinie à mon type de page, exemple :

Code :
{if $content_obj->mProperties->mPropertyValues.extra3 == ''}
<li>
                    <center><h3 style="color: #0000FF"><img src="http://www.i-parrot.net/valkje3.gif" alt="calopsitte 1" /><span>  Sous menu  </span><img src="http://www.i-parrot.net/valkje2.gif" alt="perruche calopsitte 2" /></h3></center>
                    <ul class="blocklist">

<div id="menu_vert">
                       {menu template='simple_navigation.tpl' start_level='2'  collapse="1"}</div>
                    </ul>
                </li>
{else}
<li>
                    <h4 style="color: #0000FF">Le site en chiffres</h4>
<b>{count_pages} pages</b><br />
<b>{count_comments_global}</b><br />
<b>{count_gallery_items} fiches</b> perroquets/perruches et <br /><b>{count_gallery} photos</b> dans la mégabase !<br />
<b>{literal}<script language="Javascript" src="http://www.i-parrot.net/counter/counter.php?page=compteursite"><!--
//--></script>
{/literal} visiteurs</b> depuis le 09/01/2011
</li>
{/if}

donc ce que je cherche c'est d'en faire de même pour le côté admin (édition/création pages) en gardant de la simplicité et de la clarté Smile
Ok je vois - il faudrait pouvoir importer des gabarits dans des gabarits, mais ca je crois effectivement que ca n'est pas possible avec CMSMS. A moins que quelqu'un ait une solution ? Ca en aiderait plus d'un je pense... Wink

Sinon effectivement, tu peux jouer avec AdvancedContent ou CGContentUtils (peut-être moins complet, mais évite d'ajouter un nouveau type de contenu).

guismo20

voilà c'est exactement ca une partie gabarit 1 qui gère tout (head et body) sauf la partie contenu qui elle contient différents blocs et donc aussi différents types d'affichages de ces blocs et seulement ces blocs dans l'administration de cette page.
Mais je pense que je vais partir comme on l'a dit sur des udt ou des blocs de contenus globaux qui contiendront les blocs et leurs styles (sans le css bien-évidemment) ce qui permettra d'avoir une admin avec seulement les blocs désirés d'affichés et non pas tous les blocs crées comme je devrai le faire avec des pages totalement similaires ...

guismo20

je suis en train de tester une autre solution : mettre en bloc de contenu globaux mon header d'un côté et mon menu et footer de l'autre, comme ca j'utilise des gabarits identiques et dés que je modifie quelque chose en dehors du contenu qui lui du coup est seul déclaré de maniére unique dans le gabarit (avec la partie <head></head>), ca se modifie dans toutes les pages puisque c'est fait dans le bloc de contenu global, je ne sais pas si c'est vraiment top comme solution mais ca à l'air de marcher correctement
Pas mal comme idée, mais je me demande s'il n'y a pas un traitement spécial du header. Il arrive parfois que des variables soient accessibles dans le "<head>" et non dans "<body>". Mais si ca marche, reste là dessus Smile

guismo20

en fait, pour expliquer ce que j'ai fais (ca pourra certainement servir à d'autres, même si je ne sais pas si ma technique est très "propre" et en adéquation totale avec le but de fonctionnement de cmsms)

Citation :<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>{title} - {sitename}</title>
{metadata}
{cms_stylesheet}
</head>
<body><a name="hauttop"></a>

{global_content name='headersite'}
<div id="body">
<!-- start content -->
<div id="content">

mon contenu avec mes "content blocks"
{global_content name='addthis'}
</div>
<!-- end content -->
{global_content name='menuetfooter'}
</body>
</html>

tout ce qui est en rouge et en bleu est commun à tous mes gabarits, la partie bleue contient la structure globale de la page qui logiquement ne bougera pas et la partie <head>, comme ca pas de problèmes concernant les infos spécifiques à la page.
La partie rouge, c'est mes "global contents" qui contiennent chacun des parties du site (en gros le header, le menu latéral et le pied de page) qui elles peuvent évoluer.
La dernière partie c'est le contenu qui lui est propre à chaque gabarit.

Ainsi si je veux modifier mon header ou mon menu latéral qui sont communs à tous mes gabarits, j'ai juste à modifier mon "{global_content name='headersite'}" et il se modifie pour tous mes gabarits, c'est un peu du bricolage maison mais visiblement ca marche bien et ne ralentit pas spécialement mes pages Wink

ps : info importante, désactivez le wysiwyg pour les global contents, sinon ca ré-interprète le code et ca peut poser de très embêtants problèmes d'affichage de vos pages !

Si vous avez des questions, remarques, ou meilleures idées, n'hésitez pas Wink