/***************************************************************************\
* 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);
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;
}
// 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;
}
-
-
-?>