Skip to main content Help Control Panel

Login   A+   A-

Community «   Le forum «   Soupçons de bogues «  

La liste de tous les articles publiés [Solved]

avatarLesage Alain -- on Feb. 17 2007, from L'Île-Bizard à Montréal, Québec
YACS team (Quebec)
La page articles/index.php n'affiche pas tous les articles publiés
Solution has been fully integrated

Solution Manager: Bernard

Issue description

C'est peut-être plus un bogue de moi que de yacs, mais la page articles/index.php, qui se vante dans son titre de présenter "Tous les articles publiés", ne les affiche pas tous.

Existe-t-il un réglage supplémentaire qui les filtre ? Je ne suis pas certain que ce soit une règle générale mais j'ai au moins constaté que les articles que j'ai empêchés de s'afficher en page d'accueil (pour les raisons que j'ai mentionnées précédemment) ne font pas partie de cette liste incomplète d'articles publiés.

Je m'attendrais à trouver ici TOUS les articles publiés sur le site, dans quelque section que ce soit, avec peut-être une option pour les associés de cacher les articles à visibilité restreinte.

Y a-t-il quelque chose que je dois ou que je peux faire pour ça ?


Comments

Bernard
avatar
from nearby-an-airport
Associate, 6696 posts

on Feb. 18 2007


Je reconnais que le titre de la page est trompeur. En effet, comme vous l'avez deviné, cet index mentionne seulement les articles éligibles à la page d'accueil. Les autres sont filtrés, et pas seulement pour des raisons de sécurité. Par exemple, une boîte extra attachée à une section au fin fond de l'arborescence de contenu n'a aucun intérêt en dehors de cette section, etc.

Si vous souhaitez, en tant que webmestre en chef, obtenir une liste exhaustive des derniers articles, le mieux est peut-être de créer une page pour cela, et d'y attacher un objet table, qui interrogera la base de données pour lister les 50 derniers articles par exemple.
Lasares
avatar
from L'Île-Bizard à Montréal, Québec
697 posts

inspired from Bernard on Feb. 19 2007


Bernard : merci.

Ce serait bien de modifier le titre de la page, genre "Tous les articles en page d'accueil".

Pour ce que je désire, il faudra que j'apprenne à créer un objet table. Ça fait partie de mes plans, mais pas pour cette semaine .
Bernard
avatar
from nearby-an-airport
Associate, 6696 posts

inspired from Lasares on Feb. 19 2007


Lasares: ok, j'ai mis 'Recent published pages' pour lever l'ambiguité.
Moi-meme
avatar
from Entre chaise et clavier...
1387 posts

on Mar. 11 2007


Je serais aussi interessé pour connaître l'écriture de l'objet table permettant de récupérer une liste d'articles dans une section...
Est-ce que l'interrogation massive de la base par la naviguation publique sur cet item est gourmand en ressources ?
Bernard
avatar
from nearby-an-airport
Associate, 6696 posts

inspired from Moi-meme on Mar. 12 2007


Moi-meme: Tu veux dire l'ordre SQL à placer dans un objet table ? Si la section à analyser à le numéro 123, alors ce serait quelque chose comme suit :

SELECT title FROM yacs_articles WHERE anchor LIKE 'section:123' ORDER BY edit_date DESC LIMIT 50


Soit, en clair, le titre des 50 pages les plus récentes, par ordre de fraicheur décroissant, attachées à la section 123.

Pour ajouter des champs en plus du titre, se référer à la description de la table des articles à la fonction setup() du fichier #articles/articles.php##

Ceci sollicite la base de données, bien évidemment, mais pas plus que l'une des requêtes utilisées par YACS pour ses besoins propres.
Moi-meme
avatar
from Entre chaise et clavier...
1387 posts

on Mar. 14 2007


C'est quasi parfaitement ce que je cherchais, tu avais bien compris.

Et pour indifférencier les sections (c'est à dire les 50 derniers articles toute section confondues), faut-il supprimer WHERE anchor LIKE 'section:123' ?
Bernard
avatar
from nearby-an-airport
Associate, 6696 posts

inspired from Moi-meme on Mar. 18 2007


Moi-meme: Et oui, ca y est, te voilà devenu expert en SQL !
Moi-meme
avatar
from Entre chaise et clavier...
1387 posts

on Mar. 27 2007


Glurp, je ne comprends pas bien : dans mes tests, le recensement de ces articles débouche sur une page avec juste les titres non cliquables, et quelques outils CSV, xml...
Je pensais que c'était la solution pour enrichir la fonctionnalité déjà présentes pour la page des articles placés à la une, puisque c'était la question de l'auteur du topic. Pour moi le but du jeu est de recenser de manière agréable pour les visiteurs tous les 25 derniers articles par exemple, et cliquables bien entendu. Je ne comprends pas l'idée de proposer un export csv alors  que le premier réflexe d'un usager, a priori, est de consulter en ligne.

Comment pourrais-je faire ? Améliorer la requête SQL 'table' crée à cette occasion ?
Bernard
avatar
from nearby-an-airport
Associate, 6696 posts

on Mar. 29 2007


C'est bien ce que je disais, on attaque les requêtes en mode expert...

La première chose à faire est de générer, dans la requête, les adresses web de chacune des pages.

Quelque chose comme :

SELECT 
CONCAT('/yacs/articles/view.php/', id),
title
FROM yacs_articles WHERE anchor LIKE 'section:123' ORDER BY edit_date DESC LIMIT 50


Ensuite, il faut cocher l'option de table pour indiquer l'existence de ce lien, qui va être exploité naturellement par YACS pour obtenir uneliste cliquable.
Moi-meme
avatar
from Entre chaise et clavier...
1387 posts

on Apr. 1 2007


Merci
Ca correspond à peu près à ce que je voulais produire...

Y'a-t-il un moyen pour cosmétiser le rendu ? Par exemple, il s'affiche Title au lieu de Titre.
Bernard
avatar
from nearby-an-airport
Associate, 6696 posts

inspired from Moi-meme on Apr. 1 2007


Moi-meme: Il faut dire à MySQL que tu veux autre chose que la valeur par défaut, comme suit :

SELECT 
CONCAT('/yacs/articles/view.php/', id) AS 'Lien',
title AS 'Titre'
FROM yacs_articles WHERE anchor LIKE 'section:123' ORDER BY edit_date DESC LIMIT 50
Moi-meme
avatar
from Entre chaise et clavier...
1387 posts

on Apr. 2 2007


Je te remercie
Moi-meme
avatar
from Entre chaise et clavier...
1387 posts

on Apr. 11 2007


Il semble que la requête liste publiquement même les articles les plus restreint en accès. Y'a-t-il une astuce pour lui commander de faire le tri selon la nature de l'internaute (souscripteur, editeur, membre, associé..) ?
GnapZ
from Caribbean
2970 posts

inspired from Moi-meme on Apr. 11 2007


Moi-meme : Selon la variable de l'utilisateur en cours, je ne sais pas, peut-être:
  • $context['capability'] avec A, M, S et "?".
  • La variable Capabiility de la session en cours
Et encore, si c'est accepté à l'intérieur d'un article ou dans une requête SQL.

Dans un article, il y a 2 variables qui définissent sa restriction:
  • Active (Y/R/N)
  • Locked (Y/N) pour les articles verrouillés


Voilà quelques idées à creuser schant que tout ça serait à insérer dans la condition WHERE ...
Moi-meme
avatar
from Entre chaise et clavier...
1387 posts

on Apr. 11 2007


Bon, je note ça quelque part et je revois mes prétentions à la baisse. Entre php, xhtml, le très séduisant ajax et sql, ça fait beaucoup de doc à potasser pour les autodidactes paresseux...

Rate this page
Posted by Lasares on Feb. 17 2007, commented by Moi-meme on Apr. 11 2007, (popular)