CMS Automne
http://www.automne-cms.org/forum/

[Résolu] Afficher les actualités
http://www.automne-cms.org/forum/viewtopic.php?f=2&t=810
Page 1 sur 1

Auteur:  taeky [ Lun Mars 28, 2011 10:19 am ]
Sujet du message:  [Résolu] Afficher les actualités

Bonjour,

Je commence par vous félicité pour ce fabuleux CMS :D . Je suis encore en phase de test en local mais j'avoue que plus je me penche sur les Automne et plus votre CMS me donne envie de convertir mes quelques sites.

Je rencontre une difficulté :cry: . Il faut dire que Automne est assez déroutant au départ.

J'ai réussi à adapté en partie le template d'un de mes site, a créer quelques pages pour tester :D
Je voudrais rajouter maintenant la partie Blog du site en question.
Le blog est accéssible aux internautes par un menu haut "ACTUALITES" qui affiche dans une page les 10 derniers articles.

J'ai donc crée dans l'admin > actualités > gestion des catégories, mes différentes catégories d'articles du blog.
J'ai créer ma page "Actualités" (qui à l'ID 5) dans laquelle j'ai mis la rangée nouvellement crée, nommée "Blog".
Lorsque je vais sur la rubrique Actualité, la page reste vide.

Pour la rangée "Blog", j'ai utilisé le code proposé dans le forum:
Code :
<row>
   <!-- Accès au module actualités en langue française -->
   <block module="pnews" id="actus" language="fr">
     <!-- Objet du module sur lequel va porter la rechercher, nom de la recherche -->
     <atm-search what="{Actualites}" name="actualites">
       <!-- Paramètre de filtre facultatif qui permet de restreindre l'affichage à une catégorie-->
       <atm-search-param search="actualites" type="{Actualites:Categorie:fieldID}" value="block" mandatory="false" />         
       <!-- Nombre d'éléments à afficher, ici on laisse le choix à l'utilisateur avec la valeur block-->
       <atm-search-limit search="actualites" value="block"/>
       <!-- Trie les éléments par date de début de publication en ordre décroissant -->
       <atm-search-order search="actualites" type="publication date after" direction="desc"/>
       <!-- Résultats de la recherche -->
       <atm-result search="actualites">
         <!-- On affiche le titre de l'actualité et un lien vers la page dédiée si il y a un article -->
         <atm-if what="{Actualites:Texte:value}" name="lien">
            <h2><a href="{page:ID_PAGE:url}?item={Actualites:id}">{Actualites:Titre:value}</a></h2>
         </atm-if>   
         <!-- Sinon on affiche juste le titre -->
            <atm-else for="lien">
            <h2>{Actualites:Titre:value}</h2> 
            </atm-else>
         <!-- On affiche la date de début de publication -->
         <p>{Actualites:formatedDateStart|d/m/Y}</p>
         <!-- Si il y a une image, on affiche la vignette, pour le savoir on teste s'il y a une valeur pour la largeur de l'image -->
         <atm-if what="{Actualites:Image:imageWidth}">
            {Actualites:Image:imageHTML}
         </atm-if>
         <!-- On affiche l'introdution de l'actualité -->
         {Actualites:Introduction:htmlvalue}
         <!-- S'il y a un article on affiche un lien vers le détail-->
         <atm-if what="{Actualites:Texte:value}">
            <a href="{page:ID_PAGE:url}?item={Actualites:id}" title="Lire la suite de '{Actualites:label}'">Lire la suite</a>
         </atm-if>      
       </atm-result>
     </atm-search>
   </block>
</row>


Je ne vois pas ou est le problème

Merci d'avance

Tae

Auteur:  Sébastien [ Lun Mars 28, 2011 10:26 am ]
Sujet du message:  Re: Afficher les actualités ???

Ce code n'est là que pour exemple et ne doit pas être repris tel quel mais il doit être adapté à la structure de ton propre module sur lequel il porte. Lorsque tu vas dans l'édition des rangées de contenu tu as accès à une aide sur la syntaxe propre à ton module.

Auteur:  taeky [ Lun Mars 28, 2011 10:59 am ]
Sujet du message:  Re: Afficher les actualités ???

Merci pour cette réponse rapide :D

J'ai chercher l'aide en question mais pas trouvée.

La rangée fonctionnement maintenant car j'avais oublié d'indiquer le nombres d'articles à afficher.
Par contre il y a des erreurs qui précèdent l'affichage des articles:
Code :
Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: Wrong parameter count for debug_backtrace() in W:\var\www\automne\classes\common\grandfather.php on line 80

Warning: array_reverse() [function.array-reverse]: The argument should be an array in W:\var\www\automne\classes\common\grandfather.php on line 80

