Browse Source

Évolution du plugin par François Pradignac :

- augmenter le nombre de type d’objets que l’on peut ajouter aux grappes : Groupes de mots et Brèves
- afficher les vignettes des objets ajoutés aux grappes : et pas des vignettes de 27px ;-)))
- afficher quelques autres infos concernant l’objet
- améliorer l’affichage en entête de grappes : descriptif, accès, objets
- afficher le logo de l’auteur comme dans SPIP3.2 dans un cercle ;-)
- on reste compatible avec SPIP3.0

Mais Tout semble bien fonctionner : le drag & drop, ajout/retrait, … Mais je suis confronté à un écueil : je n’arrive pas à gérer le tri par Rang sur les Groupes de mots : 
- fichier ./prive/objets/liste/grappes-groupes_mots_lies.html , ligne 8
- si je ne mes pas la jointure en rouge : <BOUCLE_liste(GROUPES_MOTS spip_grappes_liens){par spip_grappes_liens.rang}{…, j’obtiens bien ma liste avec les sélections mais, bien sûr, non ordonnée.
- il semble y avoir un souci avec cet objet particulier : Groupes de mots

Sans  la jointure, la requête est 
SELECT groupes_mots.id_groupe, 0 as points, groupes_mots.titre
FROM spip_groupes_mots AS `groupes_mots`
WHERE ((groupes_mots.id_groupe  IN (19,21,22)))
GROUP BY groupes_mots.id_groupe
ORDER BY FIELD(groupes_mots.id_groupe,19,21,22)

Avec la jointure, la requête devient :
SELECT groupes_mots.id_groupe, L1.id_grappe, L1.rang, 0 as points, groupes_mots.titre
FROM spip_groupes_mots AS `groupes_mots`  
INNER JOIN spip_grappes_liens AS L1 ON ( L1.id_objet = groupes_mots.id_groupe AND L1.objet='groupe')
WHERE ((groupes_mots.id_groupe  IN (19,21,22)))
GROUP BY groupes_mots.id_groupe
ORDER BY L1.rang

L1.objet='groupe' devrait être L1.objet='groupe_mots'
==> Comment faire ?
v1
real3t@gmail.com 3 years ago
parent
commit
009042d7bc
  1. 4
      .gitattributes
  2. 2
      grappes_pipelines.php
  3. 4
      lang/grappes_fr.php
  4. 4
      paquet.xml
  5. 31
      prive/objets/contenu/grappe.html
  6. 6
      prive/objets/infos/grappe.html
  7. 42
      prive/objets/liste/grappes-articles_lies.html
  8. 37
      prive/objets/liste/grappes-auteurs_lies.html
  9. 45
      prive/objets/liste/grappes-breves_lies.html
  10. 40
      prive/objets/liste/grappes-documents_lies.html
  11. 30
      prive/objets/liste/grappes-grappes_lies.html
  12. 44
      prive/objets/liste/grappes-groupes_mots_lies.html
  13. 54
      prive/objets/liste/grappes-mots_lies.html
  14. 53
      prive/objets/liste/grappes-rubriques_lies.html
  15. 57
      prive/objets/liste/grappes-syndic_lies.html
  16. 30
      prive/objets/liste/grappes.html
  17. 17
      prive/squelettes/contenu/grappe.html
  18. 2
      prive/squelettes/contenu/grappe_edit.html
  19. 2
      prive/squelettes/contenu/grappes.html
  20. 5
      prive/style_prive_plugin_grappes.html
  21. 9
      selecteurs/grappes_breves.html
  22. 8
      selecteurs/grappes_groupes_mots.html

4
.gitattributes vendored

@ -28,8 +28,10 @@ prive/objets/contenu/grappe.html -text
prive/objets/infos/grappe.html -text
prive/objets/liste/grappes-articles_lies.html -text
prive/objets/liste/grappes-auteurs_lies.html -text
prive/objets/liste/grappes-breves_lies.html -text
prive/objets/liste/grappes-documents_lies.html -text
prive/objets/liste/grappes-grappes_lies.html -text
prive/objets/liste/grappes-groupes_mots_lies.html -text
prive/objets/liste/grappes-mots_lies.html -text
prive/objets/liste/grappes-rubriques_lies.html -text
prive/objets/liste/grappes-syndic_lies.html -text
@ -45,8 +47,10 @@ prive/themes/spip/images/grappe-24.png -text
prive/themes/spip/images/grappe-32.png -text
selecteurs/grappes_articles.html -text
selecteurs/grappes_auteurs.html -text
selecteurs/grappes_breves.html -text
selecteurs/grappes_documents.html -text
selecteurs/grappes_grappes.html -text
selecteurs/grappes_groupes_mots.html -text
selecteurs/grappes_mots.html -text
selecteurs/grappes_rubriques.html -text
selecteurs/grappes_syndic.html -text

2
grappes_pipelines.php

@ -95,6 +95,8 @@ function grappes_grappes_objets_lies($array) {
$array = is_array($array) ? $array : array();
$array['articles'] = _T('grappes:item_groupes_association_articles');
$array['auteurs'] = _T('grappes:item_groupes_association_auteurs');
$array['breves'] = _T('grappes:item_groupes_association_breves');
$array['groupes_mots'] = _T('grappes:item_groupes_association_groupes_mots');
$array['mots'] = _T('grappes:item_groupes_association_mots');
$array['rubriques'] = _T('grappes:item_groupes_association_rubriques');
$array['documents'] = _T('grappes:item_groupes_association_documents');

4
lang/grappes_fr.php

@ -23,7 +23,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'delier_tout' => 'Tout délier',
// E
'export_choix_label' => 'Sélectionnez les grappes a exporter',
'export_choix_label' => 'Sélectionnez les grappes à exporter',
'export_titre' => 'Exporter les Grappes',
// F
@ -46,7 +46,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'info_changer_identifiant_grappe' => 'Changer l’identifiant de la grappe',
'info_changer_nom_grappe' => 'Changer le titre de la grappe',
'info_creation_grappes' => 'Créer ou modifier des grappes d’éléments',
'info_grappes_association' => 'Quels objets peut on lier à la grappe ?',
'info_grappes_association' => 'Quels objets peut-on lier à la grappe ?',
'info_grappes_miennes' => 'Mes grappes',
'info_grappes_toutes' => 'Toutes les grappes',
'info_identifiant_grappe' => 'Identifiant textuel',

4
paquet.xml

@ -1,8 +1,8 @@
<paquet
prefix="grappes"
categorie="divers"
version="1.1.8"
etat="test"
version="1.2.0"
etat="dev"
compatibilite="[3.0.0;3.2.*]"
logo="prive/themes/spip/images/grappe-32.png"
schema="0.2.5"

31
prive/objets/contenu/grappe.html

@ -1,25 +1,20 @@
<BOUCLE_grappe(GRAPPES){id_grappe}>
[<div class="champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]">
<label><:info_descriptif:></label>
<span dir='#LANG_DIR' class='#EDIT{descriptif} descriptif'>(#DESCRIPTIF)</span>
[<div class="liste champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]">
<h3><:info_descriptif:></h3>
<p dir="#LANG_DIR" class='#EDIT{descriptif} descriptif'>(#DESCRIPTIF)</p>
</div>]
<div class="champ contenu_acces[ (#OPTIONS*|strlen|?{'',vide})]">
<label><:grappes:label_acces:> : </label>
<span dir='#LANG_DIR' class='acces'><BOUCLE_options(DATA){source table, #OPTIONS|unserialize|table_valeur{acces}}{", "}>[(#VALEUR|traduire_statut_auteur)]</BOUCLE_options></span>
<div class="liste champ contenu_acces[ (#OPTIONS*|strlen|?{'',vide})]">
<h3><:grappes:label_acces:> : </h3>
<p dir="#LANG_DIR" class="acces"><BOUCLE_options(DATA){source table, #OPTIONS|unserialize|table_valeur{acces}}{", "}>[(#VALEUR|traduire_statut_auteur)]</BOUCLE_options></p>
</div>
<div class="champ contenu_liaisons[ (#LIAISONS*|strlen|?{'',vide})]">
<label><:grappes:label_liaisons:> : </label>
<span dir='#LANG_DIR' class='#EDIT{liaisons} liaisons'>
<div class="liste champ contenu_liaisons[ (#LIAISONS*|strlen|?{'',vide})]">
<h3><:grappes:label_liaisons:> : </h3>
<p dir="#LANG_DIR" class="#EDIT{liaisons} liaisons">
<BOUCLE_liaisons(DATA){source table,#LIAISONS|explode{","}}{", "}>[(#VALEUR|objet_info{texte_objets}|_T)]</BOUCLE_liaisons>
</span>
</p>
</div>
[<div class="champ contenu_type[ (#TYPE*|strlen|?{'',vide})]">
<label><:grappes:label_type:> : </label>
<span dir='#LANG_DIR' class='#EDIT{type} type'>(#TYPE)</span>
[<div class="liste champ contenu_type[ (#TYPE*|strlen|?{'',vide})]">
<h3><:grappes:label_type:> : </h3>
<p dir="#LANG_DIR" class='#EDIT{type} type'>(#TYPE)</p>
</div>]
</BOUCLE_grappe>

6
prive/objets/infos/grappe.html

@ -1,7 +1,7 @@
<BOUCLE_doc(GRAPPES){id_grappe=#ENV{id}}>
<div class='infos'>
<div class='numero'><:grappes:titre_grappe:> <:numero:><p>#ID_GRAPPE</p></div>
<p><b><:grappes:info_identifiant_grappe:> :</b> #IDENTIFIANT</p>
<div class="infos">
<div class="numero"><:grappes:titre_grappe:> <:numero:><p>#ID_GRAPPE</p></div>
<p><strong><:grappes:info_identifiant_grappe:> :</strong> #IDENTIFIANT</p>
[(#AUTORISER{modifier,grappe,#ID_GRAPPE}|oui)
[(#URL_ACTION_AUTEUR{supprimer_grappe,-#ID_GRAPPE,#URL_ECRIRE{grappes}}|icone_horizontale{<:grappes:icone_supprimer_grappe:>,grappe,del})]
[(#URL_ACTION_AUTEUR{dupliquer_grappe,#ID_GRAPPE,#URL_ECRIRE{grappes}}|icone_horizontale{<:grappes:icone_dupliquer_grappe:>,grappe,add})]

42
prive/objets/liste/grappes-articles_lies.html

@ -2,22 +2,28 @@
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies articles">
<table class="spip liste" id="sort-articles">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_article,info_nb_articles}})</strong></caption>]
<tbody>
<BOUCLE_liste(ARTICLES spip_grappes_liens){par rang}{id_grappe ?}{pagination 10}{recherche ?}{statut?}{tout}>
<tr id="#ID_ARTICLE" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class='statut'>[(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE})]</td>
<td><BOUCLE_affRang(spip_grappes_liens){objet=article}{id_objet=#ID_ARTICLE}{id_grappe}>#RANG</BOUCLE_affRang></td>
<td class='titre principale'>#TITRE</td>
<td class='id'><a href="[(#ID_ARTICLE|generer_url_entite{article})]"><:grappes:voir:></a></td>
[(#ENV{editable})
<td class='action'>[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/article/#ID_ARTICLE,#SELF},ajax})]</td>
]</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
<table class="spip liste" id="sort-articles">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_article,info_nb_articles}})</strong></caption>]
<tbody>
<BOUCLE_liste(ARTICLES spip_grappes_liens){par spip_grappes_liens.rang}{id_article IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
<tr id="#ID_ARTICLE" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE})]</td>
<td class="titre principale"[ (#LOGO_ARTICLE_NORMAL|non)colspan="2"]><a href="[(#ID_ARTICLE|generer_url_entite{article})]"
[hreflang="(#ENV{lang}|=={#LANG}|non|?{#LANG})"]
title="<:info_numero_abbreviation|attribut_html:> #ID_ARTICLE">
<BOUCLE_affRang(spip_grappes_liens){objet=article}{id_objet=#ID_ARTICLE}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#TITRE</strong>
[<span class="soustitre">(#SOUSTITRE)</span>]</a></td>
[<td class="logo">(#LOGO_ARTICLE|image_reduire{70,*})</td>]
<td class='auteur'><div class="inner"><BOUCLE_auteurs(AUTEURS){id_article}{', '}><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">#NOM</a></BOUCLE_auteurs></div></td>
<td class='date secondaire'>[<span title="[(#DATE|heures_minutes)]">(#DATE|affdate_jourcourt)</span>]</td>
[(#ENV{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/article/#ID_ARTICLE,#SELF},ajax})]</td>
]
</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies articles caption-wrap"><strong class="caption"><:info_aucun_article:></strong></div>
@ -36,8 +42,8 @@ $(function(){
url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=article&sort="+ordre
});
request.done(function() {
$('.formulaire_lier_objets').ajaxReload(); // Une fois trié on recharge la liste
});
$("#sort-articles").ajaxReload(); // Une fois trié on recharge la liste concernée
});
});
});
</script>

37
prive/objets/liste/grappes-auteurs_lies.html

@ -2,22 +2,23 @@
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies auteurs">
<table class='spip liste' id="sort-auteurs">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}})</strong></caption>]
<tbody>
<BOUCLE_liste(AUTEURS spip_grappes_liens){par spip_grappes_liens.rang}{id_auteur IN #GET{selection}}{pagination 10}{recherche ?}{statut ?}{tout}>
<tr id="#ID_AUTEUR" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class='statut'>[(#STATUT|puce_statut{auteur})]</td>
<td><BOUCLE_affRang(spip_grappes_liens){objet=auteur}{id_objet=#ID_AUTEUR}{id_grappe}>#RANG</BOUCLE_affRang></td>
<td class='nom'>#NOM[ <small>((#LOGIN))</small>]</td>
<td class='id'><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"><:grappes:voir:></a></td>
[(#ENV{editable})
<td class='action'>[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/auteur/#ID_AUTEUR,#SELF},ajax})]</td>
]</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
<table class="spip liste" id="sort-auteurs">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}})</strong></caption>]
<tbody>
<BOUCLE_liste(AUTEURS spip_grappes_liens){par spip_grappes_liens.rang}{id_auteur IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
<tr id="#ID_AUTEUR" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#STATUT|puce_statut{auteur})]</td>
<td class="titre principale"><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">
<BOUCLE_affRang(spip_grappes_liens){objet=auteur}{id_objet=#ID_AUTEUR}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#NOM[ <small>((#LOGIN))</small>]</strong></a></td>
<td class="logo">[(#LOGO_AUTEUR|image_reduire{70,*})]</td>
[(#ENV{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/auteur/#ID_AUTEUR,#SELF},ajax})]</td>
]
</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies auteurs caption-wrap"><strong class="caption"><:info_aucun_auteur:></strong></div>
@ -36,8 +37,8 @@ $(function(){
url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=auteur&sort="+ordre
});
request.done(function() {
$('.formulaire_lier_objets').ajaxReload();
});
$("#sort-auteurs").ajaxReload(); // Une fois trié on recharge la liste concernée
});
});
});
</script>

45
prive/objets/liste/grappes-breves_lies.html

@ -0,0 +1,45 @@
#SET{selection,#ENV{objet}|objet_type|lister_objets_lies{grappe,#ID_GRAPPE,grappe}}
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies breves">
<table class="spip liste" id="sort-breves">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{breves:info_1_breve,breves:info_nb_breves}})</strong></caption>]
<tbody>
<BOUCLE_liste(BREVES spip_grappes_liens){par spip_grappes_liens.rang}{id_breve IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
<tr id="#ID_BREVE" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#STATUT|puce_statut{breve,#ID_BREVE,#ID_RUBRIQUE})]</td>
<td class="titre principale"><a href="[(#ID_BREVE|generer_url_entite{breve})]">
<BOUCLE_affRang(spip_grappes_liens){objet=breve}{id_objet=#ID_BREVE}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#TITRE</strong></a></td>
<td class="logo">[(#LOGO_BREVE|image_reduire{70,*})]</td>
<td class='date secondaire'>[<span title="[(#DATE|heures_minutes)]">(#DATE|affdate_jourcourt)</span>]</td>
[(#ENV{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/breve/#ID_BREVE,#SELF},ajax})]</td>
]
</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies breves caption-wrap"><strong class="caption"><:breves:info_aucun_breve:></strong></div>
<//B_liste>
<script>
$(function(){
$("#sort-breves").sortable({
items:"tr",
cursor:"move"
});
$("#sort-breves").disableSelection();
$("#sort-breves").bind("sortupdate", function(event, ui){
var ordre = $(this).sortable('toArray').toString();
var request = $.ajax({
type: "POST",
url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=breve&sort="+ordre
});
request.done(function() {
$("#sort-breves").ajaxReload(); // Une fois trié on recharge la liste concernée
});
});
});
</script>

40
prive/objets/liste/grappes-documents_lies.html

@ -2,28 +2,28 @@
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies documents">
<table class='spip liste' id="sort-documents">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{medias:un_document,medias:des_documents}})</strong></caption>]
<tbody>
<BOUCLE_liste(DOCUMENTS spip_grappes_liens){par spip_grappes_liens.rang}{id_document IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
<tr id="#ID_DOCUMENT" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class='picto'>[(#CHEMIN_IMAGE{document-16.png}|balise_img)]</td>
<td><BOUCLE_affRang(spip_grappes_liens){objet=document}{id_objet=#ID_DOCUMENT}{id_grappe}>#RANG</BOUCLE_affRang></td>
<td class='titre principale'>[(#LOGO_DOCUMENT|image_reduire{20,26})][(#TITRE|sinon{[(#FICHIER|basename)]})]</td>
<td class='id'><a href="[(#ID_DOCUMENT|generer_url_entite{document})]"><:grappes:voir:></a></td>
[(#ENV{editable})
<td class='action'>[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/document/#ID_DOCUMENT,#SELF},ajax})]</td>
]</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
<table class="spip liste" id="sort-documents">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{medias:un_document,medias:des_documents}})</strong></caption>]
<tbody>
<BOUCLE_liste(DOCUMENTS spip_grappes_liens){par spip_grappes_liens.rang}{id_document IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
<tr id="#ID_DOCUMENT" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#CHEMIN_IMAGE{document-16.png}|balise_img)]</td>
<BOUCLE_affRang(spip_grappes_liens){objet=document}{id_objet=#ID_DOCUMENT}{id_grappe}>#SET{valRang,#RANG. }</BOUCLE_affRang>
<td class="titre principale"><a href="[(#URL_ECRIRE{document_edit,id_document=#ID_DOCUMENT})]">#GET{valRang}<strong>[(#TITRE|sinon{[(#FICHIER|basename)]})]</strong></a></td>
<td class="logo">[(#LOGO_DOCUMENT|image_reduire{70,*})]</td>
<td class="extenSion">#EXTENSION</td>
[(#ENV{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/document/#ID_DOCUMENT,#SELF},ajax})]</td>
]
</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies documents caption-wrap"><strong class="caption"><:medias:aucun_document:></strong></div>
<//B_liste>
<script>
$(function() {
$("#sort-documents").sortable({
@ -38,8 +38,8 @@ $(function() {
url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=document&sort="+ordre
});
request.done(function() {
$('.formulaire_lier_objets').ajaxReload();
});
$("#sort-documents").ajaxReload(); // Une fois trié on recharge la liste concernée
});
});
});
</script>

30
prive/objets/liste/grappes-grappes_lies.html

@ -3,21 +3,21 @@
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies grappes">
<table class='spip liste'>
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{grappes:info_1_grappe,grappes:info_nb_grappes}})</strong></caption>]
<tbody>
<BOUCLE_liste(GRAPPES){id_grappe IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> #SET{id_grappe,#ID_GRAPPE}
<td class='picto'>[(#CHEMIN_IMAGE{grappe-16.png}|balise_img)]</td>
<td class='titre principale'>#TITRE</td>
<td class='id'><a href="[(#GET{id_grappe}|generer_url_entite{grappe})]"><:grappes:voir:></a></td>
[(#GET{editable})
<td class='action'>[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#GET{id_grappe}/#ENV{source}/#ENV{id_source},#SELF},ajax})]</td>
]</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
<table class="spip liste">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{grappes:info_1_grappe,grappes:info_nb_grappes}})</strong></caption>]
<tbody>
<BOUCLE_liste(GRAPPES){id_grappe IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> #SET{id_grappe,#ID_GRAPPE}
<td class="picto">[(#CHEMIN_IMAGE{grappe-16.png}|balise_img)]</td>
<td class="titre principale"><a href="[(#GET{id_grappe}|generer_url_entite{grappe})]">#TITRE</a></td>
<td class="logo">[(#LOGO_GRAPPE|image_reduire{70,*})]</td>
[(#GET{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#GET{id_grappe}/#ENV{source}/#ENV{id_source},#SELF},ajax})]</td>
]</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies grappes caption-wrap"><strong class="caption"><:grappes:info_aucune_grappe:></strong></div>

44
prive/objets/liste/grappes-groupes_mots_lies.html

@ -0,0 +1,44 @@
#SET{selection,#ENV{objet}|objet_type|lister_objets_lies{grappe,#ID_GRAPPE,grappe}}
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies groupes_mots">
<table class="spip liste" id="sort-groupes">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{mots:info_1_groupe_mots,mots:info_nb_groupe_mots}})</strong></caption>]
<tbody>
<BOUCLE_liste(GROUPES_MOTS spip_grappes_liens){par spip_grappes_liens.rang}{id_groupe IN #GET{selection}}{pagination 5}{recherche ?}{statut?}{tout}>
<tr id="#ID_GROUPE" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#VAL|puce_statut{groupe_mots,#ID_GROUPE})]</td>
<td class="titre principale"><a href="[(#ID_GROUPE|generer_url_entite{groupe_mots})]">
<BOUCLE_affRang(spip_grappes_liens){objet=groupe_mots}{id_objet=#ID_GROUPE}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#TITRE</strong></a></td>
<td class="logo">[(#LOGO_GROUPE|image_reduire{70,*})]</td>
[(#ENV{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/groupe_mots/#ID_GROUPE,#SELF},ajax})]</td>
]
</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies groupes_mots caption-wrap"><strong class="caption"><:mots:info_aucun_groupe_mots:></strong></div>
<//B_liste>
<script>
$(function(){
$("#sort-groupes").sortable({
items:"tr",
cursor:"move"
});
$("#sort-groupes").disableSelection();
$("#sort-groupes").bind("sortupdate", function(event, ui){
var ordre = $(this).sortable('toArray').toString();
var request = $.ajax({
type: "POST",
url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=groupe_mots&sort="+ordre
});
request.done(function() {
$("#sort-groupes").ajaxReload(); // Une fois trié on recharge la liste concernée
});
});
});
</script>

54
prive/objets/liste/grappes-mots_lies.html

@ -2,22 +2,44 @@
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies mots">
<table class='spip liste'>
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_mot_cle,info_nb_mots_cles}})</strong></caption>]
<tbody>
<BOUCLE_liste(MOTS){id_mot IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class='picto'>[(#VAL|puce_statut{mot,#ID_MOT,#ID_GROUPE})]</td>
<td class='titre principale'>[(#LOGO_MOT|image_reduire{20,20})]#TITRE</td>
<td class='id'><a href="[(#ID_MOT|generer_url_entite{mot})]"><:grappes:voir:></a></td>
[(#ENV{editable})
<td class='action'>[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/mot/#ID_MOT,#SELF},ajax})]</td>
]</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
<table class="spip liste" id="sort-mots">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_mot_cle,info_nb_mots_cles}})</strong></caption>]
<tbody>
<BOUCLE_liste(MOTS spip_grappes_liens){par spip_grappes_liens.rang}{id_mot IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
<tr id="#ID_MOT" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#VAL|puce_statut{mot,#ID_MOT,#ID_GROUPE})]</td>
<td class="titre principale"><a href="[(#ID_MOT|generer_url_entite{mot})]">
<BOUCLE_affRang(spip_grappes_liens){objet=mot}{id_objet=#ID_MOT}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#TITRE</strong></a></td>
<td class="logo">[(#LOGO_MOT|image_reduire{70,*})]</td>
[(#ENV{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/mot/#ID_MOT,#SELF},ajax})]</td>
]
</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies mots caption-wrap"><strong class="caption"><:mots:info_aucun_mot_cle:></strong></div>
<//B_liste>
<//B_liste>
<script>
$(function(){
$("#sort-mots").sortable({
items:"tr",
cursor:"move"
});
$("#sort-mots").disableSelection();
$("#sort-mots").bind("sortupdate", function(event, ui){
var ordre = $(this).sortable('toArray').toString();
var request = $.ajax({
type: "POST",
url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=mot&sort="+ordre
});
request.done(function() {
$("#sort-mots").ajaxReload(); // Une fois trié on recharge la liste concernée
});
});
});
</script>

53
prive/objets/liste/grappes-rubriques_lies.html

@ -2,22 +2,43 @@
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies rubriques">
<table class='spip liste'>
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_rubrique,info_nb_rubriques}})</strong></caption>]
<tbody>
<BOUCLE_liste(RUBRIQUES){id_rubrique IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class='picto'>[(#CHEMIN_IMAGE{rubrique-16.png}|balise_img)]</td>
<td class='titre'>#TITRE</td>
<td class='id'><a href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]"><:grappes:voir:></a></td>
[(#ENV{editable})
<td class='action'>[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/rubrique/#ID_RUBRIQUE,#SELF},ajax})]</td>
]</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
<table class="spip liste" id="sort-rubriques">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_rubrique,info_nb_rubriques}})</strong></caption>]
<tbody>
<BOUCLE_liste(RUBRIQUES spip_grappes_liens){par spip_grappes_liens.rang}{id_rubrique IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
<tr id="#ID_RUBRIQUE" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#CHEMIN_IMAGE{rubrique-16.png}|balise_img)]</td>
<td class="titre principale"><a href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]">
<BOUCLE_affRang(spip_grappes_liens){objet=rubrique}{id_objet=#ID_RUBRIQUE}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#TITRE</strong></a></td>
<td class="logo">[(#LOGO_RUBRIQUE|image_reduire{70,*})]</td>
[(#ENV{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/rubrique/#ID_RUBRIQUE,#SELF},ajax})]</td>
]
</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies rubriques caption-wrap"><strong class="caption"><:info_aucun_rubrique:></strong></div>
<//B_liste>
<//B_liste>
<script>
$(function(){
$("#sort-rubriques").sortable({
items:"tr",
cursor:"move"
});
$("#sort-rubriques").disableSelection();
$("#sort-rubriques").bind("sortupdate", function(event, ui){
var ordre = $(this).sortable('toArray').toString();
var request = $.ajax({
type: "POST",
url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=rubrique&sort="+ordre
});
request.done(function() {
$("#sort-rubriques").ajaxReload(); // Une fois trié on recharge la liste concernée
});
});
});
</script>

57
prive/objets/liste/grappes-syndic_lies.html

@ -1,23 +1,44 @@
#SET{selection,#ENV{objet}|objet_type|lister_objets_lies{grappe,#ID_GRAPPE,grappe}}
<B_liste>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies syndic">
<table class='spip liste'>
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_site,info_nb_sites}})</strong></caption>]
<tbody>
<BOUCLE_liste(SITES){id_syndic IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
<tr class="tr_liste">
<td class='statut'>[(#STATUT|puce_statut{site,#ID_SYNDIC,#ID_RUBRIQUE}) ]</td>
<td class='nom_site principale'>[(#LOGO_SITE|image_reduire{26,20})]#NOM_SITE</td>
<td class='id'><a href="[(#ID_SYNDIC|generer_url_entite{site})]"><:grappes:voir:></a></td>
[(#ENV{editable})
<td class='action'>[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/syndic/#ID_SYNDIC,#SELF},ajax})]</td>
]</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
<div class="liste-objets liste-objets-lies sites syndic">
<table class="spip liste" id="sort-sites">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{sites:info_1_site,sites:info_nb_sites}})</strong></caption>]
<tbody>
<BOUCLE_liste(SYNDIC spip_grappes_liens){par spip_grappes_liens.rang}{id_syndic IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
<tr id="#ID_SYNDIC" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="statut">[(#STATUT|puce_statut{syndic,#ID_SYNDIC,#ID_RUBRIQUE}) ]</td>
<td class="titre principale"><a href="[(#ID_SYNDIC|generer_url_entite{syndic})]">
<BOUCLE_affRang(spip_grappes_liens){objet=site}{id_objet=#ID_SYNDIC}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#NOM_SITE</strong></a></td>
<td class="logo">[(#LOGO_SYNDIC|image_reduire{70,*})]</td>
[(#ENV{editable})
<td class="action">[(#BOUTON_ACTION{<:grappes:delier:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})],#URL_ACTION_AUTEUR{lier_objets,delier/grappe/#ID_GRAPPE/syndic/#ID_SYNDIC,#SELF},ajax})]</td>
]
</tr>
</BOUCLE_liste>
</tbody>
</table>
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste>
<div class="liste-objets liste-objets-lies syndic caption-wrap"><strong class="caption"><:info_aucun_site:></strong></div>
<//B_liste>
<div class="liste-objets liste-objets-lies sites syndic caption-wrap"><strong class="caption"><:sites:info_aucun_site:></strong></div>
<//B_liste>
<script>
$(function(){
$("#sort-sites").sortable({
items:"tr",
cursor:"move"
});
$("#sort-sites").disableSelection();
$("#sort-sites").bind("sortupdate", function(event, ui){
var ordre = $(this).sortable('toArray').toString();
var request = $.ajax({
type: "POST",
url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=site&sort="+ordre
});
request.done(function() {
$("#sort-sites").ajaxReload(); // Une fois trié on recharge la liste concernée
});
});
});
</script>

30
prive/objets/liste/grappes.html

@ -1,31 +1,33 @@
[(#SET{defaut_tri,#ARRAY{
titre,1,
identifiant,1,
date,-1,
date,-1,
id_grappe,1,
points,-1
}})]<B_liste_grappes>
#ANCRE_PAGINATION
<div class="liste-objets grappes">
<table class='spip liste'>
<table class="spip liste">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{grappes:info_1_grappe,grappes:info_nb_grappes}})</strong></caption>]
<thead>
<tr class='first_row'>
<th class='picto' scope='col'></th>
<th class="identifiant" scope="col">[(#TRI{identifiant,<:grappes:info_identifiant_grappe:>,ajax})]</th>
<th class='titre' scope='col'>[(#TRI{titre,<:grappes:info_nom_grappe:>,ajax})]</th>
<th class='date' scope='col'>[(#TRI{date,<:date:>,ajax})]</th>
<th class='id' scope='col'>[(#TRI{id_grappe,<:info_numero_abbreviation:>,ajax})]</th>
<th class="picto" scope="col"></th>
<th class="identifiant" scope="col">[(#TRI{identifiant,<:grappes:info_identifiant_grappe:>,ajax})]</th>
<th class="titre" scope="col">[(#TRI{titre,<:grappes:info_nom_grappe:>,ajax})]</th>
<th class="logo" scope="col"></th>
<th class="date" scope="col">[(#TRI{date,<:date:>,ajax})]</th>
<th class="id" scope="col">[(#TRI{id_grappe,<:info_numero_abbreviation:>,ajax})]</th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_grappes(GRAPPES){id_admin?}{id_mot?}{auteurs_liens.id_auteur?}{where?}{recherche?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>
<tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
<td class='picto'>[(#CHEMIN_IMAGE{grappe-16.png}|balise_img)]</td>
<td class="identifiant principale"><a href="[(#ID_GRAPPE|generer_url_entite{grappe})]">#IDENTIFIANT</a></td>
<td class='titre principale'>[(#LOGO_GRAPPE|image_reduire{20,26})]<a href="[(#ID_GRAPPE|generer_url_entite{grappe})]">[(#RANG). ]#TITRE</a></td>
<td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td>
<td class='id'>[(#AUTORISER{modifier,grappe,#ID_GRAPPE}|?{
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="picto">[(#CHEMIN_IMAGE{grappe-16.png}|balise_img)]</td>
<td class="identifiant principale"><a href="[(#ID_GRAPPE|generer_url_entite{grappe})]">#IDENTIFIANT</a></td>
<td class="titre principale"[ (#LOGO_GRAPPE|non)colspan="2"]><a href="[(#ID_GRAPPE|generer_url_entite{grappe})]">[(#RANG). ]#TITRE</a></td>
[<td class="logo">(#LOGO_GRAPPE|image_reduire{70,*})</td>]
<td class="date secondaire">[(#DATE|affdate_jourcourt)]</td>
<td class="id">[(#AUTORISER{modifier,grappe,#ID_GRAPPE}|?{
<a href="[(#URL_ECRIRE{grappe_edit,id_grappe=#ID_GRAPPE})]">#ID_GRAPPE</a>,
#ID_GRAPPE
})]</td>
@ -33,7 +35,7 @@
</BOUCLE_liste_grappes>
</tbody>
</table>
[<p class='pagination'>(#PAGINATION{prive})</p>]
[<p class="pagination">(#PAGINATION{prive})</p>]
</div>
</B_liste_grappes>
<div class="liste-objets grappes caption-wrap"><strong class="caption"><:grappes:info_aucune_grappe:></strong></div>

17
prive/squelettes/contenu/grappe.html

@ -20,13 +20,16 @@
<B_liste_aut>
<div class="liste-objets auteurs">
<table class='spip liste'>
<caption><strong class="caption"><:auteur:></strong></caption>
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}}) #AIDER{artauteurs}</strong></caption>]
<tbody>
<BOUCLE_liste_aut(AUTEURS){tout}{id_auteur=#ID_ADMIN}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class='statut'>[(#STATUT|puce_statut{auteur})]</td>
<td class='nom[ (#NOM|non)vide]'>[(#LOGO_AUTEUR|image_reduire{20,26})]<a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"[ title="(#BIO*|couper{200}|attribut_html)"]>[(#RANG). ][(#NOM|sinon{<:texte_vide:>})]</a></td>
<td class='email'>[<a href='mailto:(#EMAIL)'>[(#EMAIL|couper{30})]</a>]</td>
<td class="statut">[(#STATUT|puce_statut{auteur})]</td>
<td class="nom[ (#NOM|non)vide]"[(#LOGO_AUTEUR|non)colspan="2"]><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"[ title="(#BIO*|couper{200}|attribut_html)"]>[(#RANG). ][(#NOM|sinon{<:texte_vide:>})]</a></td>
[<td class="logo"><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]" style="background-image:url\((#LOGO_AUTEUR|image_passe_partout{40,40}|extraire_attribut{src}))"></a></td>]
<td class="email">[<a href='mailto:(#EMAIL)'>[(#EMAIL|couper{30})]</a>]</td>
<td class="nombre">&nbsp;</td>
<td class="action">&nbsp;</td>
</tr>
</BOUCLE_liste_aut>
</tbody>
@ -36,13 +39,13 @@
<!--affiche_milieu-->
<div id="wysiwyg">
<div id="wys" class="liste">
<INCLURE{fond=prive/objets/contenu/grappe,
id=#ID_GRAPPE,
id_grappe=#ID_GRAPPE,
virtuel=oui,
ajax=wysiwyg,
wysiwyg=1} />
ajax=wys,
wys=1} />
</div>
#SET{tables_liees,#LIAISONS|explode{','}|sinon{#ARRAY}|array_filter}

2
prive/squelettes/contenu/grappe_edit.html

@ -5,7 +5,7 @@
]
#SET{redirect,#ENV{redirect,#ENV{id_grappe}|?{#URL_ECRIRE{grappe,id_grappe=#ID_GRAPPE},#URL_ECRIRE{grappes}}}}
<div class='cadre-formulaire-editer'>
<div class="cadre-formulaire-editer">
<div class="entete-formulaire">
[(#ID_GRAPPE|oui)
[(#GET{redirect}|icone_verticale{[(#VAL{grappe}|objet_info{texte_retour}|_T)],#VAL{grappe}|objet_info{icone_objet},'',left retour[(#ENV{retourajax,''}|oui)ajax preload]})]

2
prive/squelettes/contenu/grappes.html

@ -1,6 +1,6 @@
<h1 class="grostitre"><:grappes:titre_page_grappes:></h1>
<div class='onglets_simple clearfix'>
<div class="onglets_simple clearfix">
<ul>
<li>[(#SELF|parametre_url{id_admin,''}|lien_ou_expose{<:grappes:info_grappes_toutes:>,[(#ENV{id_admin,''}|non)],ajax})]</li>
<li>[(#SELF|parametre_url{id_admin,#SESSION{id_auteur}}|lien_ou_expose{<:grappes:info_grappes_miennes:>,#ENV{id_admin,''}|=={#SESSION{id_auteur}},ajax})]</li>

5
prive/style_prive_plugin_grappes.html

@ -1,2 +1,7 @@
.formulaire_ajouter_objet input.text { width: 70%; }
.formulaire_ajouter_objet input.submit { margin:0; padding:0; border:none; background:none; color:inherit; text-decoration:underline; cursor:pointer; }
.liste-objets table td, .liste-objets table th { vertical-align: middle; }
.liste-objets tr td.logo img { margin: 2px auto; border: 1px solid #eee; }
.liste-objets tr td.titre a { text-decoration: none!important; }
.liste-objets.auteurs tr td.logo a { display: block; background-position: center center; background-size: cover; width: 40px; height: 40px; margin: 3px 0; border-radius: 50%; }
.grappe .infos strong { display: block; }

9
selecteurs/grappes_breves.html

@ -0,0 +1,9 @@
#HTTP_HEADER{Content-Type: text/plain; charset=#CHARSET}
#CACHE{0}
#SET{resultats, #LISTE}
<BOUCLE_s(BREVES){statut==.}{titre LIKE %(#ENV{q})%}{0,20}{par multi titre}>
<BOUCLE_h(HIERARCHIE){statut==.}{n-2,2}>[(#SET{rub,[(#TITRE|couper{12,''}) > ]})]</BOUCLE_h>
[(#SET{resultats, [(#GET{resultats}|push{[(#ARRAY{label,[(#GET{rub}|textebrut)][(#TITRE|textebrut)],value,[(#TITRE|textebrut)],id,#ID_BREVE})]})]})]
</BOUCLE_s>
[(#GET{resultats}|json_encode)]
#FILTRE{trim}

8
selecteurs/grappes_groupes_mots.html

@ -0,0 +1,8 @@
#HTTP_HEADER{Content-Type: text/plain; charset=#CHARSET}
#CACHE{0}
#SET{resultats, #LISTE}
<BOUCLE_s(GROUPES_MOTS){titre LIKE %(#ENV{q})%}{0,20}{par multi titre}>
[(#SET{resultats, [(#GET{resultats}|push{[(#ARRAY{label,[(#TYPE|textebrut)][ > (#TITRE|textebrut)],value,[(#TITRE|textebrut)],id,#ID_GROUPE})]})]})]
</BOUCLE_s>
[(#GET{resultats}|json_encode)]
#FILTRE{trim}
Loading…
Cancel
Save