source: spip-zone/_plugins_/amis/action/ajouterami.php @ 29171

Last change on this file since 29171 was 29171, checked in by cedric@…, 11 years ago

import du plugin amis
un peu de nettoyage reste a faire avant utilisation et documentation :

  • il manque un modele par defaut auteurs_desc qui decrit un auteur (logo, nom, prenom a minima)
  • 3 chaines de langue necessitent de passer des arguments en parametre (nom du site, de la communaute)

Sinon les CVT datent du debut du concept CVT (c'est meme un des plugins qui a servi e tester le concept)
Verifier que cela fonctionne bien, et eventuellement regrouper dans un seul fichier php comme on le fait maintenant

File size: 1.8 KB
Line 
1<?php
2/*
3 * Plugin amis / gestion des amis
4 * Licence GPL
5 * (c) 2008 C.Morin Yterium
6 *
7 */
8
9
10/**
11 * Relie deux auteurs entre eux via la table spip_amis
12 * id_auteur = visiteur a l'origine de la demande
13 * id_ami = visiteur ayant accepte la demande
14 * lors d'une demande par un des protagoniste, le champ statut='prop' indique une demande
15 * le champ statut='publie' indique une acceptation
16 * les liens sont directionnels, ce qui permet de garder la trace du sens de la transaction
17 * les tests X est ami de Y se font ensuite par double test :
18 * statut='publie' AND ((id_auteur=X AND id_ami=Y) OR (id_auteur=Y and id_ami=X))
19 *
20 */
21function action_ajouterami_dist(){
22        $securiser_action = charger_fonction('securiser_action','inc');
23        $id_ami = $securiser_action();
24        if ($id_ami = intval($id_ami)
25        AND ($id_auteur = $GLOBALS['visiteur_session']['id_auteur'])){
26                include_spip('base/abstract_sql');
27                // s'assurer que pas deja une invitation dans ce sens ou deja un ami
28                if ($row=sql_fetsel('*','spip_amis',array('id_auteur='.intval($id_auteur),'id_ami='.intval($id_ami))))
29                        return;
30                // si deja une invitation dans l'autre sens, alors on valide
31                if ($row=sql_fetsel('*','spip_amis',array('id_auteur='.intval($id_ami),'id_ami='.intval($id_auteur),"statut='prop'"))){
32                        sql_updateq('spip_amis',array('statut'=>'publie'),array('id_auteur='.intval($id_ami),'id_ami='.intval($id_auteur)));
33                        $notification = charger_fonction('notifications','inc');
34                        $notification('ajouterami',$id_ami);
35                }
36                else {
37                        // sinon lancer une invitation
38                        sql_insertq('spip_amis',array('id_auteur'=>$id_auteur,'id_ami'=>$id_ami,'statut'=>'prop'));
39                        $notification = charger_fonction('notifications','inc');
40                        $notification('inviterami',$id_ami);
41                }
42                spip_log("invitation de $id_ami par $id_auteur",'amis');
43                include_spip('inc/invalideur');
44                suivre_invalideur("amis/$id_auteur/$id_ami");
45        }
46}
47
48?>
Note: See TracBrowser for help on using the repository browser.