Auteur:  Sébastien [ Lun Mars 28, 2011 11:10 am ]
Sujet du message:  Re: Afficher les actualités ???

Tu dois avoir une version de PHP inférieure à 5.2.5. La prochaine version corrigera ça. Dans l'immédiat, tu peux remplacer la ligne qui pose pb (\var\www\automne\classes\common\grandfather.php on line 80) par le code suivant :
Code :
$bt = @array_reverse(debug_backtrace());

Auteur:  taeky [ Lun Mars 28, 2011 12:41 pm ]
Sujet du message:  Re: Afficher les actualités ???

Ok merci, pour la modif.

Cela supprime biens les messages d'erreur.
J'ai bien la liste des articles du blog qui s'affichent sur la page Actualité:
http://localhost/web/5-actualites.php

Lorsque je clique sur le titre des articles ou sur "lire la suite" du texte d'intro (par example pour l'article 1), j'ai la page d'accueil qui s'ouvre avec comme URL:
http://localhost/?item=1

C'est la même chose que ce soit a partir d'un clic sur le titre ou sur "lire la suite", l'item de l(URL change en fonction de l'article, mais c'est toujours la page d'accueil qui s'affiche :shock:

Auteur:  Frank [ Lun Mars 28, 2011 12:48 pm ]
Sujet du message:  Re: Afficher les actualités ???

Dans cet exemple la rangée sur l'accueil fait un lien vers une page censée contenir une rangée qui affiche l'actualité complète.

Citer:
Code :
<!-- S'il y a un article on affiche un lien vers le détail-->
         <atm-if what="{Actualites:Texte:value}">
            <a href="{page:ID_PAGE_CIBLE:url}?item={Actualites:id}" title="Lire la suite de '{Actualites:label}'">Lire la suite</a>
         </atm-if>


As-tu bien une page avec une rangée de ce type ?

La rangée qui va afficher l'actualité complète fera une recherche en récupérant la valeur passé au paramètre item dans l'URL :

Code :
...
<atm-search-param search="newsresult" type="item" value="{request:int:item}" mandatory="false" />
....

Auteur:  taeky [ Lun Mars 28, 2011 2:35 pm ]
Sujet du message:  Re: Afficher les actualités ???

J'ai juste une page nommée "Actualité" qui contient la rangée "Blog".

J'ai crée dans la fenêtre "administration du module Actualité", 3 éléments Actualités qui contiennent chacun un titre, une catégorie, une introduction, un texte et un début de publication.

Est-ce suffisant pour pouvoir afficher chaque articles ?

Auteur:  Frank [ Lun Mars 28, 2011 3:30 pm ]
Sujet du message:  Re: Afficher les actualités ???

Tout dépend de ce que fais ta rangée blog. Tu t'es basé sur les rangées de la démo ?

Auteur:  taeky [ Lun Mars 28, 2011 7:18 pm ]
Sujet du message:  Re: Afficher les actualités ???

Désoler de vous solliciter autant, mais j'ai ce message (6 fois d'affilé) qui s'affiche après mon footer:
Code :
Automne (TM) 4.1.1 error : CMS_tree::getPageValue (line 98) : Page id must be positive integer : Array
(
    [0] => ID_PAGE
    [1] => url
    [2] => 1
    [3] => 5
)
 (View BackTrace)


Si je clique sur "View BackTrace":
Code :
   
      Automne :: Debug :: BackTrace   

Backtrace:

file: 4 - W:\var\www\web\5-actualites.php
call: require("W:\var\www\automne\html\5.php")

file: 184 - W:\var\www\automne\html\5.php
call: CMS_tree::getPageValue("ID_PAGE", "url", True, "5")

file: 98 - W:\var\www\automne\classes\tree\tree.php
call: CMS_grandFather::raiseError("Page id must be positive integer : Array ( [0] => ID_PAGE ...")

file: 124 - W:\var\www\automne\classes\common\grandfather.php
call: CMS_grandFather::_raiseError("CMS_tree::getPageValue (line 98) : Page id must be positive inte...", False, True)

Backtrace Detail:

