$id_rubrique, 'id_secteur' => $id_secteur, 'statut' => 'prop', 'date' => date('Y-m-d H:i:s') ); if ($set) { $champs = array_merge($champs, $set); } // Envoyer aux plugins $champs = pipeline('pre_insertion', array( 'args' => array( 'table' => 'spip_syndic', ), 'data' => $champs ) ); $id_syndic = sql_insertq("spip_syndic", $champs); pipeline('post_insertion', array( 'args' => array( 'table' => 'spip_syndic', 'id_objet' => $id_syndic ), 'data' => $champs ) ); return $id_syndic; } /** * Modifier un site * * Appelle toutes les fonctions de modification d'un site * * @uses objet_modifier_champs() * @uses objet_instituer() * * @param int $id_syndic * Identifiant du site à 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 (via collecter_requests()) * @return string * - Chaîne vide si aucune erreur, * - Chaîne contenant un texte d'erreur sinon. */ function site_modifier($id_syndic, $set = null) { $resyndiquer = false; include_spip('inc/rubriques'); include_spip('inc/modifier'); $c = collecter_requests( // white list array( 'nom_site', 'url_site', 'descriptif', 'url_syndic', 'syndication', 'moderation', 'miroir', 'oubli', 'resume' ), // black list array('statut', 'id_parent', 'date'), // donnees eventuellement fournies $set ); // resyndiquer si un element de syndication modifie if ($t = sql_fetsel('url_syndic,syndication,resume', 'spip_syndic', "id_syndic=" . intval($id_syndic))) { foreach ($t as $k => $v) { if (isset($c[$k]) and $v != $c[$k]) { $resyndiquer = true; } } } // Si le site est publie, invalider les caches et demander sa reindexation $t = sql_getfetsel("statut", "spip_syndic", "id_syndic=" . intval($id_syndic)); $invalideur = $indexation = false; if ($t == 'publie') { $invalideur = "id='site/$id_syndic'"; $indexation = true; } if ($err = objet_modifier_champs('site', $id_syndic, array( 'data' => $set, 'nonvide' => array('nom_site' => _T('info_sans_titre')), 'invalideur' => $invalideur, 'indexation' => $indexation ), $c) ) { return $err; } if ($resyndiquer and sql_getfetsel('syndication', 'spip_syndic', "id_syndic=" . intval($id_syndic)) !== 'non') { $syndiquer_site = charger_fonction('syndiquer_site', 'action'); $syndiquer_site($id_syndic); } // Modification de statut, changement de rubrique ? $c = collecter_requests(array('date', 'statut', 'id_parent'), array(), $set); include_spip('action/editer_objet'); $err = objet_instituer('site', $id_syndic, $c); return $err; } // Fonctions Dépréciées // -------------------- /** * Insérer un site * * @deprecated Utiliser site_inserer() * @uses site_inserer() * * @param int $id_rubrique * @return int **/ function insert_syndic($id_rubrique) { return site_inserer($id_rubrique); } /** * Modifier un site * * @deprecated Utiliser site_modifier() * @uses site_modifier() * * @param int $id_syndic * @param array|bool $set * @return string **/ function syndic_set($id_syndic, $set = false) { return site_modifier($id_syndic, $set); } /** * Créer une révision d'un site * * @deprecated Utiliser site_modifier() * @uses site_modifier() * * @param int $id_syndic * @param array|bool $set * @return string **/ function revisions_sites($id_syndic, $set = false) { return site_modifier($id_syndic, $set); } /** * Instituer un site * * @deprecated Utiliser objet_instituer() * @uses objet_instituer() * * @param int $id_syndic * @param array $c * @param bool $calcul_rub * @return string **/ function instituer_syndic($id_syndic, $c, $calcul_rub = true) { include_spip('action/editer_objet'); return objet_instituer('site', $id_syndic, $c, $calcul_rub); }