Tri d'articles par le champ date

More
13 years 9 months ago #8757 by hekthor
Hello,

J'ai enfin résolu mon problème. Je le présente ci-dessous pour les personnes qui souhaiteraient faire un tri par un champ "date" personnalisé.

Je précise par contre que le code est rajouté dans les fichiers de base du composant... Donc comme l'a justement précisé micker, à la moindre maj ca pète... Mais en attendant ça fonctionne !

Deux fichiers à modifier ici.

Le premier est "category.xml" (dans administrator/components/com_flexicontent/models)

Il suffit en fait de rajouter l'option de tri que l'on souhaite ajouter dans les paramètres du groupe "common", sous-paramètre "orderby". Il suffit de se calquer sur un des paramètres pré-existant...

Enfin le second est "category.php" (dans components/com_flexicontent/models)

On rajoute une ligne dans la fonction _buildQuery() qui créé la requête. J'ai spécifié une clause supplémentaire, qui récupère la table faisant la relation entre l'id du champ date personnalisé et l'id de l'item.
Code:
. ' LEFT JOIN #__flexicontent_fields_item_relations AS ir ON ir.item_id = i.id'

On rajoute une option supplémentaire pour le ORDER BY dans la finction _buildItemOrderBy(). Je choisis donc bien de classer mes items par la valeur du champ date...
Code:
case 'date' : $filter_order = 'ir.value'; $filter_order_dir = 'ASC'; break;

Mais cela ne marcherait pas sans préciser quel est l'id du champ personnalisé. Donc, dans la fonction _buildItemWhere(), je vais restreindre le WHERE à l'id du champ (qui variera, à vous de le trouver). Ce qui donne :
Code:
// First thing we need to do is to select only the requested items $where = ' WHERE rel.catid = '.$this->_id; $where .= ' AND ir.field_id = 27 ';

Et voilà, mes items sont enfin classés en ordre chronologique, d'après la date personnalisée...

Dans mon cas il s'agissait donc de lister des évènements, le plus récent devant s'afficher en premier. C'est chose possible ici, mais TEMPORAIREMENT, en attendant une adaptation plus propre et ne craignant pas la MàJ...

C'est peut être pas très clair, mais l'heure m'excusera :p je veux bien avoir quelques retours sur ça, si il y a moyen de perfectionner etc...

Merci !

Please Log in or Create an account to join the conversation.

More
13 years 9 months ago #8764 by micker
hello
super !
il manquerait juste un champs dans l'admin pour saisir l'id du champs !
tu pourrais proposer cette modification sur le forum feature and request ! si ca vas ils l'intégrerons plus vite !
Merci pour la participation au projet !
a+

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

Moderators: vistamediajoomlacornerggppdk
Time to create page: 0.265 seconds
Save
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Essential
These cookies are needed to make the website work correctly. You can not disable them.
Display
Accept
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline