source: spip-zone/_squelettes_/mediaspip/mediaspip_core/trunk/inclure/articles-medias_liste.html @ 79246

Last change on this file since 79246 was 79246, checked in by severo@…, 6 years ago

Pas besoin du préfixe de table 'articles.'

puisque toutes les boucles sont sur la table articles.
On retire aussi un élément vide.

File size: 13.9 KB
Line 
1[(#REM)
2
3        Squelette affichant une liste de médias
4        Les arguments suivants peuvent être passés au squelette :
5       
6                -* afficher_nombre (string) : si == oui, affiche le nombre de résultats dans le H2
7                -* couper (int) : coupera les titres des éléments à n caractères
8                -* id_rubrique (int) : affichera les medias limités à une branche (rubrique et enfants)
9                -* id_auteur (int) : affichera les médias d'un auteur
10                -* id_mot (int) : affichera les médias liés à un tag en particulier
11                -* id_licence (int) : affichera les médias liés à une licence particulière
12                -* mesfavoris (string) oui|non|ignore : Utilisé que si le plugin mesfavoris est présent
13                -** si oui : affiche les favoris de l'auteur en cours;
14                -** si non : affiche les non favoris de l'auteur en cours;
15                -** si ignore (défaut) : désactive le critère
16                -* mots (array) : Utilisé que si le plugin critere_mots est présent
17                -* em_type (string) : afficher la médias associés à un type spécifique (emballe medias)
18                -* type_date (string) : champ de date à utiliser dans le critère agenda : date (défaut), date_redac ou maj
19                -* date_debut (date XXXX-XX-XX) : limite minimale de la date de publication
20                -* date_fin (date XXXX-XX-XX) : limite maximale de la date de publication
21                -* id_bloc (string) : l'id du bloc principal sinon liste_medias (est également utilisé pour le nom de la pagination)
22                -* limite : le nombre maximal total d'éléments à afficher
23                -* limite_pagination : nombre de résultats par pagination
24                -* limite_pagination_min : le pas minimal de pagination
25                -* limite_pagination_max : nombre maximal de résultats par pagination pour le formulaire de choix de pagination
26                -* type_pagination : le modèle de pagination à utiliser
27                -* recherche (string) : le contenu d'une recherche
28                -* statuts (array) : un array de statuts des éléments à afficher
29                -* titre_liste : modifie le titre de la liste (H2)
30                -* tri_medias_forcer (string) : changera l'ordre de tri
31                -* lang (string) code de langue : utilisera cette langue par défaut sinon celle de l'environnement
32                -* lang_forcee (string) : Si quelque chose est passé, cela n'affichera les résultats que de la langue passée (à défaut, la langue de l'environnement)
33                -* toutes_langues (string oui|non) : Ne triera pas en fonction de la langue de l'environnement si on n'a pas lang_forcee (affichera tous les résultats)
34                -* message_null (string oui|non) : Si oui, ne rien afficher s'il n'y a pas de résultat. Valeur par défaut : non
35                -* vueliste_medias (thumbnail|listview) : par défaut thumbnail, affichage en blocs ou en lignes
36               
37]
38[(#SI_PAGE{sommaire}|et{#CONFIG{mediaspip/home/choix_highlight}|=={on}}|oui)
39#SET{tri_articles_home,#CONFIG{mediaspip/home/highlights_choisir_tri}}
40[(#CONFIG{mediaspip/home/choix_highlight_article}|is_array|et{#ENV{triliste_medias}|non}|oui)
41#SET{articles,#CONFIG{mediaspip/home/choix_highlight_article}}]]
42#SET{vue, #ENV{vueliste_medias,#CONFIG{mediaspip/recherche/vue_defaut,thumbnail}}}
43
44[(#CONFIG{langues_multilingue}|explode{','}|count|>{1}|oui)
45[(#SET{afficher_langue,oui})]]
46#SET{critere_inverse,#ARRAY|push{date}|push{maj}|push{popularite}|push{moyenne}|push{date_redac}}
47#SET{limite,#ENV{limite_affichage,10000000000000000000000}}
48#SET{limite_pagination,#ENV{pagination#ENV{id_bloc,liste_medias},#CONFIG{mediaspip/recherche/pas_pagination_defaut,6}}}
49#SET{limite_pagination_min,#ENV{limite_pagination_min,#CONFIG{mediaspip/recherche/pas_pagination_defaut,6}}}
50#SET{limite_pagination_max,#ENV{limite_pagination_max,100}}
51#SET{tri_medias,#ENV{triliste_medias,#ENV{tri_medias_forcer,#GET{tri_articles_home,#CONFIG{mediaspip/recherche/tri_defaut,'date'}}}}}
52#SET{tri_medias_tous,#ENV{tri#ENV{id_bloc,liste_medias},#ENV{tri_medias_forcer,#GET{tri_articles_home,#CONFIG{mediaspip/recherche/tri_defaut,'date'}}}}}
53[(#GET{tri_medias}|in_array{#LISTE{maj}}|oui)[(#SET{tri_medias,articles.#GET{tri_medias}})]]
54
55[(#GET{tri_medias_tous}|in_array{#LISTE{maj}}|oui)
56        [(#SET{tri_medias_tous,articles.#GET{tri_medias_tous}})]]
57
58#SET{date_debut,#ENV{date_debut,1970-01-02 00:00}}
59#SET{annee_debut,#GET{date_debut}|affdate{Y}}
60#SET{mois_debut,#GET{date_debut}|affdate{m}}
61#SET{jour_debut,#GET{date_debut}|affdate{d}}
62#SET{date_fin,#ENV{date_fin,2030-12-31 00:00}}
63#SET{annee_fin,#GET{date_fin}|affdate{Y}}
64#SET{mois_fin,#GET{date_fin}|affdate{m}}
65#SET{jour_fin,#GET{date_fin}|affdate{d}}
66#SET{type_date,#ENV{type_date,date}}
67
68<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
69[(#SET{articles_rubriques,#ARRAY})]
70<BOUCLE_si_toutes_langues(CONDITION){si #ENV{toutes_langues}|=={oui}|non}>
71        <BOUCLE_articles_rubrique_origine(ARTICLES){id_secteur=#CONFIG{mediaspip/rubriques/medias}}{statut IN #ENV{statuts,publie}}{branche}{branche_complete}{mesfavoris #ENV{mesfavoris,ignore}}{origine_traduction}{doublons}>
72        <BOUCLE_articles_rubrique_langue_en_cours(ARTICLES){traduction}{statut IN #ENV{statuts,publie}}{lang = #ENV{lang_forcee,#ENV{lang}}}{doublons}>
73        #SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}}
74        </BOUCLE_articles_rubrique_langue_en_cours>
75        [(#ENV{lang_forcee}|et{[(#LANG|=={#ENV{lang_forcee}})]}|oui)#SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}} ]
76        [(#ENV{lang_forcee}|non)#SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}}]
77        <//B_articles_rubrique_langue_en_cours>
78        </BOUCLE_articles_rubrique_origine>
79
80</BOUCLE_si_toutes_langues>
81        <BOUCLE_articles_rubrique_origine_ttes_langues(ARTICLES){id_secteur=#CONFIG{mediaspip/rubriques/medias}}{id_article ?IN #ENV{articles,#GET{articles}}}{statut IN #ENV{statuts,publie}}{branche}{branche_complete}{mesfavoris #ENV{mesfavoris,ignore}}>
82        [(#ENV{lang_forcee}|non)#SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}}]
83        </BOUCLE_articles_rubrique_origine_ttes_langues>
84<//B_si_toutes_langues>
85
86[(#ENV{articles,#GET{articles}}|is_array|oui)
87        #SET{articles_rubriques,#ENV{articles,#GET{articles}}|array_intersect{#GET{articles_rubriques}}
88]
89<BOUCLE_medias_test(ARTICLES){id_article IN #GET{articles_rubriques}}{notation}{mesfavoris #ENV{mesfavoris,ignore}}{agenda #GET{type_date}, periode, #GET{annee_debut},#GET{mois_debut},#GET{jour_debut},#GET{annee_fin},#GET{mois_fin},#GET{jour_fin}}{id_auteur ?}{id_mot ?}{mots ?}{id_licence==(#ENV{id_licence}|=={ss_licence}|?{'0',#ENV{id_licence,'.*'}})}{em_type ?}{recherche ?}{tri #GET{tri_medias},#GET{tri_medias}|in_array{#GET{critere_inverse}}|?{-1,1}}{0,#GET{limite}}{doublons medias}{tout} />
90<B_medias>
91<div class="liste articles sommaire medias clearfix" id="#ENV{id_bloc,liste_medias}">
92        <h2 class="h2"[ id="(#ANCRE_PAGINATION|extraire_attribut{id})"]>[(#ENV{titre_liste,#CONFIG{mediaspip/home/titre_highlights}|strlen|>{0}|?{#CONFIG{mediaspip/home/titre_highlights},<:mediaspip_core:titre_sommaire_une:>}})][(#ENV{afficher_nombre}|=={oui}|oui)&#40;#GRAND_TOTAL&#41;]</h2>
93        #INCLURE{fond=inclure/filtres_actifs,env}
94        <div class="formulaires_tris">[(#GRAND_TOTAL|>{1}|oui)
95                <div class="ajax">#FORMULAIRE_MS_TRI{#GET{tri_medias},liste_medias,##ENV{id_bloc,liste_medias}}</div>][(#GRAND_TOTAL|>={#GET{limite_pagination}}|oui)
96                <div class="ajax">[(#FORMULAIRE_MS_PAGINATION{#GRAND_TOTAL,liste_medias,select,#GET{limite_pagination_min},0,#GET{limite_pagination_max},##ENV{id_bloc,liste_medias}})]</div>]
97                <div class="ajax">[(#FORMULAIRE_MS_VUE{#GET{vue},liste_medias,##ENV{id_bloc,liste_medias}})]</div>
98        </div>
99        <div id="medias" class="liste_medias_vignettes">
100                <ul class="liste-items hfeed liste_vignettes">
101                        <BOUCLE_medias(ARTICLES){id_article IN #GET{articles_rubriques}}{agenda #GET{type_date}, periode, #GET{annee_debut},#GET{mois_debut},#GET{jour_debut},#GET{annee_fin},#GET{mois_fin},#GET{jour_fin}}{notation}{mesfavoris #ENV{mesfavoris,ignore}}{mots ?}{id_licence==(#ENV{id_licence}|=={ss_licence}|?{'0',#ENV{id_licence,'.*'}})}{id_auteur ?}{id_mot ?}{em_type ?}{recherche ?}{tri #GET{tri_medias},#GET{tri_medias}|in_array{#GET{critere_inverse}}|?{-1,1}}{!doublons medias}{pagination #ENV{pagination_#ENV{id_bloc,liste_medias},#GET{limite_pagination}} #ENV{id_bloc,liste_medias}}{tout}>
102                        #INCLURE{fond=inclure/article-media_vignette,id_article,compte=#COMPTEUR_BOUCLE,class=vignette,vue=#GET{vue},afficher_langue=#GET{afficher_langue,non},couper}
103                        </BOUCLE_medias>
104                </ul>
105                [<div class="pagination">(#PAGINATION{#ENV{type_pagination,page}})</div>]
106        </div>
107</div>
108</B_medias>
109[(#ENV{message_null}|=={oui}|non)
110<div class="liste articles sommaire medias clearfix" id="#ENV{id_bloc,liste_medias}">
111        <h2 class="h2">[(#ENV{titre_liste,#CONFIG{mediaspip/home/titre_highlights}|strlen|>{0}|?{#CONFIG{mediaspip/home/titre_highlights},<:mediaspip_core:titre_sommaire_une:>}})][(#ENV{afficher_nombre}|=={oui}|oui)&#40;#GRAND_TOTAL&#41;]</h2>
112        #INCLURE{fond=inclure/filtres_actifs,env}
113        [(#ENV{id_auteur}|ou{#ENV{id_mot}}|ou{#ENV{recherche}}|ou{#ENV{em_type}}|ou{#ENV{mots}}|ou{#ENV{id_licence}}|ou{#ENV{id_licence}|=={0}}|ou{#ENV{date_debut}}|ou{#ENV{date_fin}}|?{
114                <p><:mediaspip_core:message_aucun_media_critere_categorie:></p>,
115                <p><:mediaspip_core:message_aucun_media_publie_categorie:></p>})]
116</div>]
117<//B_medias>
118</BOUCLE_rubrique>
119</B_rubrique>
120
121[(#REM)
122        Pas de rubriques en paramètre, ou rubrique inexistante
123        On affiche tous les médias :
124        -* pas de critères {branche} ni {branche_complete}
125
126        TODO : ne pas ignorer le cas où id_rubrique est passé mais ne correspond à aucune rubrique existante
127        (https://www.mediaspip.net/spip.php?page=ticket&id_ticket=168)
128]
129
130#SET{articles_rubriques,#ARRAY}
131<BOUCLE_si_toutes_langues_tout(CONDITION){si #ENV{toutes_langues}|=={oui}|non}>
132        <BOUCLE_articles_origine(ARTICLES){id_secteur=#CONFIG{mediaspip/rubriques/medias}}{statut IN #ENV{statuts,publie}}{mesfavoris #ENV{mesfavoris,ignore}}{origine_traduction}{doublons origine}>
133        <BOUCLE_articles_langue_en_cours(ARTICLES){traduction}{statut IN #ENV{statuts,publie}}{lang = #ENV{lang_forcee,#ENV{lang}}}{doublons origine}>
134        #SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}}
135        </BOUCLE_articles_langue_en_cours>
136        [(#ENV{lang_forcee}|et{[(#LANG|=={#ENV{lang_forcee}})]}|oui)#SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}} ]
137        [(#ENV{lang_forcee}|non)#SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}}]
138        <//B_articles_langue_en_cours>
139        </BOUCLE_articles_origine>
140</BOUCLE_si_toutes_langues_tout>
141        <BOUCLE_articles_origine_ttes_langues(ARTICLES){id_secteur=#CONFIG{mediaspip/rubriques/medias}}{statut IN #ENV{statuts,publie}}{mesfavoris #ENV{mesfavoris,ignore}}>
142        [(#ENV{lang_forcee}|et{[(#LANG|=={#ENV{lang_forcee}})]}|oui)#SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}}]
143        [(#ENV{lang_forcee}|non)#SET{articles_rubriques,#GET{articles_rubriques}|push{#ID_ARTICLE}}]
144        </BOUCLE_articles_origine_ttes_langues>
145<//B_si_toutes_langues_tout>
146[(#ENV{articles,#GET{articles}}|is_array|oui)
147        [(#SET{articles_rubriques,[(#ENV{articles,#GET{articles}}|array_intersect{[(#GET{articles_rubriques})]})]})]]
148<BOUCLE_medias_test_tous(ARTICLES){id_article IN #GET{articles_rubriques}}{agenda #GET{type_date}, periode, #GET{annee_debut},#GET{mois_debut},#GET{jour_debut},#GET{annee_fin},#GET{mois_fin},#GET{jour_fin}}{notation}{id_auteur ?}{id_mot ?}{mots ?}{id_licence==(#ENV{id_licence}|=={ss_licence}|?{'0',#ENV{id_licence,'.*'}})}{em_type ?}{recherche ?}{statut IN #ENV{statuts,publie}}{tri #GET{tri_medias_tous},#GET{tri_medias_tous}|in_array{#GET{critere_inverse}}|?{-1,1}}{0,#GET{limite}}{doublons medias_tous}{tout} />
149<B_medias_tous>
150<div class="liste articles sommaire medias clearfix" id="#ENV{id_bloc,liste_medias}">
151        <h2 class="h2"[ id="(#ANCRE_PAGINATION|extraire_attribut{id})"]>[(#ENV{titre_liste,#CONFIG{mediaspip/home/titre_highlights}|strlen|>{0}|?{#CONFIG{mediaspip/home/titre_highlights},<:mediaspip_core:titre_sommaire_une:>}})][(#ENV{afficher_nombre}|=={oui}|oui)&#40;#GRAND_TOTAL&#41;]</h2>
152        #INCLURE{fond=inclure/filtres_actifs,env}
153        <div class="formulaires_tris">[(#GRAND_TOTAL|>{1}|oui)
154                <div class="ajax">[(#FORMULAIRE_MS_TRI{#GET{tri_medias_tous},#ENV{id_bloc,liste_medias},[#(#ENV{id_bloc,liste_medias})]})]</div>][(#GRAND_TOTAL|>={#GET{limite_pagination}}|oui)
155                <div class="ajax">[(#FORMULAIRE_MS_PAGINATION{#GRAND_TOTAL,liste_medias,select,#GET{limite_pagination_min},0,#GET{limite_pagination_max},##ENV{id_bloc,liste_medias}})]</div>]
156                <div class="ajax">[(#FORMULAIRE_MS_VUE{#GET{vue},liste_medias,##ENV{id_bloc,liste_medias}})]</div>
157        </div>
158        <div id="medias_#ENV{id_bloc}" class="liste_medias_vignettes liste_vignettes">
159                <ul class="liste-items hfeed">
160                        <BOUCLE_medias_tous(ARTICLES){id_article IN #GET{articles_rubriques}}{agenda #GET{type_date}, periode, #GET{annee_debut},#GET{mois_debut},#GET{jour_debut},#GET{annee_fin},#GET{mois_fin},#GET{jour_fin}}{mesfavoris #ENV{mesfavoris,ignore}}{notation}{mots ?}{id_licence==(#ENV{id_licence}|=={ss_licence}|?{'0',#ENV{id_licence,'.*'}})}{id_auteur ?}{id_mot ?}{em_type ?}{recherche ?}{statut IN #ENV{statuts,publie}}{tri #GET{tri_medias_tous},#GET{tri_medias_tous}|in_array{#GET{critere_inverse}}|?{-1,1}}{!doublons medias_tous}{pagination #ENV{pagination_#ENV{id_bloc,liste_medias},#GET{limite_pagination}} #ENV{id_bloc,liste_medias}}{tout}>
161                        #INCLURE{fond=inclure/article-media_vignette,id_article,compte=#COMPTEUR_BOUCLE,class=vignette,vue=#GET{vue},afficher_langue=#GET{afficher_langue,non},couper}
162                        </BOUCLE_medias_tous>
163                </ul>
164                [<div class="pagination">(#PAGINATION{#ENV{type_pagination,page}})</div>]
165        </div>
166</div>
167</B_medias_tous>
168[(#ENV{message_null}|=={oui}|non)
169<div class="liste articles sommaire medias clearfix" id="#ENV{id_bloc,liste_medias}">
170        <h2 class="h2">[(#ENV{titre_liste,#CONFIG{mediaspip/home/titre_highlights}|strlen|>{0}|?{#CONFIG{mediaspip/home/titre_highlights},<:mediaspip_core:titre_sommaire_une:>}})][(#ENV{afficher_nombre}|=={oui}|oui)&#40;#GRAND_TOTAL&#41;]</h2>
171        #INCLURE{fond=inclure/filtres_actifs,env}
172        [(#ENV{id_auteur}|ou{#ENV{id_mot}}|ou{#ENV{recherche}}|ou{#ENV{em_type}}|ou{#ENV{mots}}|ou{#ENV{id_licence}}|ou{#ENV{id_licence}|=={0}}|ou{#ENV{date_debut}}|ou{#ENV{date_fin}}|?{
173                <p><:mediaspip_core:message_aucun_media_critere:></p>,
174                <p><:mediaspip_core:message_aucun_media_publie:></p>})]
175</div>]
176<//B_medias_tous>
177<//B_rubrique>
178#FILTRE{trim}
Note: See TracBrowser for help on using the repository browser.