FLUX RSS



ACCUEIL / FORUMS / DESIGN / PERSONALISER L'AFFICHAGE DES ARTICLES VIA {$MODULE_RESULT.CONTENT}




sondages
Avez-vous déjà utilisé les exports statiques ? :
oui
non
RESULTATS | SONDAGES
liens
eZ systems
http://ez.no
PHPEdit
http://www.waterproof.fr/
AFUL
http://www.aful.org
Framasoft
http://www.framasoft.net
Personaliser l'affichage des articles via {$module_result.content}

Vous devez être connecté pour utiliser le forum. Vous pouvez le faire ici.

Auteur Message

Sébastien Harant

Jeudi 13 Octobre 2005 2:21:19 pm

Personaliser l'affichage des articles via {$module_result.content}

Bonjour

Je cherche à modifier la présentation générale des dossiers et des articles gérée par le modèle './design/base/templates/pagelayout.tpl'. J'ai vu que tout le contenu principal des pages du site (<div class="content-view-full"> ) est stocké dans la variable {$module_result.content}.

Est-ce que quelqu'un sait comment modifier sa valeur afin de pouvoir personnaliser l'affichage des articles à sa guise? Je cherche en fait à n'afficher que quelques articles (prédeterminés par l'administrateur) en leurs associant une image et un résumé.

Merci de votre aide!

J-A Eberhard

Jeudi 13 Octobre 2005 4:42:56 pm

Re: Personaliser l'affichage des articles via {$module_result.content}

Le contenu de {$module_result.content} est celui du template en mode 'full' de l'objet qui est affiché.
Prenons le cas le plus courant, je clique sur un lien du menu qui correspond à un folder, le template qui est utilisé est alors l'override de /node/view/full/ pour la classe folder. C'est ce template qui va alors utiliser le templates d'override en mode 'line' pour les objets qui se trouvent en dessous du folder (si 'show the children' est activé).
Donc, paramêtrer {$module_result.content} reviens à:
- Modifier la fonction fetch du template full de la classe folder pour le neoud en question
- Modifier les templates line des objets en-dessous de ce folder
Simple à dire, cela prend plus de temps à faire, un conseil, passe en mode debug avec 'disply template inline, comme cela tu sais ou il faut changer qcq.
jacques-André

Sébastien Harant

Mercredi 19 Octobre 2005 10:09:48 am

Affichage en page d'acceuil d'articles dans un dossier particulier

Merci pour votre réponse.

Je viens de créer un modèle de surchage pour l'affichage de ma page d'acceuil ('full/folder.tpl') à partir d'une copie de celui d'origine. J'ai modifier le contenu de la baslise '<DIV class="content-view-children">...</DIV>' ce qui m'a permis de structurer mon intéface comme je le souhaitai. Malheureuseument, je n'arrive pas à accéder aux quelques articles que je souhaite afficher sur cette page. Les articles que je souhaite afficher sont content dans un dossier ayant pour identifiant de noeud la valeur 72. J'aimerai pouvoir accéder à la liste de ces articles et les afficher selon un modèle que je définirai par la suite. Mon code est le suivant :

{section var=child loop=$list_items sequence=array(bglight,bgdark)}
. {def $noeudNouvelles=fetch( 'article', hash( 'parent_node_id', 72 ) )}
. {node_view_gui view=line content_node=$noeudNouvelles}
. {undef}
{/section}


Y a t'il un paramètre incorrect? Que dois-je modifier pour ne pas accéder uniquement au dossier 'Nouvelles' (id = 72)?
Merci.

Stéphane Bullier

Mercredi 19 Octobre 2005 11:13:16 am

Re: Personaliser l'affichage des articles via {$module_result.content}

Bonjour,

Tu peux essayer de faire un include d'un fichier tel que "article_recent" dans la pagelayout comme ça :

{include uri='design:dossier_perso/news.tpl'}

et c'est dans cette template que tu fais un fetch sur ton dossier 72.

Sinon, pour pointer sur la page d'accueil sur un dossier en particulier, il faut ajouter au fichier site.ini.append.php de ton settings/siteaccess/ton_site : IndexPage=/content/view/full/id_dossier

Cordialement.

Stéphane

Sébastien Harant

Mercredi 19 Octobre 2005 12:10:26 pm

Re: Personaliser l'affichage des articles via {$module_result.content}

J'ai créé le fichier 'tyoArticlesAcceuil.tpl' dans le dossier './design/news/templates/' ('news' étant là ou sont stokés mes modèles de surcharge) et j'ai ajouté la ligne dans le modèle 'pagelayout' utilisé :

{include uri='design:news/tyo_ArticlesAcceuil.tpl'}

Ce fichier contient uniquement le code cité plus haut entre le '<def ' et le '<undef>'.

Je ne suis pas sûr d'avoir placé ce fichier au bon endroit et s'il est bien chargé au démarrage de la page. De même, je ne suis pas sûr non plus que l'ajoût de la ligne

IndexPage=/content/view/full/76

en fin de mon fichier 'site.ini.append.php' soit efficace car l'affichage de ma page d'acceuil reste inchangé. J'ai remis le modèle full/folder tel qu'il était à l'origine.

