[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / action / referencer_traduction.php
index 855777a..5a7837c 100644 (file)
@@ -3,30 +3,48 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2016                                                *
+ *  Copyright (c) 2001-2017                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-if (!defined('_ECRIRE_INC_VERSION')) return;
+/**
+ * Gestion de l'action referencer_traduction gérant les liens de traductions
+ *
+ * @package SPIP\Core\Action
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 /**
- * Definir le lien de traduction vers un objet de reference
- * si id_trad=0 : dereference le lien de traduction de id_objet
- * si id_trad=NN : reference le lien de traduction de id_objet vers NN
- * si id_objet=id_trad actuel et id_trad=new_id_trad : modifie la reference de tout le groupe de traduction
- * 
+ * Définir le lien de traduction vers un objet de réference
+ *
+ * Plusieurs cas :
+ * - id_trad=0 : déréference le lien de traduction de id_objet
+ * - id_trad=NN : référence le lien de traduction de id_objet vers NN
+ * - id_objet=id_trad actuel et id_trad=new_id_trad : modifie la référence
+ *   de tout le groupe de traduction
+ *
  * @param string $objet
+ *     Type d'objet
  * @param int $id_objet
+ *     Identifiant de l'objet
  * @param int $id_trad
+ *     Identifiant de la référence de traduction
  * @return bool
+ *     - False si on ne trouve pas l'objet de référence
+ *     - True sinon
  */
 function action_referencer_traduction_dist($objet, $id_objet, $id_trad) {
 
        // ne rien faire si id_trad est ambigu
-       if (!is_numeric($id_trad)) return false;
+       if (!is_numeric($id_trad)) {
+               return false;
+       }
 
        $table_objet_sql = table_objet_sql($objet);
        $id_table_objet = id_table_objet($objet);
@@ -35,9 +53,11 @@ function action_referencer_traduction_dist($objet, $id_objet, $id_trad) {
        if ($id_trad) {
                // selectionner l'objet cible, qui doit etre different de nous-meme,
                // et quitter s'il n'existe pas
-               $id_lier = sql_getfetsel('id_trad', $table_objet_sql, "$id_table_objet=".intval($id_trad)." AND NOT($id_table_objet=".intval($id_objet).")");
-               if ($id_lier === NULL){
+               $id_lier = sql_getfetsel('id_trad', $table_objet_sql,
+                       "$id_table_objet=" . intval($id_trad) . " AND NOT($id_table_objet=" . intval($id_objet) . ")");
+               if ($id_lier === null) {
                        spip_log("echec lien de trad vers objet $objet/$id_objet incorrect ($id_trad)");
+
                        return false;
                }
 
@@ -47,30 +67,25 @@ function action_referencer_traduction_dist($objet, $id_objet, $id_trad) {
                // objets
                if ($id_lier == 0) {
                        sql_updateq($table_objet_sql, array("id_trad" => $id_trad), "$id_table_objet IN ($id_trad, $id_objet)");
-               }
-               // si id_lier = id_objet alors on veut changer la reference de tout le groupe de trad
+               } // si id_lier = id_objet alors on veut changer la reference de tout le groupe de trad
                elseif ($id_lier == $id_objet) {
                        sql_updateq($table_objet_sql, array("id_trad" => $id_trad), "id_trad = $id_lier");
-               }
-               // sinon ajouter notre objet dans le groupe
+               } // sinon ajouter notre objet dans le groupe
                else {
-                       sql_updateq($table_objet_sql, array("id_trad" => $id_lier), "$id_table_objet=".intval($id_objet));
+                       sql_updateq($table_objet_sql, array("id_trad" => $id_lier), "$id_table_objet=" . intval($id_objet));
                }
-       }
-       // on a fourni un id_trad nul : sortir id_objet du groupe de trad
+       } // on a fourni un id_trad nul : sortir id_objet du groupe de trad
        else {
-               $old_id_trad = sql_getfetsel('id_trad',$table_objet_sql,"$id_table_objet=".intval($id_objet));
+               $old_id_trad = sql_getfetsel('id_trad', $table_objet_sql, "$id_table_objet=" . intval($id_objet));
                // supprimer le lien de traduction
-               sql_updateq($table_objet_sql, array("id_trad" => 0), "$id_table_objet=".intval($id_objet));
+               sql_updateq($table_objet_sql, array("id_trad" => 0), "$id_table_objet=" . intval($id_objet));
 
                // Verifier si l'ancien groupe ne comporte plus qu'un seul objet. Alors mettre a zero.
-               $cpt = sql_countsel($table_objet_sql, "id_trad=".intval($old_id_trad));
-               if ($cpt == 1)
-                       sql_updateq($table_objet_sql, array("id_trad" => 0), "id_trad=".intval($old_id_trad));
+               $cpt = sql_countsel($table_objet_sql, "id_trad=" . intval($old_id_trad));
+               if ($cpt == 1) {
+                       sql_updateq($table_objet_sql, array("id_trad" => 0), "id_trad=" . intval($old_id_trad));
+               }
        }
 
        return true;
 }
-
-
-?>