[RéSolu] accueil : statique et dynamique avec VIEWS

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous,

Je débute avec Drupal et j'aimerais bien comprendre la syntaxe un peu mieux, mais bon c'est la vie ;) ... Donc j'ai besoin d'un petit coup de main svp :

Je souhaiterais ajouté à ma page d'accueil qui est statique un bout de code php pour appeler les 5 derniers articles d'une catégories ?

Comment je mis prend ?

Merci et bonne soirée !

Version de Drupal : 

Salut,

Pour faire ça en utilisant des modules, il te faut http://drupal.org/project/views (vues) pour construire dynamiquement la liste des 5 derniers articles et http://drupal.org/project/insert_view pour faire apparaître la vue à l'endroit de ton choix sur la page d'accueil.

Sinon, tu peux aussi taper directement du code PHP dans ta page, mais c'est moins propre. Supposons que ce que tu appelles une "catégorie" soit le terme de taxonomie 12, tu écrirais quelque chose comme (code non testé) :

<?php
$category
= 12;
$result = taxonomy_select_nodes($category, 'or', 0, FALSE, 'n.created DESC LIMIT 0,5');
while (
$node = db_fetch_object($result)) {
 
$items[] = l($node->title, 'node/'.$node->nid);
}
print
theme('item_list', $items);
?>

Ce code afficherait sous forme de liste à puces les 5 derniers noeuds attachés au terme de taxonomie 12.

Bonjour drupafrance, merci de me donner un coup de main :)

J'ai installé le module Views, j'ai regardé rapidement et j'ai pas trop saisi encore comment ça fonctionnait ... J'ai vu que sur ton site perso y'avait un tuto, merci !

Deuxièmement j'ai essayé le bout de code PHP que tu m'as refilé, mais Drupal me renvoit le message d'erreur suivant :

    * warning: Cannot modify header information - headers already sent by (output started at /home/yhs/www/hugosoucy.name/themes/sumo/template.php:11) in /home/yhs/www/hugosoucy.name/includes/common.inc on line 309.
    * This content has been modified by another user, changes cannot be saved.

ça veut dire quoi ?

Merci et bonne fin de journée

Je pense que t'as pas dû mettre le code au bon endroit : il faut le mettre directement à l'endroit où tu veux afficher les données, dans une page Drupal dont le format d'entrée est réglé sur "PHP Code" (toi, on dirait que tu l'as mis dans template.php).

J'essaie présentement de comprendre comment fonctionne le module Views ...

J'ai créé une "View" qui s'appelle accueil2 ... Je lui ai assigné une URL, un nombre de node, etc ...

Mon but avec cette "View" c'est d'afficher ma page statique Accueil qui est en fait un texte de bienvenue que je dois afficher en entier ; Et deuxièmement afficher juste en bas un résumé (teaser) des 5 derniers billets de la catégorie "Blog-note" ...

Donc je crée premièrment un filtre "Taxonomy: Term" pour le terme "Blog-note" ... J'enregistre ma modification, je vais voir le résultat, ça marche !

Secondo je dois faire apparaître la page statique Accueil ... Donc je décide de lui créer une catégorie dont le terme est Accueil. Alors je fais un deixième filtre "Taxonomy: Term", mais pour Accueil cette fois ... J'enregistre ma modification, je vais voir le résultat, ça ne marche pas !

Non seulement le texte de la page Accueil n'apparaît pas, mais les textes de la catégorie Blog-note ont aussi disparu ...

J'efface le filtre "Taxonomy: Term" de Blog-note pour tester si le filtre de la page accueil marche quand il est seul ... ça marche ! Donc séparément mes deux filtre fonctionnent, mais ensemble, j'ai droit à une page vide ...

De plus le texte de la page d'Accueil est présenté en "teaser" quand j'en ai beaoin en entier, contrairement à ceux de la catégorie Blog-note ... Donc dans une même "View" comment avoir un texte en entier suivie d'une série d'autres présentés par résumé ?

Quelqu'un pourrait-il me guider dans ma démarche ... Je sens qu'il y a quelque chose que je n'ai pas saisis.

Merci et bonne soirée

Salut,

Comme je te l'ai expliqué plus haut, le plus simple pour faire ce que tu veux est d'utiliser le module http://drupal.org/project/insert_view.

En gros, ta page d'accueil n'est pas une view. C'est une page statique qui contient une view. Tu crées donc une page classique statique et à l'endroit où tu veux faire apparaître ta vue, dans le texte de cette page, tu marques [view:nom-de-ta-vue].

C'est ce que le module http://drupal.org/project/insert_view permet de faire.

Salut Vincent ...

Avec insert_view ça marche bien, mais j'ai un problème, ça crée des nodes dans une node ... en plus des balises

<

div class="content"­> supplémentaires ...

Donc visuellement ç'a pour effet de décalé tout ce qui se trouve dans la node d'origine et sémantiquement ça m'apparaît bizarre ..

Est-ce qu'il y a un moyen d'éviter cet embriquement de nodes ?

Merci

Salut,

La vue que tu fais apparaître en "insert_view" devrait contenir autre chose que des nodes : au lieu de choisir une vue de type "nodes" ou "teasers", choisis une vue de type "liste" ou "table", et ça devrait régler le problème.

Oh, merci ... je commence à comprendre la logique de cette bête qu'est VIEWS :P

Il me reste juste à apprendre comment rendre dynamique l'affichage de blocks selon les nodes à l'écran.

Merci et bonne fin de journée