+<?php
+
+/***************************************************************************\
+ * SPIP, Systeme de publication pour l'internet *
+ * *
+ * Copyright (c) 2001-2014 *
+ * 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. *
+\***************************************************************************/
+
+/**
+ * Gestion de l'action editer_groupes_mots
+ *
+ * @package SPIP\Mots\Actions
+ */
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/filtres');
+
+/**
+ * Action d'édition d'un groupe de mots clés dans la base de données dont
+ * l'identifiant du groupe est donné en paramètre de cette fonction ou
+ * en argument de l'action sécurisée
+ *
+ * Si aucun identifiant n'est donné, on crée alors un nouveau groupe de
+ * mots clés.
+ *
+ * @param null|int $id_groupe
+ * Identifiant du groupe de mot-clé. En absence utilise l'argument
+ * de l'action sécurisée.
+ * @return array
+ * Liste (identifiant du groupe de mot clé, Texte d'erreur éventuel)
+**/
+function action_editer_groupe_mots_dist($id_groupe=null)
+{
+ if (is_null($id_groupe)){
+ $securiser_action = charger_fonction('securiser_action', 'inc');
+ $id_groupe = $securiser_action();
+ }
+
+ if (!intval($id_groupe)) {
+ $id_groupe = groupe_mots_inserer();
+ }
+
+ if ($id_groupe>0)
+ $err = groupe_mots_modifier($id_groupe);
+
+ return array($id_groupe,$err);
+}
+
+
+/**
+ * Insertion d'un groupe de mots clés
+ *
+ * @pipeline_appel pre_insertion
+ * @pipeline_appel post_insertion
+ *
+ * @param string $table
+ * Tables sur lesquels des mots de ce groupe pourront être liés
+ * @return int|bool
+ * Identifiant du nouveau groupe de mots clés.
+ */
+function groupe_mots_inserer($table='') {
+ $champs = array(
+ 'titre' => '',
+ 'unseul' => 'non',
+ 'obligatoire' => 'non',
+ 'tables_liees' => $table,
+ 'minirezo' => 'oui',
+ 'comite' => 'non',
+ 'forum' => 'non'
+ );
+
+ // Envoyer aux plugins
+ $champs = pipeline('pre_insertion',
+ array(
+ 'args' => array(
+ 'table' => 'spip_groupes_mots',
+ ),
+ 'data' => $champs
+ )
+ );
+
+ $id_groupe = sql_insertq("spip_groupes_mots", $champs) ;
+
+ pipeline('post_insertion',
+ array(
+ 'args' => array(
+ 'table' => 'spip_groupes_mots',
+ 'id_objet' => $id_groupe
+ ),
+ 'data' => $champs
+ )
+ );
+
+ return $id_groupe;
+}
+
+
+/**
+ * Modifier un groupe de mot
+ *
+ * @param int $id_groupe
+ * Identifiant du grope de mots clés à modifier
+ * @param array|null $set
+ * Couples (colonne => valeur) de données à modifier.
+ * En leur absence, on cherche les données dans les champs éditables
+ * qui ont été postés
+ * @return string|null
+ * Chaîne vide si aucune erreur,
+ * Null si aucun champ à modifier,
+ * Chaîne contenant un texte d'erreur sinon.
+ */
+function groupe_mots_modifier($id_groupe, $set=null) {
+ $err = '';
+
+ include_spip('inc/modifier');
+ $c = collecter_requests(
+ // white list
+ array(
+ 'titre', 'descriptif', 'texte', 'tables_liees',
+ 'obligatoire', 'unseul',
+ 'comite', 'forum', 'minirezo',
+ ),
+ // black list
+ array(),
+ // donnees eventuellement fournies
+ $set
+ );
+ // normaliser les champ oui/non
+ foreach (array(
+ 'obligatoire', 'unseul',
+ 'comite', 'forum', 'minirezo'
+ ) as $champ)
+ if (isset($c[$champ]))
+ $c[$champ] = ($c[$champ]=='oui'?'oui':'non');
+
+ if (isset($c['tables_liees']) AND is_array($c['tables_liees']))
+ $c['tables_liees'] = implode(',',array_diff($c['tables_liees'],array('')));
+
+ $err = objet_modifier_champs('groupe_mot', $id_groupe,
+ array(
+ 'nonvide' => array('titre' => _T('info_sans_titre'))
+ ),
+ $c);
+
+ return $err;
+}
+
+// Fonctions Dépréciées
+// --------------------
+
+/**
+ * Créer une révision sur un groupe de mot
+ *
+ * @deprecated Utiliser groupe_mots_modifier()
+ * @see groupe_mots_modifier()
+ *
+ * @param int $id_groupe
+ * Identifiant du grope de mots clés à modifier
+ * @param array|null $c
+ * Couples (colonne => valeur) de données à modifier.
+ * En leur absence, on cherche les données dans les champs éditables
+ * qui ont été postés
+ * @return string|null
+ * Chaîne vide si aucune erreur,
+ * Null si aucun champ à modifier,
+ * Chaîne contenant un texte d'erreur sinon.
+ */
+function revision_groupe_mot($id_groupe, $c=false) {
+ return groupe_mots_modifier($id_groupe,$c);
+}
+
+
+/**
+ * Insertion d'un groupe de mots clés
+ *
+ * @deprecated Utiliser groupe_mots_inserer() ou objet_inserer()
+ * @see groupe_mots_inserer()
+ *
+ * @param string $table
+ * Tables sur lesquels des mots de ce groupe pourront être liés
+ * @return int|bool
+ * Identifiant du nouveau groupe de mots clés.
+ */
+function groupemots_inserer($table='') {
+ return groupe_mots_inserer($table);
+}
+
+/**
+ * Modifier un groupe de mot
+ *
+ * @deprecated Utiliser groupe_mots_modifier() ou objet_modifier()
+ * @see groupe_mots_modifier()
+ *
+ * @param int $id_groupe
+ * Identifiant du grope de mots clés à modifier
+ * @param array|null $set
+ * Couples (colonne => valeur) de données à modifier.
+ * En leur absence, on cherche les données dans les champs éditables
+ * qui ont été postés
+ * @return string|null
+ * Chaîne vide si aucune erreur,
+ * Null si aucun champ à modifier,
+ * Chaîne contenant un texte d'erreur sinon.
+ */
+function groupemots_modifier($id_groupe, $set=null) {
+ return groupe_mots_modifier($id_groupe, $set);
+}
+?>