Changeset 49979 in spip-zone


Ignore:
Timestamp:
Jul 25, 2011, 8:46:42 PM (10 years ago)
Author:
marcimat@…
Message:

Utiliser la liaison spip_organisations_liens pour y mettre les liaisons etre auteur et organisation.

Location:
_plugins_/contacts_et_organisations
Files:
1 added
12 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/contacts_et_organisations/action/lier_contact_auteur.php

    r47038 r49979  
    1212                $arg = $securiser_action();
    1313        }
    14         $arg = explode('/', $arg);
     14        $args = explode('/', $arg);
    1515
    1616        // cas liaison id_organisation / id_auteur
    17         if (intval($arg[0]) and is_numeric($arg[1])) {
     17        if (intval($args[0]) and is_numeric($args[1])) {
    1818                // spip_log("appel à l'action_lier_contact_auteur_dist avec $arg[0] $arg[1] comme argument");
    19                 action_lier_contact_auteur_post($arg[0], $arg[1]);
     19                action_lier_contact_auteur_post($args[0], $args[1]);
    2020        }
    2121
  • _plugins_/contacts_et_organisations/action/lier_organisation_auteur.php

    r47038 r49979  
    11<?php
    22/**
    3  * Plugin Contacts & Organisations
     3 * Plugin organisations & Organisations
    44 * Licence GPL (c) 2010-2011 Matthieu Marcillaud, Cyril Marion
    55**/
     
    1212                $arg = $securiser_action();
    1313        }
    14         $arg = explode('/', $arg);
     14        $args = explode('/', $arg);
    1515
    1616        // cas liaison id_organisation / id_auteur
    17         if (intval($arg[0]) and is_numeric($arg[1])) {
     17        if (intval($args[0]) and is_numeric($args[1])) {
    1818                // spip_log("appel à l'action_lier_organisation_auteur_dist avec $arg[0] $arg[1] comme argument");
    19                 action_lier_organisation_auteur_post($arg[0], $arg[1]);
     19                action_lier_organisation_auteur_post($args[0], $args[1]);
    2020        }
    2121
     
    3030        $id_organisation = intval($id_organisation);
    3131        if ($id_organisation) {
    32                 sql_updateq("spip_organisations", array(
    33                         "id_auteur" => $id_auteur
    34                 ), "id_organisation=" . sql_quote($id_organisation));
    35                
     32                if (!$id_auteur) {
     33                        sql_delete('spip_organisations_liens', array(
     34                                'id_organisation=' . $id_organisation,
     35                                'objet=' . sql_quote('auteur')));
     36                } else {
     37                        sql_insertq("spip_organisations_liens", array(
     38                                "objet"      => "auteur",
     39                                "id_objet"   => $id_auteur,
     40                                "id_organisation" => $id_organisation,
     41                        ));
     42                }
     43
    3644                include_spip('inc/invalideur');
    3745                suivre_invalideur("id='id_organisation/$id_organisation'");
  • _plugins_/contacts_et_organisations/action/lier_rubrique.php

    r48815 r49979  
    1212                $arg = $securiser_action();
    1313        }
    14         $arg = explode('/', $arg);
     14        $args = explode('/', $arg);
    1515
    1616        // cas liaison id_rubrique / id_organisation
    17         if (intval($arg[0]) and is_numeric($arg[1])) {
     17        if (intval($args[0]) and is_numeric($args[1])) {
    1818                //spip_log("appel à l'action_lier_rubrique_dist avec $arg[0] $arg[1] comme argument");
    19                 action_lier_rubrique_post($arg[0], $arg[1]);
     19                action_lier_rubrique_post($args[0], $args[1]);
    2020        }
    2121
  • _plugins_/contacts_et_organisations/base/contacts.php

    r48924 r49979  
    1515        $interface['tables_jointures']['spip_contacts'][]= 'contacts_liens';
    1616        $interface['tables_jointures']['spip_auteurs'][]= 'contacts_liens';
    17         $interface['tables_jointures']['spip_organisations'][] = 'auteurs';
    18         $interface['tables_jointures']['spip_auteurs'][]= 'organisations';
     17        $interface['tables_jointures']['spip_organisations'][] = 'organisations_liens';
     18        $interface['tables_jointures']['spip_auteurs'][]= 'organisations_liens';
    1919        $interface['tables_jointures']['spip_organisations_contacts'][]= 'contacts';
    2020        $interface['tables_jointures']['spip_organisations_contacts'][]= 'organisations';
     
    4949        $organisations = array(
    5050                "id_organisation"       => "bigint(21) NOT NULL auto_increment",
    51                 "id_auteur"                     => "bigint(21) NOT NULL default 0",
    5251                "id_parent"                     => "bigint(21) NOT NULL default 0",
    5352                "nom"                           => "tinytext DEFAULT '' NOT NULL",
     
    6059                );
    6160        $organisations_key = array(
    62                 "PRIMARY KEY"           => "id_organisation",
    63                 "KEY id_auteur"     => "id_auteur"
     61                "PRIMARY KEY"           => "id_organisation"
    6462                );
    65         $organisations_join = array(
     63/*      $organisations_join = array(
    6664                // sinon (ORGANISATIONS){auteurs.statut = xxx} ne fonctionne pas...
    6765                // va comprendre...
    68                 "id_auteur"             => "id_auteur",
    6966                "id_organisation"       => "id_organisation"
    70         );
     67        );*/
    7168        $tables_principales['spip_organisations'] =
    72                 array('field' => &$organisations, 'key' => &$organisations_key, 'join' => &$organisations_join);
     69                array('field' => &$organisations, 'key' => &$organisations_key,/* 'join' => &$organisations_join*/);
    7370
    7471        //-- Table contacts ------------------------------------------
     
    122119    $organisations_liens_key = array(
    123120        "PRIMARY KEY"    => "id_organisation, id_objet, objet",
    124                 "KEY id_contact" => "id_organisation"
     121                "KEY id_organisation" => "id_organisation"
    125122    );
    126123        $tables_auxiliaires['spip_organisations_liens'] =
  • _plugins_/contacts_et_organisations/base/contacts_upgrade.php

    r48211 r49979  
    154154                ecrire_meta($nom_meta_base_version, $current_version="1.3.7");
    155155        }
     156       
     157        // on utilise la table spip_organisations_liens
     158        // pour stocker le id_auteur de spip_organisations
     159    if (version_compare($current_version,"1.4.0","<")){
     160                $auteurs = sql_allfetsel(array('id_auteur', 'id_organisation'), 'spip_organisations', 'id_auteur > 0');
     161                if ($auteurs) {
     162                        foreach ($auteurs as $r) {
     163                                // possibilité d'erreur sql si la ligne est déjà là.
     164                                // rien de dramatique
     165                                sql_insertq('spip_organisations_liens', array(
     166                                        'id_organisation' => $r['id_organisation'],
     167                                        'id_objet' => $r['id_auteur'],
     168                                        'objet' => 'auteur',
     169                                ));
     170                        }
     171                }
     172                sql_alter('TABLE spip_organisations DROP INDEX id_auteur');
     173                sql_alter('TABLE spip_organisations DROP COLUMN id_auteur');
     174                ecrire_meta($nom_meta_base_version, $current_version="1.4.0");
     175        }
     176
     177        // coquille sur la clé de spip_organisations_liens
     178        if (version_compare($current_version,"1.4.1","<")){
     179                sql_alter('TABLE spip_organisations DROP INDEX id_contact');
     180                sql_alter('TABLE spip_organisations ADD INDEX (id_organisation)');
     181                ecrire_meta($nom_meta_base_version, $current_version="1.4.1");
     182        }
    156183
    157184}
  • _plugins_/contacts_et_organisations/contacts_pipelines.php

    r49970 r49979  
    3636       
    3737                $id = $flux["args"]["id_objet"];
    38                 $id_contact = sql_getfetsel('id_contact', 'spip_contacts_liens', 'objet=\'auteur\' AND id_objet=' . intval($id));
    39                 $id_organisation = sql_getfetsel('id_organisation', 'spip_organisations', 'id_auteur=' . intval($id));
     38                $id_contact = sql_getfetsel('id_contact', 'spip_contacts_liens', array('objet=' . sql_quote('auteur'), 'id_objet=' . intval($id)));
     39                $id_organisation = sql_getfetsel('id_organisation', 'spip_organisations_liens', array('objet=' . sql_quote('auteur'), 'id_objet=' . intval($id)));
    4040
    4141                if ($id_contact || $id_organisation)
     
    117117
    118118                $id = $flux["args"]["id_auteur"];
    119                 $id_contact = sql_getfetsel('id_contact', 'spip_contacts_liens', 'objet=\'auteur\' AND id_objet=' . intval($id));
    120                 $id_organisation = sql_getfetsel('id_organisation', 'spip_organisations', 'id_auteur=' . intval($id));
     119                $id_contact = sql_getfetsel('id_contact', 'spip_contacts_liens', array('objet=' . sql_quote('auteur'), 'id_objet=' . intval($id)));
     120                $id_organisation = sql_getfetsel('id_organisation', 'spip_organisations_liens', array('objet=' . sql_quote('auteur'), 'id_objet=' . intval($id)));
    121121
    122122                if ($id_contact || $id_organisation)
     
    181181        {
    182182                $id = $flux["args"]["id_auteur"];
    183                 $id_contact = sql_getfetsel('id_contact', 'spip_contacts_liens', 'objet=\'auteur\' AND id_objet=' . intval($id));
    184                 $id_organisation = sql_getfetsel('id_organisation', 'spip_organisations', 'id_auteur=' . intval($id));
     183                $id_contact = sql_getfetsel('id_contact', 'spip_contacts_liens', array('objet=' . sql_quote('auteur'), 'id_objet=' . intval($id)));
     184                $id_organisation = sql_getfetsel('id_organisation', 'spip_organisations_liens', array('objet=' . sql_quote('auteur'), 'id_objet=' . intval($id)));
    185185
    186186                if ( $id_contact || $id_organisation )
     
    259259       
    260260        // ajouter la recherche sur organisations
    261         $tables['organisation']['id_auteur'] = 12;
     261        $tables['organisation']['id_organisation'] = 12;
    262262        $tables['organisation']['nom'] = 4;
    263263
  • _plugins_/contacts_et_organisations/plugin.xml

    r49766 r49979  
    2828       
    2929        <version>1.8.12</version>
    30         <version_base>1.3.7</version_base>
     30        <version_base>1.4.1</version_base>
    3131       
    3232        <install>base/contacts_upgrade.php</install>
  • _plugins_/contacts_et_organisations/prive/infos/contact.html

    r49564 r49979  
    1919                        [(#BOUTON_ACTION{
    2020                                [(#CHEMIN{images/delier-16.png}|balise_img{<:contacts:delier_cet_auteur:>}|concat{' ',<:contacts:delier_cet_auteur:>})],
    21                                 [(#URL_ACTION_AUTEUR{lier_contact_auteur,[(#ENV{id_contact})/0],[(#ENV{redirect,#SELF})]})]})]          </div>
     21                                [(#URL_ACTION_AUTEUR{lier_contact_auteur,[(#ENV{id})/0],[(#ENV{redirect,#SELF})]})]})]          </div>
    2222                ]
    2323        </div>
  • _plugins_/contacts_et_organisations/prive/infos/organisation.html

    r49564 r49979  
    77
    88        [(#REM) faudra mettre {si #ID_AUTEUR} sur la 3.0 ]
    9         <BOUCLE_auteur_lie(AUTEURS){id_auteur}{tout}>
    10                
     9        <BOUCLE_auteur_lie(AUTEURS){tout}{id_organisation}>
    1110        <div class="numero">
    1211                <div class='num'>
     
    2221                        [(#BOUTON_ACTION{
    2322                                [(#CHEMIN{images/delier-16.png}|balise_img{<:contacts:delier_cet_auteur:>}|concat{' ',<:contacts:delier_cet_auteur:>})],
    24                                 [(#URL_ACTION_AUTEUR{lier_organisation_auteur,[(#ENV{id_organisation})/0],[(#ENV{redirect,#SELF})]})]})]                </div>
     23                                [(#URL_ACTION_AUTEUR{lier_organisation_auteur,[(#ENV{id})/0],[(#ENV{redirect,#SELF})]})]})]             </div>
    2524                ]
    2625        </div>
    27        
    2826        </BOUCLE_auteur_lie>
    2927       
  • _plugins_/contacts_et_organisations/prive/liste/organisations.html

    r49766 r49979  
    2323                {tri #ENV{order,nom},#GET{defaut_tri}}{pagination #ENV{nb,20}}>
    2424                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    25                         <td class="logo"><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">[(#LOGO_AUTEUR|sinon{[<img src="(#CHEMIN{images/organisation-24.png})" alt="Picto organisation" class="spip_logos" />]}|image_reduire{20,26})]</a></td>
     25                        <BOUCLE_lien_organisation(organisations_liens){id_organisation}>
     26                                [(#SET{url,[(#ID_OBJET|generer_url_entite{#OBJET})]})]
     27                        </BOUCLE_lien_organisation>
     28                                [(#SET{url,[(#ID_ORGANISATION|generer_url_entite{organisation})]})]
     29                        <//BOUCLE_lien_organisation>
     30                        <td class="logo"><a href="#GET{url}">#INCLURE{fond=logo/organisation, id_organisation}</a></td>
    2631                        <td class='nom'><a href="[(#ID_ORGANISATION|generer_url_entite{organisation})]">#NOM</a></td>
    2732            <td class='nb_contacts'><a href="[(#ID_ORGANISATION|generer_url_entite{organisation})]">[(#MODELE{nb_contacts}{id_organisation})]</a></td>
  • _plugins_/contacts_et_organisations/prive/liste/organisations_liees_rubrique.html

    r48815 r49979  
    33        type_liaison,1
    44}})
    5 ]<B_organisations>
     5]
     6<B_organisations>
    67#ANCRE_PAGINATION
    78<div class="liste-elements organisations">
  • _plugins_/contacts_et_organisations/prive/liste/repertoire.html

    r47056 r49979  
    1515                [(#ENV{id_parent}|non)<tr class="vide"><td colspan="2" class='vide'></td></tr>]
    1616                <tr class="[(#ENV{id_parent}|non)racine ][(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    17                         <td class="logo"><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">[(#LOGO_AUTEUR|sinon{[<img src="(#CHEMIN{images/organisation-24.png})" alt="Picto organisation" class="spip_logos" />]}|image_reduire{20,26})]</a></td>
     17                        <BOUCLE_lien_organisation(organisations_liens){id_organisation}>
     18                                [(#SET{url,[(#ID_OBJET|generer_url_entite{#OBJET})]})]
     19                        </BOUCLE_lien_organisation>
     20                                [(#SET{url,[(#ID_ORGANISATION|generer_url_entite{organisation})]})]
     21                        <//BOUCLE_lien_organisation>
     22                        <td class="logo"><a href="#GET{url}">#INCLURE{fond=logo/organisation, id_organisation}</a></td>
    1823                        <td class='nom'>
    1924                                <a [ (#ENV{id_parent}|non)class="racine" ] href="[(#ID_ORGANISATION|generer_url_entite{organisation})]">#NOM</a>
Note: See TracChangeset for help on using the changeset viewer.