Je ne maîtrise pas bien le langage utilisé pour les modèles sous eZ publish. Pouvez-vous m'expliquer ce qui ne va pas dans mon code ou dans l'architecture de mes fichiers?

Merci pour votre patience!

Stéphane Bullier

Mercredi 19 Octobre 2005 2:51:52 pm

Re: Personaliser l'affichage des articles via {$module_result.content}

Bonjour,

En effet, je n'avais pas fait attention à ton code et il semble qu'il ne soit pas correct :
si tu veux parcourir un dossier et afficher les enfants tu dois utiliser 'list'

{def $noeudNouvelles=fetch( 'content', 'list', hash( 'parent_node_id', 72 ) ) }
{foreach $noeudNouvelles as $NoeudNouvelles}
{node_view_gui view='line' content_node=$noeudNouvelles}
{/foreach}


Voir la doc :Ezpublish : http://ez.no/doc/ez_publish/techn...modules/content/fetch_functions/list

Ensuite, il faut que tu crées dans ton design/ton_site/override/templates/ un fichier vue_ligne_nouvelle.tpl en utilisant
{attribute_view_gui attribute=$node.object.data_map.les_attributs_article}

Bon courage.

Stéphane

Sébastien Harant

Jeudi 20 Octobre 2005 11:03:19 am

Récuperer les valeurs des champs d'un objet

Bonjour,

J'arrive à accéder aux articles de mon dossier "Nouvelles"! Merci pour l'astuce!
Cependant, je n'arrive pas à modifier mon modèle de manière à obtenir uniquement les attributs de ces articles qui m'intéresse. J'aimerai pouvoir affichier, via un tableau en HTML, aux différents champs de l'objet 'Article' (titre, description rapide, image associée et lien vers l'article complet).

J'ai réussi à obtenir le titre des articles grace au code suivant :

{def $articles=fetch( 'content', 'list', hash( 'parent_node_id', 72 ) )}
{foreach $articles as $article}
<H2>{$article.name|wash}</H2>
{/foreach}


Est-il possible d'accéder champs par champs à la structure d'un article?

Merci,
Tyozeb.

PS : Comment faîtes-vous pour afficher du code dans un cadre d'édition?

Stéphane Bullier

Jeudi 20 Octobre 2005 11:32:18 pm

Re: Personaliser l'affichage des articles via {$module_result.content}

Bonjour,

Oui, il suffit que tu utilises l'opérateur : attribute_view_gui qui retourne le contenu dans chaque attribut d'une classe.

Pour un article ayant par exemple une intro (bloc texte) et un corps (champ xml), il suffit d'écrire :

{def $articles=fetch( 'content', 'list', hash( 'parent_node_id', 72 ) )}
{foreach $articles as $article}
<h2>{$article.name|wash}</h2>
<p>{attribute_view_gui attribute=$article.object.data_map.intro}</p>
{attribute_view_gui attribute=$article.object.data_map.corps}
{/foreach}


Pour faire apparaître le code dans un cadre, il faut utiliser "code" et "/code" entre <>.

Sinon, il peut être utile de savoir que tu peux accéder à l'ensemble des données d'un node en écrivant :
{$node|attribute(show,1)}

sachant que ce code te renverra le contenu du node dans lequel tu te trouves.

A+

Stéphane

Sébastien Harant

Mercredi 02 Novembre 2005 4:27:15 pm

Champs d'un objet

Bonjour

Me revoilà. Merci beaucoup pour vos explications! J'ai complètement changé l'affichage de mes articles en page d'accueil mais il me reste un problème. Comment peut-on connaître la liste des attributs contenu dans un objet? Il me manque encore le chemin de l'image associée à mon article et le lien permettant de lire la suite. J'ai essayer de réutiliser le code du modèle que j'ai écrasé mais ça ne semble pas marcher... .

{attribute_view_gui attribute=$article.data_map.image 
image_class=$object_parameters.size 
href=$link_parameters.href|ezurl 
target=$link_parameters.target 
link_class=$link_parameters.classification 
link_id=$link_parameters.id}


En faisant cela, seul le nom de l'image apparaît sous forme d'un lien dont même l'administrateur ne peut accéder. Existe t-il une doc sur le sujet?

Encore merci.

Stéphane Bullier

Lundi 07 Novembre 2005 12:04:17 pm

Re: Personaliser l'affichage des articles via {$module_result.content}

Bonjour,

Il faut mieux écrire :

{attribute_view_gui attribute=$article.object.data_map.image}


Dans ton cas, le type de donnée du champ image est-il bien "image" ? Ou est-ce que l'image est un objet relié et qu'ensuite tu l'insère dans le blockXML corrrespondant au corps de l'article ?

Tu peux regarder ici pour l'extraction des infos d'un objet :
http://ez.no/doc/ez_publish/techn...language/array_and_object_inspection

Cordialement.

Stéphane

actualités
Traduction d'un tutorial eZ
eZ publish 4.0 est sorti
EzPublish 3.9 enfin disponible !
Ez Publish 3.9 RC2 est en ligne !
Ez Publish 3.9 RC1 disponible !
références
Site ohmycom
OhmyBlog