Browse Source

fix #1 : compatibilité avec SPIP 3.3.

Attention : *rupture de compatibilité*, il faut mettre à jour tous les squelettes qui utilisent des grappes avec {par rang} et remplacer par {par rang_lien}
svn/root/tags/v2.0.0
Jacques Pyrat 2 years ago
parent
commit
a778a83437
  1. 4
      action/editer_grappe.php
  2. 4
      action/lier_objets.php
  3. 4
      action/trier_objets.php
  4. 2
      base/grappes.php
  5. 2
      grappes_administrations.php
  6. 7
      paquet.xml
  7. 4
      prive/objets/liste/grappes-articles_lies.html
  8. 4
      prive/objets/liste/grappes-auteurs_lies.html
  9. 4
      prive/objets/liste/grappes-breves_lies.html
  10. 4
      prive/objets/liste/grappes-documents_lies.html
  11. 4
      prive/objets/liste/grappes-groupes_mots_lies.html
  12. 4
      prive/objets/liste/grappes-mots_lies.html
  13. 4
      prive/objets/liste/grappes-rubriques_lies.html
  14. 4
      prive/objets/liste/grappes-syndic_lies.html
  15. 2
      selecteurs/grappes_articles.html

4
action/editer_grappe.php

@ -55,13 +55,15 @@ function grappe_inserer($id_parent = null, $champs = array()) {
)
);
if (is_array($champs['liaisons'])) {
if (!empty($champs['liaisons']) && is_array($champs['liaisons'])) {
$champs['liaisons'] = implode(',', $champs['liaisons']);
}
if (isset($champs['acces'])) {
$opt['acces'] = $champs['acces'];
unset($champs['acces']);
} else {
$opt = '';
}
$champs['options'] = serialize($opt);

4
action/lier_objets.php

@ -47,10 +47,10 @@ function lier_objets($source, $id_source, $cible, $id_cible) {
// si la source n'est pas une grappe on inverse le sens de la liaison pour matcher l'autorisation grappe_associer
if ($source != 'grappe') {
$rang = definir_rang($id_cible, $source);
objet_associer(array($cible => $id_cible), array($source => $id_source), array('rang' => $rang));
objet_associer(array($cible => $id_cible), array($source => $id_source), array('rang_lien' => $rang));
} else {
$rang = definir_rang($id_source, $cible);
objet_associer(array($source => $id_source), array($cible => $id_cible), array('rang' => $rang));
objet_associer(array($source => $id_source), array($cible => $id_cible), array('rang_lien' => $rang));
}
}

4
action/trier_objets.php

@ -14,9 +14,9 @@ function action_trier_objets_dist() {
$objet = _request('objet');
$sort = explode(',', _request('sort'));
//$classement = sql_allfetsel('*', 'spip_grappes_liens', 'id_grappe=' . intval($id_grappe),'','rang');
//$classement = sql_allfetsel('*', 'spip_grappes_liens', 'id_grappe=' . intval($id_grappe),'','rang_lien');
foreach ($sort as $cle => $valeur) {
sql_updateq('spip_grappes_liens', array('rang' => $cle+1 ), 'id_grappe = ' . intval($id_grappe) . ' AND objet = ' . sql_quote($objet) . ' AND id_objet='.intval($valeur));
sql_updateq('spip_grappes_liens', array('rang_lien' => $cle+1 ), 'id_grappe = ' . intval($id_grappe) . ' AND objet = ' . sql_quote($objet) . ' AND id_objet='.intval($valeur));
}
if ($redirect = _request('redirect')) {

2
base/grappes.php

@ -104,7 +104,7 @@ function grappes_declarer_tables_auxiliaires($tables_auxiliaires){
"id_grappe" => "bigint(21) NOT NULL",
"objet" => "VARCHAR (25) DEFAULT '' NOT NULL",
"id_objet" => "bigint(21) NOT NULL",
"rang" => "bigint(21) NOT NULL"
"rang_lien" => "bigint(21) NOT NULL"
);
$spip_grappes_liens_key = array(

2
grappes_administrations.php

@ -30,10 +30,10 @@ function grappes_upgrade($nom_meta_base_version, $version_cible) {
$maj['create'] = array(array('maj_tables', array('spip_grappes', 'spip_grappes_liens')));
$maj['0.2.0'] = array(array('maj_tables', 'spip_grappes'));
$maj['0.2.1'] = array(array('maj_tables', array('spip_grappes', 'spip_grappes_liens')));
$maj['0.2.2'] = array(array('sql_alter', 'TABLE spip_grappes_liens CHANGE COLUMN rang rang bigint(21) NOT NULL DEFAULT 0'));
$maj['0.2.3'] = array(array('sql_updateq','spip_grappes_liens', array('objet'=>'site'), "objet='syndic'"));
$maj['0.2.4'] = array(array('sql_alter',"TABLE spip_grappes ADD date datetime NOT NULL DEFAULT '0000-00-00 00:00:00'"));
$maj['0.2.5'] = array(array('maj_tables', 'spip_grappes'));
$maj['0.2.6'] = array(array('sql_alter','TABLE spip_grappes_liens CHANGE COLUMN rang rang_lien bigint(21) NOT NULL DEFAULT 0'));
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);

7
paquet.xml

@ -1,11 +1,11 @@
<paquet
prefix="grappes"
categorie="divers"
version="1.2.3"
version="2.0.0"
etat="test"
compatibilite="[3.0.0;3.2.*]"
compatibilite="[3.0.0;3.3.*]"
logo="prive/themes/spip/images/grappe-32.png"
schema="0.2.5"
schema="0.2.6"
documentation="https://contrib.spip.net/4282"
>
@ -15,6 +15,7 @@
<auteur>Matthieu Marcillaud</auteur>
<auteur>b_b</auteur>
<auteur>Arnaud B. (Mist. GraphX)</auteur>
<auteur>RealET</auteur>
<pipeline nom="declarer_tables_interfaces" inclure="base/grappes.php" />
<pipeline nom="declarer_tables_objets_sql" inclure="base/grappes.php" />

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

@ -5,13 +5,13 @@
<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}>
<BOUCLE_liste(ARTICLES spip_grappes_liens){par spip_grappes_liens.rang_lien}{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>
<BOUCLE_affRang(spip_grappes_liens){objet=article}{id_objet=#ID_ARTICLE}{id_grappe}>#RANG_LIEN. </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>

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

@ -5,11 +5,11 @@
<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}>
<BOUCLE_liste(AUTEURS spip_grappes_liens){par spip_grappes_liens.rang_lien}{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>
<BOUCLE_affRang(spip_grappes_liens){objet=auteur}{id_objet=#ID_AUTEUR}{id_grappe}>#RANG_LIEN. </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>

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

@ -5,11 +5,11 @@
<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}>
<BOUCLE_liste(BREVES spip_grappes_liens){par spip_grappes_liens.rang_lien}{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>
<BOUCLE_affRang(spip_grappes_liens){objet=breve}{id_objet=#ID_BREVE}{id_grappe}>#RANG_LIEN. </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})

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

@ -5,10 +5,10 @@
<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}>
<BOUCLE_liste(DOCUMENTS spip_grappes_liens){par spip_grappes_liens.rang_lien}{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>
<BOUCLE_affRang(spip_grappes_liens){objet=document}{id_objet=#ID_DOCUMENT}{id_grappe}>#SET{valRang,#RANG_LIEN. }</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>

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

@ -1,6 +1,6 @@
#SET{selectiondesordre,#ENV{objet}|objet_type|lister_objets_lies{grappe,#ID_GRAPPE,grappe}}
#SET{selection, #ARRAY}
<BOUCLE_RangSelection(GRAPPES_LIENS){id_objet IN #GET{selectiondesordre}}{par rang}>
<BOUCLE_RangSelection(GRAPPES_LIENS){id_objet IN #GET{selectiondesordre}}{par rang_lien}>
[(#SET{selection,#GET{selection}|push{#ID_OBJET}})]
</BOUCLE_RangSelection>
<B_liste>
@ -13,7 +13,7 @@
<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>
<BOUCLE_affRang(spip_grappes_liens){objet=groupe_mots}{id_objet=#ID_GROUPE}{id_grappe}>#RANG_LIEN. </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>

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

@ -5,12 +5,12 @@
<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}>
<BOUCLE_liste(MOTS spip_grappes_liens){par spip_grappes_liens.rang_lien}{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>
<BOUCLE_affRang(spip_grappes_liens){objet=mot}{id_objet=#ID_MOT}{id_grappe}>#RANG_LIEN. </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>

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

@ -5,11 +5,11 @@
<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}>
<BOUCLE_liste(RUBRIQUES spip_grappes_liens){par spip_grappes_liens.rang_lien}{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>
<BOUCLE_affRang(spip_grappes_liens){objet=rubrique}{id_objet=#ID_RUBRIQUE}{id_grappe}>#RANG_LIEN. </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>

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

@ -5,11 +5,11 @@
<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}>
<BOUCLE_liste(SYNDIC spip_grappes_liens){par spip_grappes_liens.rang_lien}{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>
<BOUCLE_affRang(spip_grappes_liens){objet=site}{id_objet=#ID_SYNDIC}{id_grappe}>#RANG_LIEN. </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>

2
selecteurs/grappes_articles.html

@ -2,7 +2,7 @@
#CACHE{0}
#SET{resultats, #LISTE}
<BOUCLE_s(ARTICLES){tout}{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{rub,\[<:pages:pages_uniques:>\] > })]<//B_h>
<BOUCLE_h(HIERARCHIE){id_article}{statut==.}{n-2,2}>[(#REM) Il faut un espace ici (qui sera nettoyé par le trim final) pour que la hiérarchie soit considérée comme non vide] [(#SET{rub,[(#TITRE|couper{12,''}) > ]})]</BOUCLE_h>[(#SET{rub,\[<:pages:pages_uniques:>\] > })]<//B_h>
[(#SET{resultats, [(#GET{resultats}|push{[(#ARRAY{label,[(#GET{rub}|textebrut)][(#TITRE|textebrut)],value,[(#TITRE|textebrut)],id,#ID_ARTICLE})]})]})]
</BOUCLE_s>
[(#GET{resultats}|json_encode)]

Loading…
Cancel
Save