Changeset 99790 in spip-zone


Ignore:
Timestamp:
Oct 3, 2016, 10:11:48 AM (3 years ago)
Author:
cedric@…
Message:

completer le nettoyage de base avec les liens morts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/contacts_et_organisations/trunk/contacts_pipelines.php

    r99785 r99790  
    253253        }
    254254
     255        # supprimer les liens contacts_liens dont les contacts ont disparu
     256        $res = sql_select(
     257                "CL.id_contact",
     258                "spip_contacts_liens AS CL
     259                        LEFT JOIN spip_contacts AS C
     260                        ON CL.id_contact=C.id_contact",
     261                "C.id_contact IS NULL"
     262        );
     263        while ($row = sql_fetch($res)) {
     264                $id_contact = $row['id_contact'];
     265                sql_delete("spip_contacts_liens", "id_contact=" . sql_quote($id_contact));
     266        }
     267
     268        # supprimer les liens organisations_liens dont les organisations ont disparues
     269        $res = sql_select(
     270                "OL.id_organisation",
     271                "spip_organisations_liens AS OL
     272                        LEFT JOIN spip_organisations AS O
     273                        ON OL.id_organisation=O.id_organisation",
     274                "O.id_organisation IS NULL"
     275        );
     276        while ($row = sql_fetch($res)) {
     277                $id_organisation = $row['id_organisation'];
     278                sql_delete("spip_organisations_liens", "id_organisation=" . sql_quote($id_organisation));
     279        }
     280
     281        # supprimer les liens organisations_liens dont les contacts ont disparus
     282        $res = sql_select(
     283                "OL.id_objet",
     284                "spip_organisations_liens AS OL
     285                        LEFT JOIN spip_contacts AS C
     286                        ON (OL.id_objet=C.id_contact AND OL.objet='contact')",
     287                "OL.objet='contact' AND C.id_contact IS NULL"
     288        );
     289        while ($row = sql_fetch($res)) {
     290                $id_contact = $row['id_objet'];
     291                sql_delete("spip_organisations_liens", "objet='contact' AND id_objet=" . sql_quote($id_contact));
     292        }
     293
     294
    255295        return $flux;
    256296}
Note: See TracChangeset for help on using the changeset viewer.