Beispiel #1
0
/**
 * Associer un mot a des objets listes sous forme
 * array($objet=>$id_objets,...)
 * $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type
 *
 * on peut passer optionnellement une qualification du (des) lien(s) qui sera
 * alors appliquee dans la foulee.
 * En cas de lot de liens, c'est la meme qualification qui est appliquee a tous
 *
 * Exemples:
 * mot_associer(3, array('auteur'=>2));
 * mot_associer(3, array('auteur'=>2), array('vu'=>'oui)); // ne fonctionnera pas ici car pas de champ 'vu' sur spip_mots_liens
 * 
 * @param int $id_mot
 * @param array $objets
 * @param array $qualif
 * @return string
 */
function mot_associer($id_mot, $objets, $qualif = null)
{
    include_spip('action/editer_liens');
    // si il s'agit d'un groupe avec 'unseul', alors supprimer d'abord les autres
    // mots de ce groupe associe a ces objets
    $id_groupe = sql_getfetsel('id_groupe', 'spip_mots', 'id_mot=' . intval($id_mot));
    if (un_seul_mot_dans_groupe($id_groupe)) {
        $mots_groupe = sql_allfetsel("id_mot", "spip_mots", "id_groupe=" . intval($id_groupe));
        $mots_groupe = array_map('reset', $mots_groupe);
        objet_dissocier(array('mot' => $mots_groupe), $objets);
    }
    return objet_associer(array('mot' => $id_mot), $objets, $qualif);
}
Beispiel #2
0
function ajouter_nouveau_mot($id_groupe, $table, $table_id, $id_mot, $id)
{
	if (un_seul_mot_dans_groupe($id_groupe)) {
		sql_delete("spip_mots_$table", "$table_id=$id AND " . sql_in_select("id_mot", "id_mot", "spip_mots", "id_groupe = $id_groupe"));
	}
	sql_insertq("spip_mots_$table", array("id_mot" => $id_mot, $table_id => $id));
}