function genie_depublier_dist($time) { //va chercher les objets de spip_depublies avec une date_depublie pour aujourd'hui include_spip('base/abstract_sql'); $today = date('Y-m-d H:i:s'); if ($depublications = sql_allfetsel('*', 'spip_depublies', 'DATE_FORMAT(date_depublie, "%Y-%m-%d %H:%i:%s") <= ' . sql_quote($today) . ' AND DATE_FORMAT(date_depublie, "%Y-%m-%d %H:%i:%s") >0') and is_array($depublications)) { foreach ($depublications as $depublication) { $objet = $depublication['objet']; $id_objet = $depublication['id_objet']; $statut_depublication = $depublication['statut']; $date_depublie = $depublication['date_depublie']; spip_log("on veut depublier {$objet} {$id_objet} {$statut_depublication}", 'depublication'); //on cherche la table de l'objet donné $_id_objet = id_table_objet($objet); //id_article $table = table_objet_sql($objet); //articles //si le statut est différent de celui demandé if ($a_depublier = sql_getfetsel($_id_objet, $table, "statut != " . sql_quote($statut_depublication) . " AND {$_id_objet} = " . intval($id_objet))) { //si les conditions sont remplies, on change le statut dans cette table sql_updateq($table, array("statut" => $statut_depublication), "{$_id_objet}= " . intval($id_objet)); //et on supprime l'entrée sql_delete('spip_depublies', 'id_objet=' . intval($id_objet) . ' AND objet=' . sql_quote($objet)); } } } return 1; }
function action_clevermail_list_subscriber_remove_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); $lsr_id = $arg; if (sql_countsel("spip_cm_lists_subscribers", "lsr_id=" . sql_quote($lsr_id)) == 1) { include_spip('inc/autoriser'); if (autoriser('supprimer', 'cm_list_subscriber', sql_quote($lsr_id))) { $abonnement = sql_fetsel("sub_id, lst_id", "spip_cm_lists_subscribers", "lsr_id=" . sql_quote($lsr_id)); $abonne = sql_getfetsel("sub_email", "spip_cm_subscribers", "sub_id=" . intval($abonnement['sub_id'])); $liste = sql_fetsel("lst_moderator_email, lst_name", "spip_cm_lists", "lst_id=" . intval($abonnement['lst_id'])); sql_delete("spip_cm_lists_subscribers", "lsr_id = " . sql_quote($lsr_id)); sql_delete("spip_cm_posts_queued", "sub_id = " . intval($abonnement['sub_id'])); if (sql_countsel("spip_cm_lists_subscribers", "sub_id=" . intval($abonnement['sub_id'])) == 0) { // No more subscription, subscriber address is removed sql_delete("spip_cm_pending", "sub_id = " . intval($abonnement['sub_id'])); sql_updateq("spip_cm_subscribers", array('sub_email' => md5($abonne) . '@example.com'), "sub_id = " . intval($abonnement['sub_id'])); } $destinataire = $liste['lst_moderator_email']; $sujet = '[' . $liste['lst_name'] . '] Désinscription de ' . addslashes($abonne); $corps = _T('clevermail:mail_info_desinscription_corps', array('nom_site' => $GLOBALS['meta']['nom_site'], 'url_site' => $GLOBALS['meta']['adresse_site'], 'sub_email' => addslashes($abonne), 'lst_name' => $liste['lst_name'])); $expediteur = sql_getfetsel("set_value", "spip_cm_settings", "set_name='CM_MAIL_FROM'"); $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); if ($envoyer_mail($destinataire, $sujet, $corps, $expediteur)) { spip_log('Envoie du mail OK', 'clevermail'); } else { spip_log('Envoie du mail KO', 'clevermail'); } spip_log('Suppression de l\'abonnement de « ' . $abonne . ' » à la liste « ' . $liste['lst_name'] . ' » (id=' . $abonnement['lst_id'] . ')', 'clevermail'); } } }
function supprimer_lien_document($id_document, $objet, $id_objet) { if (!$id_document = intval($id_document)) return false; // D'abord on ne supprime pas, on dissocie sql_delete("spip_documents_liens", $z = "id_objet=".intval($id_objet)." AND objet=".sql_quote($objet)." AND id_document=".$id_document); // Si c'est une vignette, l'eliminer du document auquel elle appartient sql_updateq("spip_documents", array('id_vignette' => 0), "id_vignette=".$id_document); pipeline('post_edition', array( 'args' => array( 'operation' => 'delier_document', 'table' => 'spip_documents', 'id_objet' => $id_document, 'objet' => $objet, 'id' => $id_objet ), 'data' => null ) ); // On supprime ensuite s'il est orphelin // (autorisation verifiee dans l'action) $supprimer_document = charger_fonction('supprimer_document','action'); return $supprimer_document($id_document); }
/** * Supprimer les révisions des objets disparus */ function optimiser_base_revisions() { /** * On commence par récupérer la liste des types d'objet ayant au moins une révision */ $objets_revises = sql_select('objet', 'spip_versions', 'id_version=1', 'objet'); /** * Pour chaque objet, on va contruire un tableau des identifiants disparus * On supprimera ensuite les occurences dans spip_versions et spip_versions_fragments */ while ($objet = sql_fetch($objets_revises)) { $in = array(); $table = table_objet_sql($objet['objet']); $id_table_objet = id_table_objet($objet['objet']); $res = sql_select("A.id_objet AS id_objet, A.objet AS objet", "spip_versions AS A LEFT JOIN {$table} AS R\n\t\t\t\t\t\t\tON R.{$id_table_objet}=A.id_objet AND A.objet=" . sql_quote($objet['objet']), "R.{$id_table_objet} IS NULL AND A.objet=" . sql_quote($objet['objet']) . " AND A.id_objet > 0", "A.id_objet", "A.id_objet"); while ($row = sql_fetch($res)) { $in[$row['id_objet']] = true; } sql_free($res); /** * Si on a un array * On supprime toute occurence des objets disparus dans : * -* spip_versions * -* spip_versions_fragments */ if ($in) { foreach (array('spip_versions', 'spip_versions_fragments') as $table) { sql_delete($table, sql_in('id_objet', array_keys($in)) . " AND objet=" . sql_quote($objet['objet'])); } } } }
function action_supprimer_url_dist($arg = null) { if (is_null($arg)) { // Rien a faire ici pour le moment $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } if (strncmp($arg, "-1-", 3) == 0) { $id_parent = -1; $url = substr($arg, 3); } else { $arg = explode('-', $arg); $id_parent = array_shift($arg); $url = implode('-', $arg); } $where = 'id_parent=' . intval($id_parent) . " AND url=" . sql_quote($url); if ($row = sql_fetsel('*', 'spip_urls', $where)) { if (autoriser('modifierurl', $row['type'], $row['id_objet'])) { sql_delete('spip_urls', $where); } else { spip_log('supprimer sans autorisation l\'URL ' . $id_parent . "://" . $url, "urls." . _LOG_ERREUR); } } else { spip_log('Impossible de supprimer une URL inconnue ' . $id_parent . "://" . $url, "urls." . _LOG_INFO_IMPORTANTE); } }
function action_clevermail_list_subscriber_clear_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); if (sql_countsel("spip_cm_lists_subscribers AS list, spip_cm_subscribers AS sub", "list.sub_id = sub.sub_id AND sub.sub_email LIKE '*****@*****.**'")) { $subscribers = sql_select("sub.sub_id", "spip_cm_lists_subscribers AS list, spip_cm_subscribers AS sub", "list.sub_id = sub.sub_id AND sub.sub_email LIKE '*****@*****.**'", "list.sub_id", "", ""); $sub_deleted = ""; while ($subscriber = sql_fetch($subscribers)) { sql_delete("spip_cm_lists_subscribers", "sub_id = " . intval($subscriber['sub_id'])); sql_delete("spip_cm_pending", "sub_id = " . intval($subscriber['sub_id'])); $sub_deleted = $sub_deleted . ' ' . intval($subscriber['sub_id']); } spip_log('Suppression des abonnements ' . $sub_deleted, 'clevermail'); } else { spip_log('Il n\'y a pas d\'abonnement à supprimer', 'clevermail'); } if (sql_countsel("spip_cm_lists_subscribers", "", "lsr_id", "count(lsr_id) > 1") > 1) { $doublons = sql_select("lsr_id", "spip_cm_lists_subscribers", "", "lsr_id", "", "", "count(lsr_id) > 1"); while ($doublon = sql_fetch($doublons)) { $lists = sql_select("lst_id, sub_id", "spip_cm_lists_subscribers", "lsr_id ='" . $doublon['lsr_id'] . "'"); while ($list = sql_fetch($lists)) { sql_updateq("spip_cm_lists_subscribers", array('lsr_id' => md5('subscribe#' . intval($list['lst_id']) . '#' . intval($list['sub_id']) . '#' . time())), "lst_id=" . sql_quote($list['lst_id']) . " AND sub_id=" . sql_quote($list['sub_id'])); } } } //Récupération du timestamp du mois dernier $today = time(); $date_today = date("d:m:Y", $today); $today_exploded = explode(":", $date_today); $mois = (int) $today_exploded[1]; $mois = --$mois; $valid_date = mktime(0, 0, 0, $mois, $today_exploded[0], $today_exploded[2]); sql_delete("spip_cm_pending", "pnd_action_date <" . $valid_date); spip_log('Suppression des abonnements en attente depuis plus d\'un mois', 'clevermail'); }
function action_supprimer_rubrique($r) { list(,,$id_rubrique) = $r; sql_delete("spip_rubriques", "id_rubrique=$id_rubrique"); sql_delete("spip_mots_rubriques", "id_rubrique=$id_rubrique"); // Les admin restreints qui n'administraient que cette rubrique // deviennent redacteurs // (il y a sans doute moyen de faire ca avec un having) $q = sql_select("id_auteur", "spip_auteurs_rubriques", "id_rubrique=$id_rubrique"); while ($r = sql_fetch($q)) { $id_auteur = $r['id_auteur']; sql_delete("spip_auteurs_rubriques", "id_rubrique=$id_rubrique AND id_auteur=$id_auteur"); $n = sql_countsel("spip_auteurs_rubriques", "id_auteur=$id_auteur"); if (!$n) sql_updateq("spip_auteurs", array("statut" => '1comite'), "id_auteur=$id_auteur"); } // menu_rubriques devra recalculer effacer_meta("date_calcul_rubriques"); // Une rubrique supprimable n'avait pas le statut "publie" // donc rien de neuf pour la rubrique parente include_spip('inc/rubriques'); calculer_langues_rubriques(); // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); suivre_invalideur("id='id_rubrique/$id_rubrique'"); }
/** * Удаление счета * * @param integer $bill_id */ function deleteBill($bill_id) { $auth_obj =& Registry::get('TUserAuth'); $client = $auth_obj->getCurrentUserData(); // Проверяем принадлежность if ($client['id'] != sql_getValue('SELECT client_id FROM bills WHERE id=' . $bill_id)) { redirect("/cabinet/bills/"); } $page =& Registry::get('TPage'); // Подготовка данных для отправки письма $bill = sql_getRow('SELECT * FROM bills WHERE id=' . $bill_id); $bill['r_comp'] = array(); foreach ($bill as $key => $val) { if ($key != 'r_comp' && substr($key, 0, strlen('r_comp_')) == 'r_comp_') { $bill['r_comp'][$key] = $val; } } $tmpl = $this->getParseBill($this->tmpl[$bill['method']][$bill['client_type']], $bill); require_once './modules/pclzip.lib.php'; $dir = getcwd(); chdir(dirname($tmpl)); $zip = new PclZip('bill.zip'); $zip->create(basename($tmpl)); chdir($dir); $res = sql_delete('bills', $bill_id); if ($res) { // Уведомление для администратора sendEmail($page->tpl->get_config_vars('admin_email'), $page->tpl->get_config_vars('robot_email'), $page->tpl->get_config_vars('cabinet_delete_bill_subj'), $page->tpl->get_config_vars('cabinet_delete_bill_mail'), $bill, PATH_CACHE . 'tmp/' . session_id() . '/bill.zip'); redirect("/cabinet/bills/?msg=cabinet_msg_bill_delete_success"); } else { redirect("/cabinet/bills/?msg=msg_fail"); } }
/** * Effacer une rubrique * * http://doc.spip.org/@action_supprimer_dist * * @param null $id_rubrique * @return void */ function action_supprimer_rubrique_dist($id_rubrique = null) { if (is_null($id_rubrique)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_rubrique = $securiser_action(); } if (intval($id_rubrique)) { sql_delete("spip_rubriques", "id_rubrique=" . intval($id_rubrique)); // Les admin restreints qui n'administraient que cette rubrique // deviennent redacteurs // (il y a sans doute moyen de faire ca avec un having) $q = sql_select("id_auteur", "spip_auteurs_liens", "objet='rubrique' AND id_objet=" . intval($id_rubrique)); while ($r = sql_fetch($q)) { $id_auteur = $r['id_auteur']; // degrader avant de supprimer la restriction d'admin // section critique sur les droits $n = sql_countsel("spip_auteurs_liens", "objet='rubrique' AND id_objet!=" . intval($id_rubrique) . " AND id_auteur=" . intval($id_auteur)); if (!$n) { include_spip('action/editer_auteur'); auteurs_set($id_auteur, array("statut" => '1comite')); } sql_delete("spip_auteurs_liens", "objet='rubrique' AND id_objet=" . intval($id_rubrique) . " AND id_auteur=" . intval($id_auteur)); } // menu_rubriques devra recalculer effacer_meta("date_calcul_rubriques"); // Une rubrique supprimable n'avait pas le statut "publie" // donc rien de neuf pour la rubrique parente include_spip('inc/rubriques'); calculer_langues_rubriques(); // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); suivre_invalideur("id='rubrique/{$id_rubrique}'"); } }
/** * Optimiser la base de données en supprimant les liens orphelins * de l'objet vers quelqu'un et de quelqu'un vers l'objet. * * @pipeline optimiser_base_disparus * @param array $flux Données du pipeline * @return array Données du pipeline */ function cpub_optimiser_base_disparus($flux) { $mydate = $flux['args']['date']; sql_delete("spip_publicites", "statut='poubelle' AND maj < {$mydate}"); sql_delete("spip_bannieres", "statut='poubelle' AND maj < {$mydate}"); return $flux; }
/** * Fonction de désinstallation du plugin. **/ function roles_auteurs_vider_tables($nom_meta_base_version) { // tant qu'il existe des doublons, on supprime une ligne doublonnée // sinon on ne pourra pas modifier la cle primaire ensuite // cet algo est certainement a optimiser while ($doublons = sql_allfetsel( array('id_auteur', 'id_objet', 'objet', 'role'), array('spip_auteurs_liens'), '', 'id_auteur,id_objet,objet', '', '', 'COUNT(*) > 1')) { foreach ($doublons as $d) { $where = array(); foreach ($d as $cle=>$valeur) { $where[] = "$cle=".sql_quote($valeur); } sql_delete('spip_auteurs_liens', $where); } } // supprimer la clé primaire, la colonne rôle, et remettre l'ancienne clé primaire sql_alter("TABLE spip_auteurs_liens DROP PRIMARY KEY"); sql_alter("TABLE spip_auteurs_liens DROP COLUMN role"); sql_alter("TABLE spip_auteurs_liens ADD PRIMARY KEY (id_auteur,id_objet,objet)"); effacer_meta($nom_meta_base_version); }
function formulaires_ecatalogue_prices_group_traiter_dist() { $result = array(); $is_active = _request('is_active'); $prices_group = _request('price'); $elements_insert = _request('elements_insert'); $isset_price_group = sql_select('*', 'spip_ecatalogue_prices_group'); if ($isset_price_group) { while ($row = sql_fetch($isset_price_group)) { $id_price_group = $row['id_group']; if (isset($prices_group[$id_price_group])) { $name = $prices_group[$id_price_group]; $status = isset($is_active[$id_price_group]) ? 1 : 0; sql_update('spip_ecatalogue_prices_group', array('titre' => '"' . $name . '"', 'is_active' => $status), 'id_group = ' . (int) $id_price_group); } else { sql_delete('spip_ecatalogue_prices_group', 'id_group = ' . $id_price_group); // Delete price group } } } if (is_array($elements_insert) && !empty($elements_insert)) { foreach ($elements_insert as $key => $value) { $name = $value['titre']; $is_active = isset($value['is_active']) ? 1 : 0; sql_insert('spip_ecatalogue_prices_group', '(titre,is_active)', '("' . $name . '",' . $is_active . ')'); } } return $result; }
function action_instituer_groupe_mots_post($id_groupe) { if ($id_groupe < 0){ sql_delete("spip_groupes_mots", "id_groupe=" . (0- $id_groupe)); } else spip_log('appel deprecie, rien a faire ici (voir action/edite_groupe_mot)'); }
function action_referer_spam_supprimer($p, $arg) { include_spip('base/abstract_sql'); $url = $_GET['url']; if (sql_countsel("spip_referer_spam", "referer LIKE '%{$url}%'")) { sql_delete("spip_referer_spam", "referer LIKE '%{$url}%'"); } }
/** * Préparer les listes `id_article IN (...)` pour les parties WHERE * et calcul des `points` pour la partie SELECT des requêtes du moteur de recherche * * Le paramètre $serveur est utilisé pour savoir sur quelle base on cherche * mais l'index des résultats est toujours stocké sur le serveur principal * car on ne sait pas si la base distante dispose d'une table spip_resultats * ni meme si on aurait le droit d'ecrire dedans * * @param string $recherche * chaine recherchee * @param string $table * table dans laquelle porte la recherche * @param bool $cond * critere conditionnel sur {recherche?} * @param string $serveur * serveur de base de donnees * @param array $modificateurs * modificateurs de boucle, ie liste des criteres presents * @param string $primary * cle primaire de la table de recherche * @return array */ function inc_prepare_recherche_dist($recherche, $table = 'articles', $cond = false, $serveur = '', $modificateurs = array(), $primary = '') { static $cache = array(); $delai_fraicheur = min(_DELAI_CACHE_resultats, time() - (isset($GLOBALS['meta']['derniere_modif']) ? $GLOBALS['meta']['derniere_modif'] : 0)); // si recherche n'est pas dans le contexte, on va prendre en globals // ca permet de faire des inclure simple. if (!isset($recherche) and isset($GLOBALS['recherche'])) { $recherche = $GLOBALS['recherche']; } // traiter le cas {recherche?} if ($cond and !strlen($recherche)) { return array("0 as points", ''); } $rechercher = false; if (!isset($cache[$serveur][$table][$recherche])) { $hash_serv = $serveur ? substr(md5($serveur), 0, 16) : ''; $hash = substr(md5($recherche . $table), 0, 16); $where = "(resultats.recherche='{$hash}' AND resultats.table_objet=" . sql_quote($table) . " AND resultats.serveur='{$hash_serv}')"; $row = sql_fetsel('UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(resultats.maj) AS fraicheur', 'spip_resultats AS resultats', $where, '', 'fraicheur DESC', '0,1'); if (!$row or $row['fraicheur'] > $delai_fraicheur or defined('_VAR_MODE') and _VAR_MODE == 'recalcul') { $rechercher = true; } } // si on n'a pas encore traite les donnees dans une boucle precedente if ($rechercher) { //$tables = liste_des_champs(); $x = objet_type($table); $points = recherche_en_base($recherche, $x, array('score' => true, 'toutvoir' => true, 'jointures' => true), $serveur); // pas de résultat, pas de point $points = isset($points[$x]) ? $points[$x] : array(); // permettre aux plugins de modifier le resultat $points = pipeline('prepare_recherche', array('args' => array('type' => $x, 'recherche' => $recherche, 'serveur' => $serveur, 'modificateurs' => $modificateurs), 'data' => $points)); // supprimer les anciens resultats de cette recherche // et les resultats trop vieux avec une marge // pas de AS resultats dans un delete (mysql) $whered = str_replace(array("resultats.recherche", "resultats.table_objet", "resultats.serveur"), array("recherche", "table_objet", "serveur"), $where); sql_delete('spip_resultats', 'NOT(' . sql_date_proche('maj', 0 - ($delai_fraicheur + 100), " SECOND") . ") OR ({$whered})"); // inserer les resultats dans la table de cache des resultats if (count($points)) { $tab_couples = array(); foreach ($points as $id => $p) { $tab_couples[] = array('recherche' => $hash, 'id' => $id, 'points' => $p['score'], 'table_objet' => $table, 'serveur' => $hash_serv); } sql_insertq_multi('spip_resultats', $tab_couples, array()); } } if (!isset($cache[$serveur][$table][$recherche])) { if (!$serveur) { $cache[$serveur][$table][$recherche] = array("resultats.points AS points", $where); } else { if (sql_countsel('spip_resultats as resultats', $where)) { $rows = sql_allfetsel('resultats.id,resultats.points', 'spip_resultats as resultats', $where); } $cache[$serveur][$table][$recherche] = generer_select_where_explicites($table, $primary, $rows, $serveur); } } return $cache[$serveur][$table][$recherche]; }
/** * Fonction de désinstallation du plugin Livraison. * * @param string $nom_meta_base_version * Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP * @return void **/ function livraison_vider_tables($nom_meta_base_version) { livraison_generer_csv_installation(); sql_drop_table("spip_livraisonmodes"); # Nettoyer les versionnages et forums sql_delete("spip_versions", sql_in("objet", array('livraisonmode'))); sql_delete("spip_versions_fragments", sql_in("objet", array('livraisonmode'))); sql_delete("spip_forum", sql_in("objet", array('livraisonmode'))); effacer_meta($nom_meta_base_version); }
/** * Fonction de désinstallation du plugin Réseŕvations Crédits. * * Vous devez : * * - nettoyer toutes les données ajoutées par le plugin et son utilisation * - supprimer les tables et les champs créés par le plugin. * * @param string $nom_meta_base_version * Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP * @return void **/ function reservations_credits_vider_tables($nom_meta_base_version) { sql_drop_table("spip_reservation_credit_mouvements"); sql_drop_table("spip_reservation_credits"); # Nettoyer les versionnages et forums sql_delete("spip_versions", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit'))); sql_delete("spip_versions_fragments", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit'))); sql_delete("spip_forum", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit'))); effacer_meta($nom_meta_base_version); }
function action_purger_site_dist($id_syndic = null) { if (is_null($id_syndic)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_syndic = $securiser_action(); } if ($id_syndic = intval($id_syndic) and autoriser('purger', 'site', $id_syndic)) { include_spip('base/abstract_sql'); sql_delete('spip_syndic_articles', 'id_syndic=' . intval($id_syndic)); } }
/** * Fonction de désinstallation du plugin cPublicité. * * @param string $nom_meta_base_version * Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP * @return void **/ function cpub_vider_tables($nom_meta_base_version) { sql_drop_table("spip_publicites"); sql_drop_table("spip_bannieres"); sql_drop_table("spip_stats_pubs"); # Nettoyer les versionnages et forums sql_delete("spip_versions", sql_in("objet", array('publicite', 'banniere'))); sql_delete("spip_versions_fragments", sql_in("objet", array('publicite', 'banniere'))); sql_delete("spip_forum", sql_in("objet", array('publicite', 'banniere'))); effacer_meta($nom_meta_base_version); }
function submitModifiedTitle($objid, $title, $comment, $mature, $forClub, $folder = 0, $collab = 0, $gift = 0, $forClub2 = 0, $forClub3 = 0) { $oldCollab = 0; $collabConfirmed = 0; $objCreator = 0; $sql = "SELECT `objCollab`, `objCollabConfirmed`, `objCreator` " . "FROM `objects`, `objExtData`" . dbWhere(array("objid*" => "objEid", "objid" => $objid)); $objResult = sql_query($sql); if ($objData = mysql_fetch_assoc($objResult)) { $oldCollab = $objData["objCollab"]; $collabConfirmed = $objData["objCollabConfirmed"]; $objCreator = $objData["objCreator"]; } mysql_free_result($objResult); if ($forClub2 == $forClub) { $forClub2 = 0; } if ($forClub3 == $forClub || $forClub3 == $forClub2) { $forClub3 = 0; } sql_where(array("cloObject" => $objid)); sql_delete("clubObjects"); if ($forClub > 0) { sql_values(array("cloObject" => $objid, "cloClub" => $forClub)); sql_insert("clubObjects"); } if ($forClub2 > 0) { sql_values(array("cloObject" => $objid, "cloClub" => $forClub2)); sql_insert("clubObjects"); } if ($forClub3 > 0) { sql_values(array("cloObject" => $objid, "cloClub" => $forClub3)); sql_insert("clubObjects"); } $values = array("objTitle" => $title, "objMature" => $mature, "objForClub" => $forClub, "objForClub2" => $forClub2, "objForClub3" => $forClub3, "objFolder" => $folder); if (!$collabConfirmed || atLeastSModerator()) { $values["objCollab"] = $collab; } $values["objForUser"] = $gift; $sql = "UPDATE `objects`" . dbSet($values) . dbWhere(array("objid" => $objid)); sql_query($sql); $values = array("objComment" => $comment); if ($collab == 0 && atLeastSModerator()) { $values["objCollabConfirmed"] = 0; } $sql = "UPDATE `objExtData`" . dbSet($values) . dbWhere(array("objEid" => $objid)); sql_query($sql); updateSearchCache($objid); updateObjCount($objCreator); updateObjCount($collab); if ($collab != $oldCollab) { updateObjCount($oldCollab); } }
/** * Optimiser la base de donnee en supprimant les liens orphelins * * @param int $n * @return int */ function mots_optimiser_base_disparus($flux) { $n =& $flux['data']; $mydate = $flux['args']['date']; $result = sql_delete("spip_mots", "length(titre)=0 AND maj < {$mydate}"); include_spip('action/editer_liens'); // optimiser les liens morts : // entre mots vers des objets effaces // depuis des mots effaces $n += objet_optimiser_liens(array('mot' => '*'), '*'); return $flux; }
function action_supprimer_groupe_mots_dist($id_groupe = null) { if (is_null($id_groupe)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_groupe = $securiser_action(); } if (autoriser('supprimer', 'groupemots', $id_groupe)) { sql_delete("spip_groupes_mots", "id_groupe=" . intval($id_groupe)); } else { spip_log("action_supprimer_groupe_mots_dist {$id_groupe} interdit", _LOG_INFO_IMPORTANTE); } }
function recountTagReferences($tagid) { sql_where(array("hfmTag" => $tagid)); $count = sql_count("helpdeskFAQTagMap"); if ($count > 0) { sql_values(array("hftCount" => $count)); sql_where(array("hftid" => $tagid)); sql_update("helpdeskFAQTags"); } else { sql_where(array("hftid" => $tagid)); sql_delete("helpdeskFAQTags"); } }
/** * Supprimer les referers * @param strinf $titre * @param bool $reprise * @return string */ function base_delete_referers_dist($titre = '', $reprise = '') { if (!$titre) { return; } // anti-testeur automatique sql_delete("spip_referers"); sql_delete("spip_referers_articles"); sql_update("spip_articles", array('referers' => 0)); // un pipeline pour detruire les tables de referers installees par les plugins ? //pipeline('delete_referers', ''); spip_log("raz des referers operee redirige vers " . _request('redirect')); }
function action_clevermail_list_remove_dist($lst_id = 0) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); $lst_id = intval($arg); $lst_name = sql_getfetsel("lst_name", "spip_cm_lists", "lst_id=" . intval($lst_id)); include_spip('inc/autoriser'); if (autoriser('supprimer', 'cm_list', intval($lst_id))) { if (sql_countsel("spip_cm_lists_subscribers", "lst_id=" . intval($lst_id)) == 0 && sql_countsel("spip_cm_posts", "lst_id=" . intval($lst_id)) == 0) { sql_delete('spip_cm_lists', 'lst_id=' . intval($lst_id)); spip_log('Suppression de la liste « ' . $lst_name . ' » (id = ' . intval($lst_id) . ')', 'clevermail'); } } }
function action_supprimer_document_dist($id_document = 0) { if (!$id_document) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_document = $securiser_action(); } include_spip('inc/autoriser'); if (!autoriser('supprimer', 'document', $id_document)) { spip_log("Echec : Suppression document {$id_document} interdite", _LOG_ERREUR); return false; } // si c'etait une vignette, modifier le document source ! if ($source = sql_getfetsel('id_document', 'spip_documents', 'id_vignette=' . intval($id_document))) { include_spip('action/editer_document'); document_modifier($source, array("id_vignette" => 0)); } include_spip('inc/documents'); if (!($doc = sql_fetsel('*', 'spip_documents', 'id_document=' . intval($id_document)))) { spip_log("Echec : Suppression document {$id_document} : le document n'existe pas en base", _LOG_ERREUR); return false; } spip_log("Suppression du document {$id_document} (" . $doc['fichier'] . ")"); include_spip('action/editer_liens'); // Si c'est un document ayant une vignette, supprimer aussi la vignette if ($doc['id_vignette']) { action_supprimer_document_dist($doc['id_vignette']); objet_dissocier(array('document' => $doc['id_vignette']), '*'); } // Si c'est un document ayant des documents annexes (sous-titre, ...) // les supprimer aussi $annexes = array_map('reset', sql_allfetsel("id_document", "spip_documents_liens", "objet='document' AND id_objet=" . intval($id_document))); foreach ($annexes as $id) { action_supprimer_document_dist($id); } // dereferencer dans la base objet_dissocier(array('document' => $id_document), '*', array('role' => '*')); sql_delete('spip_documents', 'id_document=' . intval($id_document)); // Supprimer le fichier si le doc est local, // et la copie locale si le doc est distant if ($doc['distant'] == 'oui') { include_spip('inc/distant'); if ($local = _DIR_RACINE . copie_locale($doc['fichier'], 'test')) { spip_unlink($local); } } else { spip_unlink(get_spip_doc($doc['fichier'])); } pipeline('post_edition', array('args' => array('operation' => 'supprimer_document', 'action' => 'supprimer_document', 'table' => 'spip_documents', 'id_objet' => $id_document, 'document' => $doc), 'data' => null)); return true; }
/** * Optimiser la base de donnee en supprimant les forums orphelins * * @param int $n * @return int */ function petitions_optimiser_base_disparus($flux) { $n =& $flux['data']; $mydate = $flux['args']['date']; // // Signatures poubelles // sql_delete("spip_petitions", "statut='poubelle' AND maj < {$mydate}"); // rejeter les signatures non confirmees trop vieilles (20jours) if (!defined('_PETITIONS_DELAI_SIGNATURES_REJETEES')) { define('_PETITIONS_DELAI_SIGNATURES_REJETEES', 20); } sql_delete("spip_signatures", "NOT (statut='publie' OR statut='poubelle') AND NOT(" . sql_date_proche('date_time', -_PETITIONS_DELAI_SIGNATURES_REJETEES, ' DAY') . ')'); return $flux; }
function insere_1_init($request) { // table des translations $res = insere_1bis_init($request); $desc = $GLOBALS['tables_principales'][_SPIP_TRANSLATE]; $v = sql_create(_SPIP_TRANSLATE, $desc['field'], $desc['key'], true); if (!$v) { spip_log("echec de la creation de la table de fusion"); return false; } // au cas ou la derniere fois ce serait terminee anormalement $d = sql_delete(_SPIP_TRANSLATE); spip_log("init " . _SPIP_TRANSLATE . " : $d"); return $res; }
function action_supprimer_evenement_participant_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); list($id_evenement, $id_evenement_participant) = explode('-', $arg); include_spip('inc/autoriser'); if (intval($id_evenement) and autoriser('modifier', 'evenement', $id_evenement)) { if (intval($id_evenement_participant)) { sql_delete('spip_evenements_participants', 'id_evenement=' . intval($id_evenement) . ' AND id_evenement_participant=' . intval($id_evenement_participant)); } else { if ($id_evenement_participant == 'tous') { sql_delete('spip_evenements_participants', 'id_evenement=' . intval($id_evenement)); } } } return true; }
function formulaires_editer_icon_article_traiter_dist($id_article = 'new', $retour = '', $ajaxload = 'oui') { $message = array('editable' => true, 'message_ok' => ''); if (!_request('vhplab_gis_icon_existant')) { $vhplab_gis_icon = _request('vhplab_gis_icon'); } else { if (_request('vhplab_gis_icon_precedent') && _request('vhplab_gis_icon_precedent') != '') { $vhplab_gis_icon_precedent = preg_split('/_/', _request('vhplab_gis_icon_precedent')); sql_delete("spip_mots_liens", "id_mot='{$vhplab_gis_icon_precedent['1']}' AND id_objet='{$id_article}'"); } $vhplab_gis_icon_existant = preg_split('/_/', _request('vhplab_gis_icon_existant')); // asociamos a palabra chave ao artigo para vincular o icono existente ao mesmo sql_insertq('spip_mots_liens', array('id_mot' => intval($vhplab_gis_icon_existant[1]), 'id_objet' => intval($id_article), 'objet' => 'article')); } // message return array("editable" => true, "message_ok" => _T('vhplab:icon_ok')); }