Array
(
    [0] => Array
        (
            [file] => W:\var\www\web\5-actualites.php
            [line] => 4
            [args] => Array
                (
                    [0] => W:\var\www\automne\html\5.php
                )

            [function] => require
        )

    [1] => Array
        (
            [file] => W:\var\www\automne\html\5.php
            [line] => 184
            [function] => getPageValue
            [class] => CMS_tree
            [type] => ::
            [args] => Array
                (
                    [0] => ID_PAGE
                    [1] => url
                    [2] => 1
                    [3] => 5
                )

        )

    [2] => Array
        (
            [file] => W:\var\www\automne\classes\tree\tree.php
            [line] => 98
            [function] => raiseError
            [class] => CMS_grandFather
            [type] => ::
            [args] => Array
                (
                    [0] => Page id must be positive integer : Array
(
    [0] => ID_PAGE
    [1] => url
    [2] => 1
    [3] => 5
)

                )

        )

    [3] => Array
        (
            [file] => W:\var\www\automne\classes\common\grandfather.php
            [line] => 124
            [function] => _raiseError
            [class] => CMS_grandFather
            [type] => ::
            [args] => Array
                (
                    [0] => CMS_tree::getPageValue (line 98) : Page id must be positive integer : Array
(
    [0] => ID_PAGE
    [1] => url
    [2] => 1
    [3] => 5
)

                    [1] =>
                    [2] => 1
                )

        )

)


Auteur:  Frank [ Mar Mars 29, 2011 9:15 am ]
Sujet du message:  Re: Afficher les actualités ???

Tu as mis quoi comme identifiant de page dans le code ? Si tu as laissé PAGE_ID pas étonnant que ça marche pas. Tu dois entrer l'identifiant de ta page actualités. Si ta page actuatlités a pour identifiant 12 par exemple il faut écrire.

<a href="{page:12:url}?item={Actualites:id}" title="Lire la suite de '{Actualites:label}'">Lire la suite</a>

Une autre possibilité depuis la version 4.1 est d'affecter un codename à ta page actualités dans les propriétés de page et de faire le lien de la façon suivante. Avec un codename 'news' on écrira :

<a href="{page:news:url}?item={Actualites:id}" title="Lire la suite de '{Actualites:label}'">Lire la suite</a>

Auteur:  taeky [ Mar Mars 29, 2011 10:53 am ]
Sujet du message:  Re: Afficher les actualités ???

Ok Franck pour cette précision, je viens de comprendre, j'ai ajouté 5 à la place de PAGE_ID, ce qui me permet de ne plus avoir d'erreur, mais lorsque je clique sur le titre ou sur "lire la suite" d'un des articles listés je reste sur ma page 5 et avec ma liste

Pour récapituler:

Le code de la rangé "Blog" que j'ai mis dans le 1er post me permet d'afficher la liste des n derniers articles pour la ou les catégories d'articles sélectionnées.
Si je veux que, lorsque je clique sur le titre ou sur "lire la suite" d'un des articles listés allez sur une page qui affiche la totalité de l'article en question, il faut que je crée une page avec une rangée (différente de ma rangée Blog) et un code spécifique pour afficher la totalité de l'article.

Je vais donc reprendre les tutos, pour essayer de faire ça

Auteur:  Frank [ Mar Mars 29, 2011 11:10 am ]
Sujet du message:  Re: Afficher les actualités ???

Voici un exemple simplissime de rangée pour que tu comprennes comment on fait une recherche sur un module et comment on affiche les résultats :

Code :
<row>
   <!-- On travaille sur les données du module actualités-->
   <block module="pnews" id="newssearch"> 
      <!-- On va recherche des actualités-->
      <atm-search what="{Actualites}" name="newsresult"> 
         <!-- On recupère la valeur du paramètre item dans l'URL pour la recherche par élément -->
         <atm-search-param search="newsresult" type="item" value="{request:int:item}" mandatory="true"/>   
         <!-- On classe les résultats par ordre chronologique inversé-->
         <atm-search-order search="newsresult" type="publication date start" direction="desc"/>
         <!-- On boucle sur les résultats -->
         <atm-result search="newsresult">   
            <!-- Champs de l'object à afficher (cf. aide du module pour tous les champs disponibles)-->
            <h2>{Actualites:label}</h2>
            <p>{Actualites:formatedDateStart|d/m/Y}</p>
             {Actualites:Introduction:htmlvalue}
             {Actualites:Texte:htmlvalue}   
       </atm-result>
         <!-- On affiche un message si il n'y a pas de résultats-->
         <atm-noresult search="newsresult">Désolé aucune actualité ne correspond à votre recherche.</atm-noresult>
      <!-- fin de la recherche -->
      </atm-search>
   <!-- Fin de l'appel aux données du module -->
   </block>
</row>


A personnaliser et à compléter bien sur.

Auteur:  taeky [ Mar Mars 29, 2011 12:01 pm ]
Sujet du message:  Re: Afficher les actualités ???

Encore merci à tous le 2 pour votre réactivité. :D
Je vois ça et je vous tiens au courant

Page 1 sur 1 Le fuseau horaire est UTC [Heure d’été]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/