Changeset 115251 in spip-zone


Ignore:
Timestamp:
May 5, 2019, 9:38:03 PM (2 weeks ago)
Author:
real3t@…
Message:

É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 ?

Location:
_plugins_/grappes/trunk
Files:
4 added
17 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/grappes/trunk/grappes_pipelines.php

    r112013 r115251  
    9696        $array['articles'] = _T('grappes:item_groupes_association_articles');
    9797        $array['auteurs'] = _T('grappes:item_groupes_association_auteurs');
     98        $array['breves'] = _T('grappes:item_groupes_association_breves');
     99        $array['groupes_mots'] = _T('grappes:item_groupes_association_groupes_mots');
    98100        $array['mots'] = _T('grappes:item_groupes_association_mots');
    99101        $array['rubriques'] = _T('grappes:item_groupes_association_rubriques');
  • _plugins_/grappes/trunk/lang/grappes_fr.php

    r98338 r115251  
    2424
    2525        // E
    26         'export_choix_label' => 'Sélectionnez les grappes a exporter',
     26        'export_choix_label' => 'Sélectionnez les grappes à exporter',
    2727        'export_titre' => 'Exporter les Grappes',
    2828
     
    4747        'info_changer_nom_grappe' => 'Changer le titre de la grappe',
    4848        'info_creation_grappes' => 'Créer ou modifier des grappes d’éléments',
    49         'info_grappes_association' => 'Quels objets peut on lier à la grappe ?',
     49        'info_grappes_association' => 'Quels objets peut-on lier à la grappe ?',
    5050        'info_grappes_miennes' => 'Mes grappes',
    5151        'info_grappes_toutes' => 'Toutes les grappes',
  • _plugins_/grappes/trunk/paquet.xml

    r112013 r115251  
    22        prefix="grappes"
    33        categorie="divers"
    4         version="1.1.8"
    5         etat="test"
     4        version="1.2.0"
     5        etat="dev"
    66        compatibilite="[3.0.0;3.2.*]"
    77        logo="prive/themes/spip/images/grappe-32.png"
  • _plugins_/grappes/trunk/prive/objets/contenu/grappe.html

    r67887 r115251  
    11<BOUCLE_grappe(GRAPPES){id_grappe}>
    2 
    3 [<div class="champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]">
    4         <label><:info_descriptif:></label>
    5         <span dir='#LANG_DIR' class='#EDIT{descriptif} descriptif'>(#DESCRIPTIF)</span>
     2[<div class="liste champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]">
     3        <h3><:info_descriptif:></h3>
     4        <p dir="#LANG_DIR" class='#EDIT{descriptif} descriptif'>(#DESCRIPTIF)</p>
    65</div>]
    7 
    8 <div class="champ contenu_acces[ (#OPTIONS*|strlen|?{'',vide})]">
    9         <label><:grappes:label_acces:> : </label>
    10         <span dir='#LANG_DIR' class='acces'><BOUCLE_options(DATA){source table, #OPTIONS|unserialize|table_valeur{acces}}{", "}>[(#VALEUR|traduire_statut_auteur)]</BOUCLE_options></span>
     6<div class="liste champ contenu_acces[ (#OPTIONS*|strlen|?{'',vide})]">
     7        <h3><:grappes:label_acces:> : </h3>
     8        <p dir="#LANG_DIR" class="acces"><BOUCLE_options(DATA){source table, #OPTIONS|unserialize|table_valeur{acces}}{", "}>[(#VALEUR|traduire_statut_auteur)]</BOUCLE_options></p>
    119</div>
    12 
    13 <div class="champ contenu_liaisons[ (#LIAISONS*|strlen|?{'',vide})]">
    14         <label><:grappes:label_liaisons:> : </label>
    15         <span dir='#LANG_DIR' class='#EDIT{liaisons} liaisons'>
     10<div class="liste champ contenu_liaisons[ (#LIAISONS*|strlen|?{'',vide})]">
     11        <h3><:grappes:label_liaisons:> : </h3>
     12        <p dir="#LANG_DIR" class="#EDIT{liaisons} liaisons">
    1613        <BOUCLE_liaisons(DATA){source table,#LIAISONS|explode{","}}{", "}>[(#VALEUR|objet_info{texte_objets}|_T)]</BOUCLE_liaisons>
    17         </span>
     14        </p>
    1815</div>
    19 
    20 [<div class="champ contenu_type[ (#TYPE*|strlen|?{'',vide})]">
    21         <label><:grappes:label_type:> : </label>
    22         <span dir='#LANG_DIR' class='#EDIT{type} type'>(#TYPE)</span>
     16[<div class="liste champ contenu_type[ (#TYPE*|strlen|?{'',vide})]">
     17        <h3><:grappes:label_type:> : </h3>
     18        <p dir="#LANG_DIR" class='#EDIT{type} type'>(#TYPE)</p>
    2319</div>]
    24 
    2520</BOUCLE_grappe>
  • _plugins_/grappes/trunk/prive/objets/infos/grappe.html

    r93676 r115251  
    11<BOUCLE_doc(GRAPPES){id_grappe=#ENV{id}}>
    2 <div class='infos'>
    3 <div class='numero'><:grappes:titre_grappe:> <:numero:><p>#ID_GRAPPE</p></div>
    4 <p><b><:grappes:info_identifiant_grappe:> :</b> #IDENTIFIANT</p>
     2<div class="infos">
     3<div class="numero"><:grappes:titre_grappe:> <:numero:><p>#ID_GRAPPE</p></div>
     4<p><strong><:grappes:info_identifiant_grappe:> :</strong> #IDENTIFIANT</p>
    55[(#AUTORISER{modifier,grappe,#ID_GRAPPE}|oui)
    66        [(#URL_ACTION_AUTEUR{supprimer_grappe,-#ID_GRAPPE,#URL_ECRIRE{grappes}}|icone_horizontale{<:grappes:icone_supprimer_grappe:>,grappe,del})]
  • _plugins_/grappes/trunk/prive/objets/liste/grappes-articles_lies.html

    r94850 r115251  
    33#ANCRE_PAGINATION
    44<div class="liste-objets liste-objets-lies articles">
    5 <table class="spip liste" id="sort-articles">
    6         [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_article,info_nb_articles}})</strong></caption>]
    7         <tbody>
    8         <BOUCLE_liste(ARTICLES spip_grappes_liens){par rang}{id_grappe ?}{pagination 10}{recherche ?}{statut?}{tout}>
    9                 <tr id="#ID_ARTICLE" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    10                         <td class='statut'>[(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE})]</td>
    11                         <td><BOUCLE_affRang(spip_grappes_liens){objet=article}{id_objet=#ID_ARTICLE}{id_grappe}>#RANG</BOUCLE_affRang></td>
    12                         <td class='titre principale'>#TITRE</td>
    13                         <td class='id'><a href="[(#ID_ARTICLE|generer_url_entite{article})]"><:grappes:voir:></a></td>
    14                         [(#ENV{editable})
    15                         <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>
    16                 ]</tr>
    17         </BOUCLE_liste>
    18         </tbody>
    19 </table>
    20 [<p class="pagination">(#PAGINATION{prive})</p>]
     5        <table class="spip liste" id="sort-articles">
     6                [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_article,info_nb_articles}})</strong></caption>]
     7                <tbody>
     8                <BOUCLE_liste(ARTICLES spip_grappes_liens){par spip_grappes_liens.rang}{id_article IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
     9                        <tr id="#ID_ARTICLE" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     10                                <td class="statut">[(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE})]</td>
     11                                <td class="titre principale"[ (#LOGO_ARTICLE_NORMAL|non)colspan="2"]><a href="[(#ID_ARTICLE|generer_url_entite{article})]"
     12                                        [hreflang="(#ENV{lang}|=={#LANG}|non|?{#LANG})"]
     13                                        title="<:info_numero_abbreviation|attribut_html:> #ID_ARTICLE">
     14                                        <BOUCLE_affRang(spip_grappes_liens){objet=article}{id_objet=#ID_ARTICLE}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#TITRE</strong>
     15                                        [<span class="soustitre">(#SOUSTITRE)</span>]</a></td>
     16                                [<td class="logo">(#LOGO_ARTICLE|image_reduire{70,*})</td>]
     17                                <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>
     18                                <td class='date secondaire'>[<span title="[(#DATE|heures_minutes)]">(#DATE|affdate_jourcourt)</span>]</td>
     19                                [(#ENV{editable})
     20                                <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>
     21                                ]
     22                        </tr>
     23                </BOUCLE_liste>
     24                </tbody>
     25        </table>
     26        [<p class="pagination">(#PAGINATION{prive})</p>]
    2127</div>
    2228</B_liste>
     
    3743        });
    3844        request.done(function() {
    39             $('.formulaire_lier_objets').ajaxReload(); // Une fois trié on recharge la liste
    40         });       
     45            $("#sort-articles").ajaxReload(); // Une fois trié on recharge la liste concernée
     46        });
    4147    });
    4248});
  • _plugins_/grappes/trunk/prive/objets/liste/grappes-auteurs_lies.html

    r93676 r115251  
    33#ANCRE_PAGINATION
    44<div class="liste-objets liste-objets-lies auteurs">
    5 <table class='spip liste' id="sort-auteurs">
    6         [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}})</strong></caption>]
    7         <tbody>
    8         <BOUCLE_liste(AUTEURS spip_grappes_liens){par spip_grappes_liens.rang}{id_auteur IN #GET{selection}}{pagination 10}{recherche ?}{statut ?}{tout}>
    9                 <tr id="#ID_AUTEUR" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    10                         <td class='statut'>[(#STATUT|puce_statut{auteur})]</td>
    11                         <td><BOUCLE_affRang(spip_grappes_liens){objet=auteur}{id_objet=#ID_AUTEUR}{id_grappe}>#RANG</BOUCLE_affRang></td>
    12                         <td class='nom'>#NOM[ <small>((#LOGIN))</small>]</td>
    13                         <td class='id'><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"><:grappes:voir:></a></td>
    14                         [(#ENV{editable})
    15                         <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>
    16                 ]</tr>
    17         </BOUCLE_liste>
    18         </tbody>
    19 </table>
    20 [<p class="pagination">(#PAGINATION{prive})</p>]
     5        <table class="spip liste" id="sort-auteurs">
     6                [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}})</strong></caption>]
     7                <tbody>
     8                <BOUCLE_liste(AUTEURS spip_grappes_liens){par spip_grappes_liens.rang}{id_auteur IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
     9                        <tr id="#ID_AUTEUR" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     10                                <td class="statut">[(#STATUT|puce_statut{auteur})]</td>
     11                                <td class="titre principale"><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">
     12                                        <BOUCLE_affRang(spip_grappes_liens){objet=auteur}{id_objet=#ID_AUTEUR}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#NOM[ <small>((#LOGIN))</small>]</strong></a></td>
     13                                <td class="logo">[(#LOGO_AUTEUR|image_reduire{70,*})]</td>
     14                                [(#ENV{editable})
     15                                <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>
     16                                ]
     17                        </tr>
     18                </BOUCLE_liste>
     19                </tbody>
     20        </table>
     21        [<p class="pagination">(#PAGINATION{prive})</p>]
    2122</div>
    2223</B_liste>
     
    3738        });
    3839        request.done(function() {
    39             $('.formulaire_lier_objets').ajaxReload();
    40         });       
     40            $("#sort-auteurs").ajaxReload(); // Une fois trié on recharge la liste concernée
     41        });
    4142    });
    4243});
  • _plugins_/grappes/trunk/prive/objets/liste/grappes-documents_lies.html

    r93676 r115251  
    33#ANCRE_PAGINATION
    44<div class="liste-objets liste-objets-lies documents">
    5 <table class='spip liste' id="sort-documents">
    6     [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{medias:un_document,medias:des_documents}})</strong></caption>]
    7     <tbody>
    8     <BOUCLE_liste(DOCUMENTS spip_grappes_liens){par spip_grappes_liens.rang}{id_document IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
    9             <tr id="#ID_DOCUMENT" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    10                     <td class='picto'>[(#CHEMIN_IMAGE{document-16.png}|balise_img)]</td>
    11                     <td><BOUCLE_affRang(spip_grappes_liens){objet=document}{id_objet=#ID_DOCUMENT}{id_grappe}>#RANG</BOUCLE_affRang></td>
    12                     <td class='titre principale'>[(#LOGO_DOCUMENT|image_reduire{20,26})][(#TITRE|sinon{[(#FICHIER|basename)]})]</td>
    13                     <td class='id'><a href="[(#ID_DOCUMENT|generer_url_entite{document})]"><:grappes:voir:></a></td>
    14             [(#ENV{editable})
    15                     <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>
    16             ]</tr>
    17     </BOUCLE_liste>
    18     </tbody>
    19 </table>
    20 [<p class="pagination">(#PAGINATION{prive})</p>]
     5        <table class="spip liste" id="sort-documents">
     6                [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{medias:un_document,medias:des_documents}})</strong></caption>]
     7                <tbody>
     8                <BOUCLE_liste(DOCUMENTS spip_grappes_liens){par spip_grappes_liens.rang}{id_document IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
     9                        <tr id="#ID_DOCUMENT" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     10                                <td class="statut">[(#CHEMIN_IMAGE{document-16.png}|balise_img)]</td>
     11                                <BOUCLE_affRang(spip_grappes_liens){objet=document}{id_objet=#ID_DOCUMENT}{id_grappe}>#SET{valRang,#RANG. }</BOUCLE_affRang>
     12                                <td class="titre principale"><a href="[(#URL_ECRIRE{document_edit,id_document=#ID_DOCUMENT})]">#GET{valRang}<strong>[(#TITRE|sinon{[(#FICHIER|basename)]})]</strong></a></td>
     13                                <td class="logo">[(#LOGO_DOCUMENT|image_reduire{70,*})]</td>
     14                                <td class="extenSion">#EXTENSION</td>
     15                                [(#ENV{editable})
     16                                <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>
     17                                ]
     18                        </tr>
     19                </BOUCLE_liste>
     20                </tbody>
     21        </table>
     22        [<p class="pagination">(#PAGINATION{prive})</p>]
    2123</div>
    2224</B_liste>
    2325<div class="liste-objets liste-objets-lies documents caption-wrap"><strong class="caption"><:medias:aucun_document:></strong></div>
    2426<//B_liste>
    25    
    26  
    2727<script>
    2828$(function() {
     
    3939        });
    4040        request.done(function() {
    41             $('.formulaire_lier_objets').ajaxReload();
    42         });       
     41            $("#sort-documents").ajaxReload(); // Une fois trié on recharge la liste concernée
     42        });
    4343    });
    4444});
  • _plugins_/grappes/trunk/prive/objets/liste/grappes-grappes_lies.html

    r78040 r115251  
    44#ANCRE_PAGINATION
    55<div class="liste-objets liste-objets-lies grappes">
    6 <table class='spip liste'>
    7         [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{grappes:info_1_grappe,grappes:info_nb_grappes}})</strong></caption>]
    8         <tbody>
    9         <BOUCLE_liste(GRAPPES){id_grappe IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
    10         <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> #SET{id_grappe,#ID_GRAPPE}
    11                 <td class='picto'>[(#CHEMIN_IMAGE{grappe-16.png}|balise_img)]</td>
    12                 <td class='titre principale'>#TITRE</td>
    13                 <td class='id'><a href="[(#GET{id_grappe}|generer_url_entite{grappe})]"><:grappes:voir:></a></td>
    14                 [(#GET{editable})
    15                 <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>
    16         ]</tr>
    17         </BOUCLE_liste>
    18         </tbody>
    19 </table>
    20 [<p class="pagination">(#PAGINATION{prive})</p>]
     6        <table class="spip liste">
     7                [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{grappes:info_1_grappe,grappes:info_nb_grappes}})</strong></caption>]
     8                <tbody>
     9                <BOUCLE_liste(GRAPPES){id_grappe IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
     10                        <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> #SET{id_grappe,#ID_GRAPPE}
     11                                <td class="picto">[(#CHEMIN_IMAGE{grappe-16.png}|balise_img)]</td>
     12                                <td class="titre principale"><a href="[(#GET{id_grappe}|generer_url_entite{grappe})]">#TITRE</a></td>
     13                                <td class="logo">[(#LOGO_GRAPPE|image_reduire{70,*})]</td>
     14                                [(#GET{editable})
     15                                <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>
     16                        ]</tr>
     17                </BOUCLE_liste>
     18                </tbody>
     19        </table>
     20        [<p class="pagination">(#PAGINATION{prive})</p>]
    2121</div>
    2222</B_liste>
  • _plugins_/grappes/trunk/prive/objets/liste/grappes-mots_lies.html

    r78040 r115251  
    33#ANCRE_PAGINATION
    44<div class="liste-objets liste-objets-lies mots">
    5 <table class='spip liste'>
    6         [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_mot_cle,info_nb_mots_cles}})</strong></caption>]
    7         <tbody>
    8         <BOUCLE_liste(MOTS){id_mot IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
    9                 <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    10                         <td class='picto'>[(#VAL|puce_statut{mot,#ID_MOT,#ID_GROUPE})]</td>
    11                         <td class='titre principale'>[(#LOGO_MOT|image_reduire{20,20})]#TITRE</td>
    12                         <td class='id'><a href="[(#ID_MOT|generer_url_entite{mot})]"><:grappes:voir:></a></td>
    13                         [(#ENV{editable})
    14                         <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>
    15                 ]</tr>
    16         </BOUCLE_liste>
    17         </tbody>
    18 </table>
    19 [<p class="pagination">(#PAGINATION{prive})</p>]
     5        <table class="spip liste" id="sort-mots">
     6                [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_mot_cle,info_nb_mots_cles}})</strong></caption>]
     7                <tbody>
     8                <BOUCLE_liste(MOTS spip_grappes_liens){par spip_grappes_liens.rang}{id_mot IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
     9                        <tr id="#ID_MOT" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     10                                <td class="statut">[(#VAL|puce_statut{mot,#ID_MOT,#ID_GROUPE})]</td>
     11
     12                                <td class="titre principale"><a href="[(#ID_MOT|generer_url_entite{mot})]">
     13                                        <BOUCLE_affRang(spip_grappes_liens){objet=mot}{id_objet=#ID_MOT}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#TITRE</strong></a></td>
     14                                <td class="logo">[(#LOGO_MOT|image_reduire{70,*})]</td>
     15                                [(#ENV{editable})
     16                                <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>
     17                                ]
     18                        </tr>
     19                </BOUCLE_liste>
     20                </tbody>
     21        </table>
     22        [<p class="pagination">(#PAGINATION{prive})</p>]
    2023</div>
    2124</B_liste>
    2225<div class="liste-objets liste-objets-lies mots caption-wrap"><strong class="caption"><:mots:info_aucun_mot_cle:></strong></div>
    2326<//B_liste>
     27<script>
     28$(function(){
     29    $("#sort-mots").sortable({
     30        items:"tr",
     31        cursor:"move"
     32    });
     33    $("#sort-mots").disableSelection();
     34    $("#sort-mots").bind("sortupdate", function(event, ui){
     35        var ordre = $(this).sortable('toArray').toString();
     36        var request = $.ajax({
     37            type: "POST",
     38            url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=mot&sort="+ordre
     39        });
     40        request.done(function() {
     41            $("#sort-mots").ajaxReload(); // Une fois trié on recharge la liste concernée
     42        });
     43    });
     44});
     45</script>
  • _plugins_/grappes/trunk/prive/objets/liste/grappes-rubriques_lies.html

    r78040 r115251  
    33#ANCRE_PAGINATION
    44<div class="liste-objets liste-objets-lies rubriques">
    5 <table class='spip liste'>
    6         [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_rubrique,info_nb_rubriques}})</strong></caption>]
    7         <tbody>
    8         <BOUCLE_liste(RUBRIQUES){id_rubrique IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
    9                 <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    10                         <td class='picto'>[(#CHEMIN_IMAGE{rubrique-16.png}|balise_img)]</td>
    11                         <td class='titre'>#TITRE</td>
    12                         <td class='id'><a href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]"><:grappes:voir:></a></td>
    13                         [(#ENV{editable})
    14                         <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>
    15                 ]</tr>
    16         </BOUCLE_liste>
    17         </tbody>
    18 </table>
    19 [<p class="pagination">(#PAGINATION{prive})</p>]
     5        <table class="spip liste" id="sort-rubriques">
     6                [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_rubrique,info_nb_rubriques}})</strong></caption>]
     7                <tbody>
     8                <BOUCLE_liste(RUBRIQUES spip_grappes_liens){par spip_grappes_liens.rang}{id_rubrique IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
     9                        <tr id="#ID_RUBRIQUE" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     10                                <td class="statut">[(#CHEMIN_IMAGE{rubrique-16.png}|balise_img)]</td>
     11                                <td class="titre principale"><a href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]">
     12                                        <BOUCLE_affRang(spip_grappes_liens){objet=rubrique}{id_objet=#ID_RUBRIQUE}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#TITRE</strong></a></td>
     13                                <td class="logo">[(#LOGO_RUBRIQUE|image_reduire{70,*})]</td>
     14                                [(#ENV{editable})
     15                                <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>
     16                                ]
     17                        </tr>
     18                </BOUCLE_liste>
     19                </tbody>
     20        </table>
     21        [<p class="pagination">(#PAGINATION{prive})</p>]
    2022</div>
    2123</B_liste>
    2224<div class="liste-objets liste-objets-lies rubriques caption-wrap"><strong class="caption"><:info_aucun_rubrique:></strong></div>
    2325<//B_liste>
     26<script>
     27$(function(){
     28    $("#sort-rubriques").sortable({
     29        items:"tr",
     30        cursor:"move"
     31    });
     32    $("#sort-rubriques").disableSelection();
     33    $("#sort-rubriques").bind("sortupdate", function(event, ui){
     34        var ordre = $(this).sortable('toArray').toString();
     35        var request = $.ajax({
     36            type: "POST",
     37            url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=rubrique&sort="+ordre
     38        });
     39        request.done(function() {
     40            $("#sort-rubriques").ajaxReload(); // Une fois trié on recharge la liste concernée
     41        });
     42    });
     43});
     44</script>
  • _plugins_/grappes/trunk/prive/objets/liste/grappes-syndic_lies.html

    r79217 r115251  
    22<B_liste>
    33#ANCRE_PAGINATION
    4 <div class="liste-objets liste-objets-lies syndic">
    5 <table class='spip liste'>
    6         [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_site,info_nb_sites}})</strong></caption>]
    7         <tbody>
    8         <BOUCLE_liste(SITES){id_syndic IN #GET{selection}}{pagination 10}{recherche ?}{statut?}{tout}>
    9                 <tr class="tr_liste">
    10                         <td class='statut'>[(#STATUT|puce_statut{site,#ID_SYNDIC,#ID_RUBRIQUE}) ]</td>
    11                         <td class='nom_site principale'>[(#LOGO_SITE|image_reduire{26,20})]#NOM_SITE</td>
    12                         <td class='id'><a href="[(#ID_SYNDIC|generer_url_entite{site})]"><:grappes:voir:></a></td>
    13                         [(#ENV{editable})
    14                         <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>
    15                 ]</tr>
    16         </BOUCLE_liste>
    17         </tbody>
    18 </table>
    19 [<p class="pagination">(#PAGINATION{prive})</p>]
     4<div class="liste-objets liste-objets-lies sites syndic">
     5        <table class="spip liste" id="sort-sites">
     6                [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{sites:info_1_site,sites:info_nb_sites}})</strong></caption>]
     7                <tbody>
     8                <BOUCLE_liste(SYNDIC spip_grappes_liens){par spip_grappes_liens.rang}{id_syndic IN #GET{selection}}{id_grappe ?}{pagination 5}{recherche ?}{statut?}{tout}>
     9                        <tr id="#ID_SYNDIC" class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     10                                <td class="statut">[(#STATUT|puce_statut{syndic,#ID_SYNDIC,#ID_RUBRIQUE}) ]</td>
     11                                <td class="titre principale"><a href="[(#ID_SYNDIC|generer_url_entite{syndic})]">
     12                                        <BOUCLE_affRang(spip_grappes_liens){objet=site}{id_objet=#ID_SYNDIC}{id_grappe}>#RANG. </BOUCLE_affRang><strong>#NOM_SITE</strong></a></td>
     13                                <td class="logo">[(#LOGO_SYNDIC|image_reduire{70,*})]</td>
     14                                [(#ENV{editable})
     15                                <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>
     16                                ]
     17                        </tr>
     18                </BOUCLE_liste>
     19                </tbody>
     20        </table>
     21        [<p class="pagination">(#PAGINATION{prive})</p>]
    2022</div>
    2123</B_liste>
    22 <div class="liste-objets liste-objets-lies syndic caption-wrap"><strong class="caption"><:info_aucun_site:></strong></div>
     24<div class="liste-objets liste-objets-lies sites syndic caption-wrap"><strong class="caption"><:sites:info_aucun_site:></strong></div>
    2325<//B_liste>
     26<script>
     27$(function(){
     28    $("#sort-sites").sortable({
     29        items:"tr",
     30        cursor:"move"
     31    });
     32    $("#sort-sites").disableSelection();
     33    $("#sort-sites").bind("sortupdate", function(event, ui){
     34        var ordre = $(this).sortable('toArray').toString();
     35        var request = $.ajax({
     36            type: "POST",
     37            url: "?action=trier_objets&id_grappe=#ENV{id_grappe}&objet=site&sort="+ordre
     38        });
     39        request.done(function() {
     40            $("#sort-sites").ajaxReload(); // Une fois trié on recharge la liste concernée
     41        });
     42    });
     43});
     44</script>
  • _plugins_/grappes/trunk/prive/objets/liste/grappes.html

    r93676 r115251  
    22        titre,1,
    33        identifiant,1,
    4         date,-1, 
     4        date,-1,
    55        id_grappe,1,
    66        points,-1
     
    88#ANCRE_PAGINATION
    99<div class="liste-objets grappes">
    10 <table class='spip liste'>
     10<table class="spip liste">
    1111        [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{grappes:info_1_grappe,grappes:info_nb_grappes}})</strong></caption>]
    1212        <thead>
    1313                <tr class='first_row'>
    14                         <th class='picto' scope='col'></th>
    15                         <th class="identifiant" scope="col">[(#TRI{identifiant,<:grappes:info_identifiant_grappe:>,ajax})]</th>
    16                         <th class='titre' scope='col'>[(#TRI{titre,<:grappes:info_nom_grappe:>,ajax})]</th>
    17                         <th class='date' scope='col'>[(#TRI{date,<:date:>,ajax})]</th>
    18                         <th class='id' scope='col'>[(#TRI{id_grappe,<:info_numero_abbreviation:>,ajax})]</th>
     14                        <th class="picto" scope="col"></th>
     15            <th class="identifiant" scope="col">[(#TRI{identifiant,<:grappes:info_identifiant_grappe:>,ajax})]</th>
     16                        <th class="titre" scope="col">[(#TRI{titre,<:grappes:info_nom_grappe:>,ajax})]</th>
     17                        <th class="logo" scope="col"></th>
     18                        <th class="date" scope="col">[(#TRI{date,<:date:>,ajax})]</th>
     19                        <th class="id" scope="col">[(#TRI{id_grappe,<:info_numero_abbreviation:>,ajax})]</th>
    1920                </tr>
    2021        </thead>
    2122        <tbody>
    2223        <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}}>
    23                 <tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
    24                         <td class='picto'>[(#CHEMIN_IMAGE{grappe-16.png}|balise_img)]</td>
    25                         <td class="identifiant principale"><a href="[(#ID_GRAPPE|generer_url_entite{grappe})]">#IDENTIFIANT</a></td>
    26                         <td class='titre principale'>[(#LOGO_GRAPPE|image_reduire{20,26})]<a href="[(#ID_GRAPPE|generer_url_entite{grappe})]">[(#RANG). ]#TITRE</a></td>
    27                         <td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td>
    28                         <td class='id'>[(#AUTORISER{modifier,grappe,#ID_GRAPPE}|?{
     24                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
     25                        <td class="picto">[(#CHEMIN_IMAGE{grappe-16.png}|balise_img)]</td>
     26                        <td class="identifiant principale"><a href="[(#ID_GRAPPE|generer_url_entite{grappe})]">#IDENTIFIANT</a></td>
     27                        <td class="titre principale"[ (#LOGO_GRAPPE|non)colspan="2"]><a href="[(#ID_GRAPPE|generer_url_entite{grappe})]">[(#RANG). ]#TITRE</a></td>
     28                        [<td class="logo">(#LOGO_GRAPPE|image_reduire{70,*})</td>]
     29                        <td class="date secondaire">[(#DATE|affdate_jourcourt)]</td>
     30                        <td class="id">[(#AUTORISER{modifier,grappe,#ID_GRAPPE}|?{
    2931                                <a href="[(#URL_ECRIRE{grappe_edit,id_grappe=#ID_GRAPPE})]">#ID_GRAPPE</a>,
    3032                                #ID_GRAPPE
     
    3436        </tbody>
    3537</table>
    36 [<p class='pagination'>(#PAGINATION{prive})</p>]
     38[<p class="pagination">(#PAGINATION{prive})</p>]
    3739</div>
    3840</B_liste_grappes>
  • _plugins_/grappes/trunk/prive/squelettes/contenu/grappe.html

    r92336 r115251  
    2121<div class="liste-objets auteurs">
    2222<table class='spip liste'>
    23 <caption><strong class="caption"><:auteur:></strong></caption>
     23[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}}) #AIDER{artauteurs}</strong></caption>]
    2424        <tbody>
    2525        <BOUCLE_liste_aut(AUTEURS){tout}{id_auteur=#ID_ADMIN}>
    2626                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    27                         <td class='statut'>[(#STATUT|puce_statut{auteur})]</td>
    28                         <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>
    29                         <td class='email'>[<a href='mailto:(#EMAIL)'>[(#EMAIL|couper{30})]</a>]</td>
     27                        <td class="statut">[(#STATUT|puce_statut{auteur})]</td>
     28                        <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>
     29                        [<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>]
     30                        <td class="email">[<a href='mailto:(#EMAIL)'>[(#EMAIL|couper{30})]</a>]</td>
     31                        <td class="nombre">&nbsp;</td>
     32                        <td class="action">&nbsp;</td>
    3033                </tr>
    3134        </BOUCLE_liste_aut>
     
    3740<!--affiche_milieu-->
    3841
    39 <div id="wysiwyg">
     42<div id="wys" class="liste">
    4043        <INCLURE{fond=prive/objets/contenu/grappe,
    4144                id=#ID_GRAPPE,
    4245                id_grappe=#ID_GRAPPE,
    4346                virtuel=oui,
    44                 ajax=wysiwyg,
    45                 wysiwyg=1} />
     47                ajax=wys,
     48                wys=1} />
    4649</div>
    4750
  • _plugins_/grappes/trunk/prive/squelettes/contenu/grappe_edit.html

    r67306 r115251  
    66#SET{redirect,#ENV{redirect,#ENV{id_grappe}|?{#URL_ECRIRE{grappe,id_grappe=#ID_GRAPPE},#URL_ECRIRE{grappes}}}}
    77
    8 <div class='cadre-formulaire-editer'>
     8<div class="cadre-formulaire-editer">
    99<div class="entete-formulaire">
    1010        [(#ID_GRAPPE|oui)
  • _plugins_/grappes/trunk/prive/squelettes/contenu/grappes.html

    r66848 r115251  
    11<h1 class="grostitre"><:grappes:titre_page_grappes:></h1>
    22
    3 <div class='onglets_simple clearfix'>
     3<div class="onglets_simple clearfix">
    44        <ul>
    55                <li>[(#SELF|parametre_url{id_admin,''}|lien_ou_expose{<:grappes:info_grappes_toutes:>,[(#ENV{id_admin,''}|non)],ajax})]</li>
  • _plugins_/grappes/trunk/prive/style_prive_plugin_grappes.html

    r66869 r115251  
    11.formulaire_ajouter_objet input.text { width: 70%; }
    22.formulaire_ajouter_objet input.submit { margin:0; padding:0; border:none; background:none; color:inherit; text-decoration:underline; cursor:pointer; }
     3.liste-objets table td, .liste-objets table th { vertical-align: middle; }
     4.liste-objets tr td.logo img { margin: 2px auto; border: 1px solid #eee; }
     5.liste-objets tr td.titre a { text-decoration: none!important; }
     6.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%; }
     7.grappe .infos strong { display: block; }
Note: See TracChangeset for help on using the changeset viewer.