function action_referencer_traduction_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); if (preg_match(",^(\d+)$,", $arg, $r) AND $trad = intval(_request('lier_trad'))) { include_spip('action/editer_article'); if ($err = article_referent($r[1], array('lier_trad' => $trad))) redirige_par_entete(urldecode(_request('redirect')) . $err); } elseif (preg_match(",^(\d+)\D-(\d+)$,", $arg, $r)) { // supprimer le lien de traduction sql_updateq("spip_articles", array("id_trad" => 0), "id_article=" . $r[1]); // Verifier si l'ancien groupe ne comporte plus qu'un seul article. Alors mettre a zero. $cpt = sql_countsel("spip_articles", "id_trad=" . $r[2]); if ($cpt == 1) sql_updateq("spip_articles", array("id_trad" => 0), "id_trad=" . $r[2]); } elseif (preg_match(",^(\d+)\D(\d+)\D(\d+)$,", $arg, $r)) { // modifier le groupe de traduction de $r[1] (SQL le trouvera) sql_update('spip_articles', array("id_trad" => $r[3]), "id_trad=" . $r[2]); } elseif (preg_match(",^(\d+)\D(\d+)$,", $arg, $r)) { instituer_langue_article($r[1],$r[2]); } else { spip_log("action_referencer_traduction_dist $arg pas compris"); } }
/** * il faut avoir un id_transaction et un transaction_hash coherents * pour se premunir d'une tentative d'appel exterieur * * * @return array */ function presta_gratuit_call_response_dist() { // recuperer la reponse en post et la decoder $id_transaction = _request('id_transaction'); $transaction_hash = _request('hash'); if (!($row = sql_fetsel('*', 'spip_transactions', 'id_transaction=' . intval($id_transaction)))) { spip_log("id_transaction {$id_transaction} non trouve", 'gratuit.' . _LOG_ERREUR); return array($id_transaction, false); } if ($transaction_hash != $row['transaction_hash']) { spip_log("id_transaction {$id_transaction}, hash {$transaction_hash} non conforme", 'gratuit.' . _LOG_ERREUR); return array($id_transaction, false); } // verifier que la commande a bien un total nul, sinon ce mode de paiement n'est pas autorise if (intval($row['montant']) > 0 or floatval($row['montant']) > 0.0) { spip_log("id_transaction {$id_transaction}, montant " . $row['montant'] . ">0 interdit pour ce mode de paiement", 'gratuit.' . _LOG_CRITIQUE); return array($id_transaction, false); } // Ouf, le reglement a ete accepte sql_update("spip_transactions", array("mode" => sql_quote('gratuit'), "montant_regle" => 'montant', "date_paiement" => sql_quote(date('Y-m-d H:i:s')), "statut" => sql_quote('ok'), "reglee" => sql_quote('oui')), "id_transaction=" . intval($id_transaction)); spip_log("gratuit_response : id_transaction {$id_transaction}, reglee", 'gratuit'); $regler_transaction = charger_fonction('regler_transaction', 'bank'); $regler_transaction($id_transaction, "", $row); return array($id_transaction, true); }
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 MyCommit($row) { // Переносим изображение if ($row['image'] && getimagesize('..' . $row['image']) && strpos($row['image'], 'plans') === false) { $object_id = sql_getValue('SELECT pid FROM obj_elem_plans WHERE id=' . $row['pid']); $dir = '../files/objects/' . $object_id; if (!is_dir($dir)) { mkdir($dir); mkdir($dir, 0770); } $dir .= '/plans'; if (!is_dir($dir)) { mkdir($dir); mkdir($dir, 0770); } $new_name = $dir . '/' . basename($row['image']); rename('..' . $row['image'], $new_name); $row['image'] = substr($new_name, 2); } if ($_POST['id']) { sql_update($this->elem_table, $row, 'id = ' . $_POST['id']); } else { sql_insert($this->elem_table, $row); } $err = sql_getError(); if (empty($err)) { return 1; } return $err; }
/** * il faut avoir un id_transaction et un transaction_hash coherents * pour se premunir d'une tentative d'appel exterieur * * * @return array */ function presta_cheque_call_response_dist() { // recuperer la reponse en post et la decoder $id_transaction = _request('id_transaction'); $transaction_hash = _request('hash'); if (!($row = sql_fetsel('*', 'spip_transactions', 'id_transaction=' . intval($id_transaction)))) { spip_log("id_transaction {$id_transaction} non trouve", 'gratuit.' . _LOG_ERREUR); return array($id_transaction, false); } if ($transaction_hash != $row['transaction_hash']) { spip_log("id_transaction {$id_transaction}, hash {$transaction_hash} non conforme", 'gratuit.' . _LOG_ERREUR); return array($id_transaction, false); } // l'autorisation refere l'id_auteur et le nom de celui qui accepte le cheque $autorisation = $GLOBALS['visiteur_session']['id_auteur'] . "/" . $GLOBALS['visiteur_session']['nom']; include_spip("inc/autoriser"); if (!autoriser('encaissercheque', 'transaction', $id_transaction)) { spip_log("id_transaction {$id_transaction}, tentative d'encaisser un cheque par auteur #{$autorisation} pas autorise", 'cheque.' . _LOG_CRITIQUE); return array($id_transaction, false); } // OK, on peut accepter le reglement sql_update("spip_transactions", array("mode" => sql_quote('cheque'), "autorisation_id" => sql_quote($autorisation), "montant_regle" => 'montant', "date_paiement" => sql_quote(date('Y-m-d H:i:s')), "statut" => sql_quote('ok'), "reglee" => sql_quote('oui')), "id_transaction=" . intval($id_transaction)); spip_log("cheque_response : id_transaction {$id_transaction}, reglee", 'cheque'); $regler_transaction = charger_fonction('regler_transaction', 'bank'); $regler_transaction($id_transaction, "", $row); return array($id_transaction, true); }
/** * Cron de calcul des popularités des articles * * @uses genie_popularite_constantes() * * @param int $t * Timestamp de la dernière exécution de cette tâche * @return int * Positif si la tâche a été terminée, négatif pour réexécuter cette tâche **/ function genie_popularites_dist($t) { // Si c'est le premier appel, ne pas calculer $t = $GLOBALS['meta']['date_popularites']; ecrire_meta('date_popularites', time()); if (!$t) { return 1; } $duree = time() - $t; list($a, $b) = genie_popularite_constantes($duree); // du passe, faisons table (SQL) rase sql_update('spip_articles', array('maj' => 'maj', 'popularite' => "popularite * {$a}"), 'popularite>1'); // enregistrer les metas... $row = sql_fetsel('MAX(popularite) AS max, SUM(popularite) AS tot', "spip_articles"); ecrire_meta("popularite_max", $row['max']); ecrire_meta("popularite_total", $row['tot']); // Une fois par jour purger les referers du jour ; qui deviennent // donc ceux de la veille ; au passage on stocke une date_statistiques // dans spip_meta - cela permet au code d'etre "reentrant", ie ce cron // peut etre appele par deux bases SPIP ne partageant pas le meme // _DIR_TMP, sans tout casser... $aujourdhui = date("Y-m-d"); if (($d = $GLOBALS['meta']['date_statistiques']) != $aujourdhui) { spip_log("Popularite: purger referer depuis {$d}"); ecrire_meta('date_statistiques', $aujourdhui); if (strncmp($GLOBALS['connexions'][0]['type'], 'sqlite', 6) == 0) { spip_query("UPDATE spip_referers SET visites_veille=visites_jour, visites_jour=0"); } else { sql_alter("TABLE spip_referers DROP visites_veille,\n\t\t\tCHANGE visites_jour visites_veille INT(10) UNSIGNED NOT NULL DEFAULT '0',\n\t\t\tADD visites_jour INT(10) UNSIGNED NOT NULL DEFAULT '0'"); } } // et c'est fini pour cette fois-ci return 1; }
function auth_spip_dist ($login, $pass, $serveur='') { // retrouver le login $login = auth_spip_retrouver_login($login); // login inconnu, n'allons pas plus loin if (!$login) return array(); $md5pass = $md5next = ""; $shapass = $shanext = ""; if (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64})\}$,i",$pass,$regs)){ $shapass = $regs[1]; $shanext = $regs[2]; $pass=""; } // compat avec une base mixte md5/sha256 : le js a envoye les 2 hash elseif (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\}$,i",$pass,$regs)){ $shapass = $regs[1]; $shanext = $regs[2]; $md5pass = $regs[3]; $md5next = $regs[4]; $pass=""; } // si envoi non crypte, crypter maintenant elseif ($pass) { $row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login="******"*", "spip_auteurs", "login="******" AND pass="******" AND statut<>'5poubelle'",'','','','',$serveur); // compat avec les anciennes bases en md5 if (!$row AND $md5pass) $row = sql_fetsel("*", "spip_auteurs", "login="******" AND pass="******" AND statut<>'5poubelle'",'','','','',$serveur); // login/mot de passe incorrect if (!$row) return array(); // fait tourner le codage du pass dans la base if ($shanext) { include_spip('inc/acces'); // pour creer_uniqid @sql_update('spip_auteurs', array('alea_actuel' => 'alea_futur', 'pass' => sql_quote($shanext), 'alea_futur' => sql_quote(creer_uniqid())), "id_auteur=" . $row['id_auteur'].' AND pass IN ('.sql_quote($shapass).', '.sql_quote($md5pass).')','',$serveur); // En profiter pour verifier la securite de tmp/ // Si elle ne fonctionne pas a l'installation, prevenir if (!verifier_htaccess(_DIR_TMP) AND defined('_ECRIRE_INSTALL')) return false; } return $row; }
function upgrade_evenements_articles_012() { $res = sql_select("*", "spip_evenements_articles"); while ($row = sql_fetch($res)) { $id_article = $row['id_article']; $id_evenement = $row['id_evenement']; sql_update("spip_evenements", array('id_article' => $id_article), 'id_evenement=' . intval($id_evenement)); } }
/** * Processing function */ function formulaires_ecatalogue_product_excel_import_traiter_dist() { if (isset($_POST['ids']) && is_array($_POST['ids'])) { foreach ($_POST['ids'] as $key => $value) { if ($value != '') { sql_update('spip_rubriques', array('id_import' => $value), 'id_rubrique = ' . $key); } } } }
/** * Authentifie et si ok retourne le tableau de la ligne SQL de l'utilisateur * Si risque de secu repere a l'installation retourne False * * @param string $login * @param string $pass * @param string $serveur * @param bool $phpauth * @return array|bool */ function auth_spip_dist($login, $pass, $serveur = '', $phpauth = false) { // retrouver le login $login = auth_spip_retrouver_login($login); // login inconnu, n'allons pas plus loin if (!$login) { return array(); } $md5pass = ""; $shapass = $shanext = ""; if (preg_match(",^\\{([0-9a-f]{64});([0-9a-f]{64})\\}\$,i", $pass, $regs)) { $shapass = $regs[1]; $shanext = $regs[2]; } elseif (preg_match(",^\\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\\}\$,i", $pass, $regs)) { $shapass = $regs[1]; $shanext = $regs[2]; $md5pass = $regs[3]; //$md5next = $regs[4]; } elseif ($pass) { $row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login="******"*", "spip_auteurs", "login="******" AND pass="******" AND statut<>'5poubelle'", '', '', '', '', $serveur); // compat avec les anciennes bases en md5 if (!$row and $md5pass) { $row = sql_fetsel("*", "spip_auteurs", "login="******" AND pass="******" AND statut<>'5poubelle'", '', '', '', '', $serveur); } // login/mot de passe incorrect if (!$row) { return array(); } // fait tourner le codage du pass dans la base // sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action() if ($shanext and !$phpauth) { include_spip('inc/acces'); // pour creer_uniqid @sql_update('spip_auteurs', array('alea_actuel' => 'alea_futur', 'pass' => sql_quote($shanext, $serveur, 'text'), 'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')), "id_auteur=" . $row['id_auteur'] . ' AND pass IN (' . sql_quote($shapass, $serveur, 'text') . ', ' . sql_quote($md5pass, $serveur, 'text') . ')', '', $serveur); // En profiter pour verifier la securite de tmp/ // Si elle ne fonctionne pas a l'installation, prevenir if (!verifier_htaccess(_DIR_TMP) and defined('_ECRIRE_INSTALL')) { return false; } } return $row; }
/** * 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 formulaires_ecatalogue_option_edit_traiter_dist() { $table = "spip_ecatalogue_options"; $exp = array('titre' => sql_quote(_request('titre')), 'descriptif' => sql_quote(_request('descriptif')), 'texte' => sql_quote(_request('texte'))); $where = "id_option=" . _request('id_option'); try { sql_update($table, $exp, $where); $result['message_ok'] = _T('ecatalogue:form_saved'); } catch (Exception $e) { $result['message_erreur'] = _T('ecatalogue:form_error'); } return $result; }
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"); } }
function clevermail_post_queue($pst_id) { if ($post = sql_fetsel("lst_id, pst_subject", "spip_cm_posts", "pst_id = " . intval($pst_id))) { $lst_id = $post['lst_id']; $lst_name = sql_getfetsel("lst_name", "spip_cm_lists", "lst_id = " . intval($lst_id)); if (sql_countsel("spip_cm_posts", "pst_id = " . intval($pst_id) . " AND pst_date_sent = 0")) { // Si le script plante en cours, on ne renvoie pas deux fois aux premiers, tant pis pour ceux qui ne sont pas passes sql_update("spip_cm_posts", array('pst_date_sent' => time()), "pst_id = " . intval($pst_id)); $subscribers = sql_select("sub_id", "spip_cm_lists_subscribers", "lst_id = " . intval($lst_id)); while ($sub = sql_fetch($subscribers)) { sql_insertq("spip_cm_posts_queued", array('pst_id' => intval($pst_id), 'sub_id' => intval($sub['sub_id']), 'psq_date' => time())); } spip_log('Déclenchement de l\'envoi du message « ' . $post['pst_subject'] . ' » (id=' . $pst_id . ') de la liste « ' . $lst_name . ' » (id=' . $lst_id . ')', 'clevermail'); } } }
/** * Recevoir la notification d'un paiement par chèque ou virement. Pour les autres presta voir presta/$presta/inc/ * * @return array */ function bank_recoit_notification($id_transaction, $transaction_hash, $mode, $notifier = true) { $mode_autorises = array('cheque', 'virement'); if (!($row_prec = sql_fetsel("*", "spip_commandes_transactions", "id_transaction=" . intval($id_transaction) . " AND transaction_hash=" . sql_quote($transaction_hash)))) { spip_log("id_transaction invalide : {$id_transaction}/hash{$transaction_hash}", 'paiement_alter'); return array(0, false); } if ($row_prec['reglee'] == 'oui') { return array($id_transaction, true); } // cette transaction a deja ete reglee. double entree, on ne fait rien if (!$mode or !in_array($mode, $mode_autorises)) { spip_log("Transaction {$id_transaction}:pas de mode paiement renseigné (chèque ou virement)", 'paiement_alter'); $message = "Une erreur s'est produite pendant l'enregistrement de votre commande"; return bank_echec_transaction($id_transaction, $message); // erreur sur la transaction } /* TODO traiter les autres possibilités d'échec ou de traitement de la commande à réception du chèque par un admin ? Pour le moment, on enregistre seulement le fait que le client indique vouloir payer par chèque. */ $message = _T('vacarme_commande:message_ok_formulaire_paiements_alter'); // commande en attente du reglement sql_update("spip_commandes_transactions", array("mode" => sql_quote($mode), "statut" => sql_quote('attente'), "message" => sql_quote($message)), "id_transaction=" . intval($id_transaction)); spip_log("cheque_response : id_transaction {$id_transaction}, attente", $mode); // mise à jour de la commande correspondante $id_commande = sql_getfetsel("id_commande", "spip_commandes_transactions", "id_transaction=" . intval($id_transaction)); sql_updateq("spip_commandes", array("paiement" => $mode, "statut" => "attente"), "id_commande=" . intval($id_commande)); // mise à jour de l'abonnement s'il existe $id_commandes_detail = sql_allfetsel('id_commandes_detail', 'spip_commandes_details', 'id_commande=' . $id_commande . ' and objet="abonnement"'); if ($id_commandes_detail) { foreach ($id_commandes_detail as $k) { foreach ($k as $id) { sql_updateq("spip_contacts_abonnements", array('statut_abonnement' => 'attente'), 'id_commandes_detail=' . $id); } } } // ensuite un pipeline de traitement, notification etc... $message = pipeline('bank_traiter_reglement', array('args' => array('id_transaction' => $id_transaction, 'new' => $row_prec['reglee'] !== 'oui', 'confirm' => $row_prec['reglee'] == 'oui', 'notifier' => $notifier, 'avant' => $row_prec), 'data' => $message)); return array($id_transaction, true); }
/** * Recalculer tous les threads * * Fonction du plugin forum recopiee ici pour assurer la montee * de version dans tous les cas de figure **/ function maj_v018_calculer_threads() { // fixer les id_thread des debuts de discussion sql_update('spip_forum', array('id_thread' => 'id_forum'), "id_parent=0"); // reparer les messages qui n'ont pas l'id_secteur de leur parent do { $discussion = "0"; $precedent = 0; $r = sql_select("fille.id_forum AS id,\tmaman.id_thread AS thread", 'spip_forum AS fille, spip_forum AS maman', "fille.id_parent = maman.id_forum AND fille.id_thread <> maman.id_thread", '', "thread"); while ($row = sql_fetch($r)) { if ($row['thread'] == $precedent) { $discussion .= "," . $row['id']; } else { if ($precedent) { sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ({$discussion})"); } $precedent = $row['thread']; $discussion = $row['id']; } } sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ({$discussion})"); } while ($discussion != "0"); }
function boites_privees_tri_auteurs_action() { // boite privee : tri les auteurs d'un article $id_article = _request('bp_article'); $id_auteur = abs(_request('bp_auteur')); $monter = _request('bp_auteur')>0; if(!defined('_SPIP19300')) include_spip('outils/boites_privees'); // pour les fonctions sql $s = sql_select('id_auteur', 'spip_auteurs_articles', "id_article=$id_article"); $i=0; $j=0; while ($a = sql_fetch($s)) { if($a['id_auteur']==$id_auteur) { $i = $a['id_auteur']; break; } $j = $a['id_auteur']; } if(!$monter && $i && ($a = sql_fetch($s))) $j = $a['id_auteur']; spip_log("action_rapide_tri_auteurs, article $id_article : echange entre l'auteur $i et l'auteur $j"); if($i && $j) { sql_update("spip_auteurs_articles", array('id_auteur'=>-99), "id_article=$id_article AND id_auteur=$i"); sql_update("spip_auteurs_articles", array('id_auteur'=>$i), "id_article=$id_article AND id_auteur=$j"); sql_update("spip_auteurs_articles", array('id_auteur'=>$j), "id_article=$id_article AND id_auteur=-99"); } // action terminee, pret pour la redirection exec ! return; }
/** * il faut avoir un id_transaction et un transaction_hash coherents * pour se premunir d'une tentative d'appel exterieur * */ function presta_simu_call_response_dist() { // recuperer la reponse en post et la decoder $id_transaction = _request('id_transaction'); $transaction_hash = _request('hash'); if (!defined('_SIMU_BANK_ALLOWED')) { spip_log('simu pas autorisee', 'simu'); return array($id_transaction, false); } if (!($row = sql_fetsel('*', 'spip_transactions', 'id_transaction=' . intval($id_transaction)))) { spip_log("id_transaction {$id_transaction} non trouve", 'simu'); return array($id_transaction, false); } if ($transaction_hash != $row['transaction_hash']) { spip_log("id_transaction {$id_transaction}, hash {$transaction_hash} non conforme", 'simu'); return array($id_transaction, false); } // Ouf, le reglement a ete accepte sql_update("spip_transactions", array("mode" => sql_quote('simu'), "montant_regle" => 'montant', "date_paiement" => 'NOW()', "statut" => sql_quote('ok'), "reglee" => sql_quote('oui')), "id_transaction=" . intval($id_transaction)); spip_log("simu_response : id_transaction {$id_transaction}, reglee", 'simu'); $regler_transaction = charger_fonction('regler_transaction', 'bank'); $regler_transaction($id_transaction, "", $row); return array($id_transaction, true); }
$conn = connect(); $showrecs = 20; $pagerange = 10; $a = @$_GET["a"]; $recid = @$_GET["recid"]; $page = @$_GET["page"]; if (!isset($page)) { $page = 1; } $sql = @$_POST["sql"]; switch ($sql) { case "insert": sql_insert(); break; case "update": sql_update(); break; case "delete": sql_delete(); break; } switch ($a) { case "add": addrec(); break; case "view": viewrec($recid); break; case "edit": editrec($recid); break;
function formular_cp($order, $revision = 0, $fieldsets_c = 1, $form_data = "", $page = "") { if (isset($_GET["cp"])) { $cp = sec_input($_GET["cp"]); } if (!empty($form_data)) { foreach ($form_data as $key => $value) { ${$key} = $value; } } $data = sql_query("SELECT r.id, r.id_obj, r.meno, adresa, ico, telefon, email, komentar,\r\n DATE_FORMAT(datum, '%d. %m. %Y, %H:%i') AS datum\r\n FROM revizia r \r\n \r\n WHERE r.id={$revision} \r\n LIMIT 1"); $data = $data[0]; //var_dump($data); $data_obj = sql_query("SELECT DATE_FORMAT(datum, '%d. %m. %Y, %H:%i') AS datum, c_obj, id_zakaznik\r\n FROM objednavka \r\n WHERE id=" . $data["id_obj"] . " LIMIT 1"); $data_obj = $data_obj[0]; //var_dump($data); $message = ""; $message .= "<h1>Cenová ponuka pre objednávku č. " . $data_obj["c_obj"] . " / " . $data["id"] . "</h1>"; $message .= "<h5>Objednávka zo dňa: " . $data_obj["datum"] . "</h5>"; $message .= "<div class=\"print_hlavicka\">"; if ($data_obj[id_zakaznik] > 0) { $meno_zakaznika = sql_query("SELECT meno, adresa, mesto, psc, ico, dic, telefon, email \r\n \r\n FROM uzivatel WHERE id={$data_obj['id_zakaznik']} LIMIT 1"); $meno_zakaznika = $meno_zakaznika[0]; $data[meno] = $meno_zakaznika[meno]; $data[adresa] = $meno_zakaznika[adresa]; $data[mesto] = $meno_zakaznika[mesto]; $data[psc] = $meno_zakaznika[psc]; $data[ico] = $meno_zakaznika[ico]; $data[dic] = $meno_zakaznika[dic]; $data[telefon] = $meno_zakaznika[telefon]; $data[email] = $meno_zakaznika[email]; //$cenova_hladina = sql_query("SELECT id_c_hladina FROM uzivatel WHERE id=$data_obj[id_zakaznik]"); //$cenova_hladina = $cenova_hladina[0][id_c_hladina]; } $message .= "<div class=\"print_odberatel\"><table class=\"print_odberatel\"><tr><td></td><td><strong>Objednávateľ:</strong></td></tr>"; $message .= "<tr><td></td><td class=\"print_bigger\">" . $data["meno"] . "</td></tr>"; $message .= "<tr><td></td><td>" . $data["adresa"] . "</td></tr>"; $message .= "<tr><td></td><td>" . $data["psc"] . " " . $data["mesto"] . "</td></tr>"; $message .= "<tr><td>IČO:</td><td>" . $data["ico"] . "</td></tr>"; $message .= "<tr><td>DIČ:</td><td>" . $data["dic"] . "</td></tr>"; $message .= "<tr><td>tel.:</td><td>" . $data["telefon"] . "</td></tr>"; $message .= "<tr><td>email:</td><td>" . $data["email"] . "</td></tr>"; $message .= "</table>"; $message .= "</div>"; //var_dump($dekor); echo "<div class=\"print\">"; echo $message; echo "</div>"; echo "</div>"; echo "<div id=\"content\" class=\"print_hlavicka4\">"; if (empty($page) or $page == 1) { if ($_POST["submit_page1"]) { $fieldsets_c = count($_POST["id"]); for ($i = 0; $i < $fieldsets_c; $i++) { $id_objednavka_row[] = sec_input(sec_sql($_POST["id"][$i])); $zlava[] = str_replace(',', '.', sec_input(sec_sql($_POST["zlava"][$i]))); $product_price[] = str_replace(',', '.', sec_input(sec_sql($_POST["product_price"][$i]))); $id_cp_product[] = sec_input(sec_sql($_POST["id_cp_product"][$i])); $ks[] = sec_input(sec_sql($_POST["ks"][$i])); } $form_data[id_objednavka_row] = $id_objednavka_row; $form_data[id_cp_product] = $id_cp_product; $form_data[ks] = $ks; $form_data[zlava] = $zlava; $form_data[product_price] = $product_price; //var_dump($order); //var_dump($revision); if (empty($error_msg)) { $query = "INSERT INTO cp ( id_objednavka, id_revizia, vytvoril )\r\n VALUES ( {$order}, {$revision}, {$_SESSION['username']} )\r\n "; //print_r($query); //die(); mysql_query("BEGIN"); $sql_cp = sql_insert($query); $cp_id = $sql_cp["inserted_id"]; for ($i = 0; $i < count($form_data[id_objednavka_row]); $i++) { if (empty($form_data[product_price][$i])) { $product_price = sql_query("SELECT cena FROM cp_product WHERE id=" . $form_data[id_cp_product][$i] . " ORDER BY id DESC LIMIT 1")[0]["cena"]; } else { $product_price = $form_data[product_price][$i]; } //echo $product_price."<br>"; //$product_ks_sum = $product_ks_sum + sec_input($form_data["ks"][$i]); $product_price_sum = $product_price * sec_input($form_data["ks"][$i]); $products_prices_sums = $products_prices_sums + $product_price_sum; $zlava_E = $product_price_sum * $form_data["zlava"][$i] / 100; $po_zlave = $product_price_sum - $zlava_E; $po_zlave_sum = $po_zlave_sum + $po_zlave; $query_cp_row = "INSERT into cp_row (id_cp, id_objednavka_row, id_cp_product, \r\n ks, cena, zlava, sum)\r\n VALUES ({$cp_id},\r\n {$form_data[id_objednavka_row][$i]}, \r\n \"{$form_data[id_cp_product][$i]}\", \r\n {$form_data[ks][$i]},\r\n \"{$form_data[product_price][$i]}\",\r\n \"{$form_data[zlava][$i]}\",\r\n \"{$po_zlave}\"\r\n )"; //echo $query_cp_row."<br>"; sql_insert($query_cp_row); //var_dump($query_poznamka); } sql_update("UPDATE cp SET all_sum={$po_zlave_sum} WHERE id={$cp_id}"); mysql_query("COMMIT"); //dd($form_data); //$_SESSION["posted_form_from_cp"]=$form_data; header("location: ?vyber=cp&order={$order}&revision={$revision}&action=display_all"); } else { echo "<div id=error_message>" . implode("<br>", $error_msg) . "</div>"; } } echo "<form method=\"POST\" id=\"formular\" enctype=\"multipart/form-data\">"; echo "<fieldset id=\"cp_rows\">"; // pre editaciu cenovej ponuky.... //========================================= $data_row = sql_query("SELECT * \r\n FROM objednavka_row\r\n WHERE id_revizia = " . $revision . "\r\n "); //var_dump($data_row); $fieldsets_c = count($data_row); for ($i = 0; $i < $fieldsets_c; $i++) { $ks[$i] = $data_row[$i][ks]; $id[$i] = $data_row[$i][id]; $product_type[$i] = $data_row[$i][id_product_type]; $product[$i] = $data_row[$i][id_product]; $product_delivery[$i] = $data_row[$i][id_product_delivery]; $atyp_text[$i] = $data_row[$i][atyp_text]; $data_row_option = sql_query("SELECT id_product_atribute, id_product_atribute_option \r\n FROM objednavka_row_atribute \r\n WHERE id_revizia=\"{$revision}\" AND id_objednavka_row=\"{$data_row[$i][id]}\""); //dd($form_data_row_option); foreach ($data_row_option as $option) { $data_rows[$i][$option["id_product_atribute"]] = $option["id_product_atribute_option"]; } if (isset($_GET["cp"]) and !empty($_GET["cp"])) { $query = "SELECT * from cp_row WHERE id_cp=" . sec_input(sec_sql($_GET["cp"])) . " AND id_objednavka_row=" . $data_row[$i][id] . ""; $cp_row = sql_query($query)[0]; $cena[$i] = $cp_row[cena]; $zlava[$i] = $cp_row[zlava]; //var_dump($cp_row); } } $data[id_all] = $id; $data[ks_all] = $ks; $data[product_type_all] = $product_type; $data[product_all] = $product; $data[product_delivery_all] = $product_delivery; $data[atyp_text_all] = $atyp_text; $data[product_atribute_options_all] = $data_rows; $data[product_price_all] = $cena; $data[zlava_all] = $zlava; $message = "<div class=\"print_hlavicka3\">\r\n <table>\r\n <tr>\r\n <th></th> \r\n <th style=\"width: 380px;\">produkt</th>\r\n <th style=\"width: 40px;\">množstvo</th>\r\n <th style=\"width: 70px;\">doprava</th> \r\n <th style=\"width: 50px;\">j.cena</th>\r\n <th style=\"width: 50px;\">Spolu</th>\r\n <th style=\"width: 90px;\">zľava %</th>\r\n <th style=\"width: 50px;\">po zľave</th>\r\n </tr>"; //echo hidden("name", "value"); //var_dump($data); $fieldsets_c = count($data["ks_all"]); for ($i = 0; $i < $fieldsets_c; $i++) { $poradie = 0; $poradie = $i + 1; $message .= "<tr>\r\n <td class=\"form_poradie\">{$poradie}. </td>\r\n "; $product_type = sql_query("SELECT meno FROM product_type WHERE id=" . sec_sql(sec_input($data["product_type_all"][$i])) . " LIMIT 1"); $product_type = $product_type[0]; $product = sql_query("SELECT id, meno FROM product WHERE id=" . sec_sql(sec_input($data["product_all"][$i])) . " LIMIT 1")[0]; $message .= hidden("id[]", $data["id_all"][$i]); $options_str = array(); //var_dump($data); if (!isset($data["product_atribute_options_all"][$i]) or empty($data["product_atribute_options_all"][$i])) { $data["product_atribute_options_all"][$i] = array(); } $option_c_hladina = 1; foreach ($data["product_atribute_options_all"][$i] as $option) { //var_dump($option); $options = sql_query("SELECT id, meno, id_c_hladina FROM product_atribute_option WHERE id=" . sec_sql(sec_input($option)) . " LIMIT 1"); $options_str[] = $options[0]["meno"]; if ($options[0]["id_c_hladina"] > $option_c_hladina) { $option_c_hladina = $options[0]["id_c_hladina"]; } //$options["price"] = sql_query("SELECT id, cena FROM product_atribute_option WHERE id=".sec_sql(sec_input($option))." LIMIT 1"); } $options_str = empty($options_str) ? "" : " (" . join(", ", $options_str) . ")"; $message .= "<td class=\"form_nazov_siroky\">" . $product_type["meno"] . " " . $product["meno"] . "" . $options_str . "" . (empty($data["atyp_text_all"][$i]) ? "" : "<br>Atyp: " . sec_input($data["atyp_text_all"][$i])) . "</td>"; $product_delivery = sql_query("SELECT meno FROM product_delivery WHERE id=" . sec_sql(sec_input($data["product_delivery_all"][$i])) . " LIMIT 1"); $product_delivery = $product_delivery[0]; $message .= "<td class=\"form_ks\">" . sec_input($data["ks_all"][$i]) . " ks</td>"; $message .= "<td class=\"form_hrana\">" . $product_delivery["meno"] . "</td>"; $message .= hidden("ks[]", $data["ks_all"][$i]); if (empty($data[product_price_all][$i])) { $product_prices = sql_query("SELECT id, cena FROM cp_product WHERE id_c_hladina=" . $option_c_hladina . " AND id_product=" . $product["id"] . " ORDER BY id DESC LIMIT 1")[0]; $product_price = $product_prices[cena]; } else { $product_price = $data[product_price_all][$i]; } $product_ks_sum = $product_ks_sum + sec_input($data["ks_all"][$i]); $product_price_sum = $product_price * sec_input($data["ks_all"][$i]); $message .= hidden("id_cp_product[]", $product_prices[id]); // spocitanie ceny spolu za vsetky produkty $products_prices_sums = $products_prices_sums + $product_price_sum; $zlava_E = $product_price_sum * $data[zlava_all][$i] / 100; $po_zlave = $product_price_sum - $zlava_E; $po_zlave_sum = $po_zlave_sum + $po_zlave; if (!empty($data["atyp_text_all"][$i])) { $product_price = textfield("product_price[{$i}]", $data[product_price_all][$i], "", 5, 3, "product_price"); } else { $product_price = $product_price . " €"; } $message .= "<td class=\"form_nazov ali-center product-price\">" . $product_price . "</td>"; $message .= "<td class=\"form_nazov ali-center bold\"><span class=\"cena-spolu-product\">" . $product_price_sum . "</span> €</td>"; $message .= "<td class=\"form_nazov\">" . textfield("zlava[]", $data[zlava_all][$i], "", 4, 2, "zlava") . "<span class=\"zlava-E bold\">" . ($zlava_E > 0 ? "-" . $zlava_E . " €" : "") . "</span></td>"; $message .= "<td class=\"form_nazov ali-center po-zlave-sum\">" . $po_zlave . "</td>"; $message .= "</tr>"; } $message .= "<tr class=\"cp_spolu bold\">\r\n <td></td>\r\n <td>Spolu:</td>\r\n <td class=\"ali-center\">" . $product_ks_sum . " ks</td>\r\n <td></td>\r\n <td></td>\r\n <td class=\"ali-center\">" . $products_prices_sums . " €</td>\r\n <td></td>\r\n <td class=\"ali-center po-zlave-sum-all\">" . $po_zlave_sum . " €</td>\r\n \r\n <tr>"; $message .= "</table></div>"; echo $message; echo "</fieldset>"; echo submit("submit_page1", "Pokračovať"); } echo "</form>"; }
/** * Effacement de la bidouille ci-dessus * Toutefois si la table des auteurs ne contient plus qu'elle * c'est que la copie etait incomplete et on restaure le compte * pour garder la connection au site * * (mais il doit pas etre bien beau * et ca ne marche que si l'id_auteur est sur moins de 3 chiffres) * * @param string $serveur */ function base_detruire_copieur_si_besoin($serveur = '') { // rien a faire si ce n'est pas le serveur principal ! if ($serveur == '') { if (sql_countsel("spip_auteurs", "id_auteur>0")) { spip_log("Detruire copieur id_auteur<0 pour le serveur '{$serveur}'", 'dump.' . _LOG_INFO_IMPORTANTE); sql_delete("spip_auteurs", "id_auteur<0", $serveur); } else { spip_log("Restaurer copieur id_auteur<0 pour le serveur '{$serveur}' (aucun autre auteur en base)", 'dump.' . _LOG_INFO_IMPORTANTE); sql_update('spip_auteurs', array('id_auteur' => '-id_auteur'), "id_auteur<0"); } } else { spip_log("Pas de destruction copieur sur serveur '{$serveur}'", 'dump.' . _LOG_INFO_IMPORTANTE); } }
function optimiser_base_disparus($attente = 86400) { # format = 20060610110141, si on veut forcer une optimisation tout de suite $mydate = date("YmdHis", time() - $attente); $n = 0; // // Rubriques // # les articles qui sont dans une id_rubrique inexistante # attention on controle id_rubrique>0 pour ne pas tuer les articles # specialement affectes a une rubrique non-existante (plugin, # cf. http://trac.rezo.net/trac/spip/ticket/1549 ) $res = sql_select("articles.id_article AS id", "spip_articles AS articles LEFT JOIN spip_rubriques AS rubriques ON articles.id_rubrique=rubriques.id_rubrique", "articles.id_rubrique > 0 AND rubriques.id_rubrique IS NULL AND articles.maj < $mydate"); $n+= optimiser_sansref('spip_articles', 'id_article', $res); # les breves qui sont dans une id_rubrique inexistante $res = sql_select("breves.id_breve AS id", "spip_breves AS breves LEFT JOIN spip_rubriques AS rubriques ON breves.id_rubrique=rubriques.id_rubrique", "rubriques.id_rubrique IS NULL AND breves.maj < $mydate"); $n+= optimiser_sansref('spip_breves', 'id_breve', $res); # les forums lies a une id_rubrique inexistante $res = sql_select("forum.id_forum AS id", "spip_forum AS forum LEFT JOIN spip_rubriques AS rubriques ON forum.id_rubrique=rubriques.id_rubrique", "rubriques.id_rubrique IS NULL AND forum.id_rubrique>0"); $n+= optimiser_sansref('spip_forum', 'id_forum', $res); # les droits d'auteurs sur une id_rubrique inexistante # (plusieurs entrees seront eventuellement detruites pour chaque rub) $res = sql_select("auteurs_rubriques.id_rubrique AS id", "spip_auteurs_rubriques AS auteurs_rubriques LEFT JOIN spip_rubriques AS rubriques ON auteurs_rubriques.id_rubrique=rubriques.id_rubrique", "rubriques.id_rubrique IS NULL"); $n+= optimiser_sansref('spip_auteurs_rubriques', 'id_rubrique', $res); # les liens des mots affectes a une id_rubrique inexistante $res = sql_select("mots_rubriques.id_rubrique AS id", "spip_mots_rubriques AS mots_rubriques LEFT JOIN spip_rubriques AS rubriques ON mots_rubriques.id_rubrique=rubriques.id_rubrique", "rubriques.id_rubrique IS NULL"); $n+= optimiser_sansref('spip_mots_rubriques', 'id_rubrique', $res); // // Articles // sql_delete("spip_articles", "statut='poubelle' AND maj < $mydate"); # les liens d'auteurs d'articles effaces $res = sql_select("auteurs_articles.id_article AS id", "spip_auteurs_articles AS auteurs_articles LEFT JOIN spip_articles AS articles ON auteurs_articles.id_article=articles.id_article", "articles.id_article IS NULL"); $n+= optimiser_sansref('spip_auteurs_articles', 'id_article', $res); # les liens de mots affectes a des articles effaces $res = sql_select("mots_articles.id_article AS id", "spip_mots_articles AS mots_articles LEFT JOIN spip_articles AS articles ON mots_articles.id_article=articles.id_article", "articles.id_article IS NULL"); $n+= optimiser_sansref('spip_mots_articles', 'id_article', $res); # les forums lies a des articles effaces $res = sql_select("forum.id_forum AS id", "spip_forum AS forum LEFT JOIN spip_articles AS articles ON forum.id_article=articles.id_article", "articles.id_article IS NULL AND forum.id_article>0"); $n+= optimiser_sansref('spip_forum', 'id_forum', $res); // // Breves // sql_delete("spip_breves", "statut='refuse' AND maj < $mydate"); # les liens de mots affectes a des breves effacees $res = sql_select("mots_breves.id_breve AS id", "spip_mots_breves AS mots_breves LEFT JOIN spip_breves AS breves ON mots_breves.id_breve=breves.id_breve", "breves.id_breve IS NULL"); $n+= optimiser_sansref('spip_mots_breves', 'id_breve', $res); # les forums lies a des breves effacees $res = sql_select("forum.id_forum AS id", "spip_forum AS forum LEFT JOIN spip_breves AS breves ON forum.id_breve=breves.id_breve", "breves.id_breve IS NULL AND forum.id_breve>0"); $n+= optimiser_sansref('spip_forum', 'id_forum', $res); // // Sites // sql_delete("spip_syndic", "maj < $mydate AND statut = 'refuse'"); # les articles syndiques appartenant a des sites effaces $res = sql_select("syndic_articles.id_syndic AS id", "spip_syndic_articles AS syndic_articles LEFT JOIN spip_syndic AS syndic ON syndic_articles.id_syndic=syndic.id_syndic", "syndic.id_syndic IS NULL"); $n+= optimiser_sansref('spip_syndic_articles', 'id_syndic', $res); # les liens de mots affectes a des sites effaces $res = sql_select("mots_syndic.id_syndic AS id", "spip_mots_syndic AS mots_syndic LEFT JOIN spip_syndic AS syndic ON mots_syndic.id_syndic=syndic.id_syndic", "syndic.id_syndic IS NULL"); $n+= optimiser_sansref('spip_mots_syndic', 'id_syndic', $res); # les forums lies a des sites effaces $res = sql_select("forum.id_forum AS id", "spip_forum AS forum LEFT JOIN spip_syndic AS syndic ON forum.id_syndic=syndic.id_syndic", "syndic.id_syndic IS NULL AND forum.id_syndic>0"); $n+= optimiser_sansref('spip_forum', 'id_forum', $res); // // Auteurs // # les liens d'articles sur des auteurs effaces $res = sql_select("auteurs_articles.id_auteur AS id", "spip_auteurs_articles AS auteurs_articles LEFT JOIN spip_auteurs AS auteurs ON auteurs_articles.id_auteur=auteurs.id_auteur", "auteurs.id_auteur IS NULL"); $n+= optimiser_sansref('spip_auteurs_articles', 'id_auteur', $res); # les liens de messages sur des auteurs effaces $res = sql_select("auteurs_messages.id_auteur AS id", "spip_auteurs_messages AS auteurs_messages LEFT JOIN spip_auteurs AS auteurs ON auteurs_messages.id_auteur=auteurs.id_auteur", "auteurs.id_auteur IS NULL"); $n+= optimiser_sansref('spip_auteurs_messages', 'id_auteur', $res); # les liens de rubriques sur des auteurs effaces $res = sql_select("auteurs_rubriques.id_rubrique AS id", "spip_auteurs_rubriques AS auteurs_rubriques LEFT JOIN spip_rubriques AS rubriques ON auteurs_rubriques.id_rubrique=rubriques.id_rubrique", "rubriques.id_rubrique IS NULL"); $n+= optimiser_sansref('spip_auteurs_rubriques', 'id_rubrique', $res); # effacer les auteurs poubelle qui ne sont lies a aucun article $res = sql_select("auteurs.id_auteur AS id", "spip_auteurs AS auteurs LEFT JOIN spip_auteurs_articles AS auteurs_articles ON auteurs_articles.id_auteur=auteurs.id_auteur", "auteurs_articles.id_auteur IS NULL AND auteurs.statut='5poubelle' AND auteurs.maj < $mydate"); $n+= optimiser_sansref('spip_auteurs', 'id_auteur', $res); # supprimer les auteurs 'nouveau' qui n'ont jamais donne suite # au mail de confirmation (45 jours pour repondre, ca devrait suffire) sql_delete("spip_auteurs", "statut='nouveau' AND maj < ". sql_quote(date('Y-m-d', time()-45*24*3600))); // // Documents // # les liens des documents qui sont lies a un objet inexistant $r = sql_select("DISTINCT objet","spip_documents_liens"); while ($t = sql_fetch($r)){ $type = $t['objet']; $spip_table_objet = table_objet_sql($type); $id_table_objet = id_table_objet($type); $res = sql_select("L.id_document AS id,id_objet", "spip_documents_liens AS L LEFT JOIN $spip_table_objet AS O ON O.$id_table_objet=L.id_objet AND L.objet=".sql_quote($type), "O.$id_table_objet IS NULL"); // sur une cle primaire composee, pas d'autres solutions que de virer un a un while ($row = sql_fetch($res)){ sql_delete("spip_documents_liens", array("id_document=".$row['id'],"id_objet=".$row['id_objet'],"objet=".sql_quote($type))); spip_log("Entree ".$row['id']."/".$row['id_objet']."/$type supprimee dans la table spip_documents_liens"); } } // on ne nettoie volontairement pas automatiquement les documents orphelins // // Messages prives // # supprimer les messages lies a un auteur disparu $res = sql_select("messages.id_message AS id", "spip_messages AS messages LEFT JOIN spip_auteurs AS auteurs ON auteurs.id_auteur=messages.id_auteur", "auteurs.id_auteur IS NULL"); $n+= optimiser_sansref('spip_messages', 'id_message', $res); // // Mots-cles // $result = sql_delete("spip_mots", "titre='' AND maj < $mydate"); # les liens mots-articles sur des mots effaces $res = sql_select("mots_articles.id_mot AS id", "spip_mots_articles AS mots_articles LEFT JOIN spip_mots AS mots ON mots_articles.id_mot=mots.id_mot", "mots.id_mot IS NULL"); $n+= optimiser_sansref('spip_mots_articles', 'id_mot', $res); # les liens mots-breves sur des mots effaces $res = sql_select("mots_breves.id_mot AS id", "spip_mots_breves AS mots_breves LEFT JOIN spip_mots AS mots ON mots_breves.id_mot=mots.id_mot", "mots.id_mot IS NULL"); $n+= optimiser_sansref('spip_mots_breves', 'id_mot', $res); # les liens mots-forum sur des mots effaces $res = sql_select("mots_forum.id_mot AS id", "spip_mots_forum AS mots_forum LEFT JOIN spip_mots AS mots ON mots_forum.id_mot=mots.id_mot", "mots.id_mot IS NULL"); $n+= optimiser_sansref('spip_mots_forum', 'id_mot', $res); # les liens mots-rubriques sur des mots effaces $res = sql_select("mots_rubriques.id_mot AS id", "spip_mots_rubriques AS mots_rubriques LEFT JOIN spip_mots AS mots ON mots_rubriques.id_mot=mots.id_mot", "mots.id_mot IS NULL"); $n+= optimiser_sansref('spip_mots_rubriques', 'id_mot', $res); # les liens mots-syndic sur des mots effaces $res = sql_select("mots_syndic.id_mot AS id", "spip_mots_syndic AS mots_syndic LEFT JOIN spip_mots AS mots ON mots_syndic.id_mot=mots.id_mot", "mots.id_mot IS NULL"); $n+= optimiser_sansref('spip_mots_syndic', 'id_mot', $res); // // Forums // sql_delete("spip_forum", "statut='redac' AND maj < $mydate"); # les liens mots-forum sur des forums effaces $res = sql_select("mots_forum.id_forum AS id", "spip_mots_forum AS mots_forum LEFT JOIN spip_forum AS forum ON mots_forum.id_forum=forum.id_forum", "forum.id_forum IS NULL"); $n+= optimiser_sansref('spip_mots_forum', 'id_forum', $res); $n = pipeline('optimiser_base_disparus', array( 'args'=>array( 'attente' => $attente, 'date' => $mydate), 'data'=>$n )); // // CNIL -- Informatique et libertes // // masquer le numero IP des vieux forums // ## date de reference = 4 mois ## definir a 0 pour desactiver define('_CNIL_PERIODE', 3600*24*31*4); if (_CNIL_PERIODE) { $critere_cnil = 'date_heure<"'.date('Y-m-d', time()-_CNIL_PERIODE).'"' . ' AND statut != "spam"' . ' AND (ip LIKE "%.%" OR ip LIKE "%:%")'; # ipv4 ou ipv6 $c = sql_countsel('spip_forum', $critere_cnil); if ($c>0) { spip_log("CNIL: masquer IP de $c forums anciens"); sql_update('spip_forum', array('ip' => 'MD5(ip)'), $critere_cnil); } } if (!$n) spip_log("Optimisation des tables: aucun lien mort"); }
// If vPod Status is 2 (Pending) & Reservation is Active if($sql_lab_vpd_grp_status=='2' && $sql_trx_rsv_grp!='0') { // Update Pod Status to 3 (Provisioned) $sql_update_values_grp = array( 'lab_vpd_grp_status'=>'3' ); $sql_update_exec_grp = sql_update('lab_vpd_grp',$sql_update_values_grp,$lab_vpd_grp); } // if($sql_lab_vpd_grp_status=='2' && $sql_trx_rsv_grp!='0') //// } // if($sql_lab_vpd_grp!='0') // Update Job Group Status to Complete $sql_update_table = 'lab_job_grp'; $sql_update_values = array( 'lab_job_grp_date_complete' => date('Y-m-d H:i:s'), "lab_job_grp_status" => '4' ); $sql_update_exec = sql_update($sql_update_table,$sql_update_values,$lab_job_grp); sdk_log('info','JOB GROUP COMPLETED','[User '.$sdk_act_usr.'] Job Group #'.$lab_job_grp.' has completed. Status set to Closed (4).','lab_job_grp',$lab_job_grp); ?>
$sql_update_index = $sql_lab_job_uid; $sql_update_values = array( $sql_update_table.'_status' => '2' ); $sql_update_exec = sql_update($sql_update_table,$sql_update_values,$sql_update_index); // sdk_log('info','SQL UPDATE','[labstack-agent:/app/controllers/scrub.php] Job Instance #'.$sql_update_index.' is ready to execute. Status updated to Pending (2).',$sql_update_table,$sql_update_index); } // foreach($sql_list_trx_rsv_uid as $reservation_instance) /** * * Update Job Group Status to Pending (Ready to Execute) * */ $sql_update_table = 'lab_job_grp'; $sql_update_index = $sql_lab_job_grp; $sql_update_values = array( $sql_update_table.'_status' => '2' ); $sql_update_exec = sql_update($sql_update_table,$sql_update_values,$sql_update_index); // sdk_log('info','SQL UPDATE','[labstack-agent:/app/controllers/scrub.php] Job Group #'.$sql_update_index.' has all actions created and is ready to execute. Status updated to Pending (2).',$sql_update_table,$sql_update_index); } // if($sql_trx_rsv_grp_date_end<date('Y-m-d H:i:s')) } // foreach($sql_list_trx_rsv_grp as $reservation) ?>
$field[] = "username"; $value[] = $username; $value[0] = $id; $sql = sql_update($table, $field, $value); $sql = str_replace("''", "NULL", $sql); $query = mysql_query($sql); if ($query == 1) { $msg = "Ubah pengguna berhasil. Id = " . $username . "."; $ocheck = xuserlevel("id, level", "username = '******'"); $ncheck = mysql_num_rows($ocheck); if ($ncheck > 0) { $check = mysql_fetch_array($ocheck); if ($level != $check['level']) { $field = array("id", "level"); $value = array($check['id'], $level); $sql = sql_update("xuserlevel", $field, $value); $query3 = mysql_query($sql); if ($query3 != 1) { $msg .= " Ubah user level gagal. Error = " . mysql_error() . "."; } } } else { if ($level != "") { $field = get_field("xuserlevel"); $value = array("", $username, $level); $sql = sql_insert("xuserlevel", $field, $value); $query3 = mysql_query($sql); if ($query3 != 1) { $msg .= " Ubah user level gagal. Error = " . mysql_error() . "."; } }
/** * Optimiser la base de donnee en supprimant les forums orphelins * * @param int $n * @return int */ function forum_optimiser_base_disparus($flux) { $n =& $flux['data']; $mydate = $flux['args']['date']; # les forums lies a une id_objet inexistant $r = sql_select("DISTINCT objet", 'spip_forum'); while ($t = sql_fetch($r)) { if ($type = $t['objet']) { $spip_table_objet = table_objet_sql($type); $id_table_objet = id_table_objet($type); # les forums lies a un objet inexistant $res = sql_select("forum.id_forum AS id", "spip_forum AS forum\n\t\t\t\t\t\t\t\tLEFT JOIN {$spip_table_objet} AS O\n\t\t\t\t\t\t\t\t\tON O.{$id_table_objet}=forum.id_objet", "forum.objet=" . sql_quote($type) . " AND O.{$id_table_objet} IS NULL AND forum.id_objet>0"); $n += optimiser_sansref('spip_forum', 'id_forum', $res); } } // // Forums // sql_delete("spip_forum", "statut='redac' AND maj < {$mydate}"); // nettoyer les documents des forums en spam&poubelle pour eviter de sortir des quota disques // bizarrement on ne nettoie jamais les messages eux meme ? include_spip('action/editer_liens'); if (objet_associable('document')) { $res = sql_select('L.id_document,F.id_forum', "spip_documents_liens AS L JOIN spip_forum AS F ON (F.id_forum=L.id_objet AND L.objet='forum')", "F.statut IN ('off','spam')"); while ($row = sql_fetch($res)) { include_spip('inc/autoriser'); // si un seul lien (ce forum donc), on supprime le document // si un document est attache a plus d'un forum, c'est un cas bizarre ou gere a la main // on ne touche a rien ! if (count(objet_trouver_liens(array('document' => $row['id_document']), '*')) == 1) { autoriser_exception('supprimer', 'document', $row['id_document']); if ($supprimer_document = charger_fonction('supprimer_document', 'action', true)) { $supprimer_document($row['id_document']); } } } } // // CNIL -- Informatique et libertes // // masquer le numero IP des vieux forums // ## date de reference = 4 mois ## definir a 0 pour desactiver if (!defined('_CNIL_PERIODE')) { define('_CNIL_PERIODE', 3600 * 24 * 31 * 4); } if (_CNIL_PERIODE) { $critere_cnil = 'date_heure<"' . date('Y-m-d', time() - _CNIL_PERIODE) . '"' . ' AND statut != "spam"' . ' AND (ip LIKE "%.%" OR ip LIKE "%:%")'; # ipv4 ou ipv6 $c = sql_countsel('spip_forum', $critere_cnil); if ($c > 0) { spip_log("CNIL: masquer IP de {$c} forums anciens"); sql_update('spip_forum', array('ip' => 'MD5(ip)'), $critere_cnil); } } return $flux; }
function agenda_verifier_base(){ $version_base = $GLOBALS['agenda_base_version']; $current_version = 0.0; if ( (!isset($GLOBALS['meta']['agenda_base_version']) ) || (($current_version = $GLOBALS['meta']['agenda_base_version'])!=$version_base)){ include_spip('base/agenda_evenements'); if ($current_version==0.0){ include_spip('base/create'); include_spip('base/abstract_sql'); creer_base(); maj_tables('spip_rubriques'); ecrire_meta('agenda_base_version',$current_version=$version_base,'non'); } if (version_compare($current_version,"0.11","<")){ sql_alter("TABLE spip_evenements ADD `horaire` ENUM('oui','non') DEFAULT 'oui' NOT NULL AFTER `lieu`"); ecrire_meta('agenda_base_version',$current_version=0.11,'non'); } if (version_compare($current_version,"0.12","<")){ sql_alter("TABLE spip_evenements ADD `id_article` bigint(21) DEFAULT '0' NOT NULL AFTER `id_evenement`"); sql_alter("TABLE spip_evenements ADD INDEX ( `id_article` )"); $res = sql_select("*", "spip_evenements_articles"); while ($row = sql_fetch($res)){ $id_article = $row['id_article']; $id_evenement = $row['id_evenement']; sql_update("spip_evenements", "id_article=$id_article", "id_evenement=$id_evenement"); } sql_drop_table("spip_evenements_articles"); ecrire_meta('agenda_base_version',$current_version=0.12,'non'); } if (version_compare($current_version,"0.13","<")){ include_spip('base/create'); include_spip('base/abstract_sql'); creer_base(); ecrire_meta('agenda_base_version',$current_version=0.13,'non'); } if (version_compare($current_version,"0.18","<")){ include_spip('base/create'); include_spip('base/abstract_sql'); creer_base(); sql_update('spip_groupes_mots',array('tables_liees'=>"concat(tables_liees,'evenements,')"),"evenements='oui'"); sql_alter("TABLE spip_groupes_mots DROP evenements"); ecrire_meta('agenda_base_version',$current_version=0.18,'non'); } if (version_compare($current_version,"0.20","<")){ include_spip('base/abstract_sql'); sql_alter("TABLE spip_rubriques ADD agenda tinyint(1) DEFAULT 0 NOT NULL"); ecrire_meta('agenda_base_version',$current_version=0.20,'non'); } if (version_compare($current_version,"0.21","<")){ include_spip('base/abstract_sql'); sql_alter("TABLE spip_evenements ADD adresse text NOT NULL"); sql_alter("TABLE spip_evenements ADD inscription text NOT NULL"); sql_alter("TABLE spip_evenements ADD places text NOT NULL"); ecrire_meta('agenda_base_version',$current_version=0.21,'non'); } if (version_compare($current_version,"0.22","<")){ include_spip('base/abstract_sql'); include_spip('base/create'); include_spip('base/auxiliaires'); maj_tables('spip_evenements_participants'); ecrire_meta('agenda_base_version',$current_version=0.22,'non'); } if (version_compare($current_version,"0.23","<")){ include_spip('base/abstract_sql'); sql_alter("TABLE spip_evenements CHANGE titre titre text NOT NULL DEFAULT ''"); sql_alter("TABLE spip_evenements CHANGE descriptif descriptif text NOT NULL DEFAULT ''"); sql_alter("TABLE spip_evenements CHANGE lieu lieu text NOT NULL DEFAULT ''"); sql_alter("TABLE spip_evenements CHANGE adresse adresse text NOT NULL DEFAULT ''"); ecrire_meta('agenda_base_version',$current_version=0.23,'non'); } } }
//echo $i. "<br>"; $query = "SELECT max(id) id from revizia WHERE id_obj IN (\r\n SELECT id FROM `objednavka` where vymaz=0 AND\r\n status<>" . def_value("default_obj_status_rozpracovana", "hodnota") . " AND \r\n status<>" . def_value("default_obj_status_cp", "hodnota") . " AND\r\n (datum between \"{$rok}-{$ij}-01 00:00:00\" AND \"{$rok}-{$ij}-31 23:59:59\")\r\n AND id_zakaznik={$uzivatel_item[id]}\r\n )\r\n GROUP BY id_obj\r\n "; //die(); $last_revision = sql_query($query); //var_dump($last_revision); //echo $i ."-".$uzivatel_item[id]. " - ". $last_revision[id] ."<br>"; // ====== statistiky pre stvoraky ============= //============================================= foreach ($last_revision as $rev_id) { $query = "SELECT all_sum dlzka from cp \r\n WHERE id_revizia=\"{$rev_id["id"]}\" ORDER BY id DESC LIMIT 1"; $all_sum = sql_query($query); //var_dump($all_sum); $cp_sum_all = $cp_sum_all + $all_sum[0][dlzka]; //var_dump($stvorak_sum); //$hrana_sum[$ij][$hrana["id"]] = $hrana_sum[$ij][$hrana["id"]] / 1000; $cp_sum_all = round($cp_sum_all, 2); $stats_exists = sql_query("SELECT id from stats_uzivatel_cp\r\n WHERE rok={$rok} AND mesiac={$ij} AND id_uzivatel=\"{$uzivatel_item[id]}\" LIMIT 1"); //var_dump($cp_sum_all); if (count($stats_exists) == 1) { //echo "existuje<br>"; sql_update("UPDATE stats_uzivatel_cp SET\r\n hodnota={$cp_sum_all} WHERE rok=\"{$rok}\" AND mesiac=\"{$ij}\" AND id_uzivatel=\"{$uzivatel_item["id"]}\" "); } else { //echo "neexistuje<br>"; sql_insert("INSERT into stats_uzivatel_cp (rok, mesiac, id_uzivatel, hodnota)\r\n VALUES ({$rok}, {$ij}, {$uzivatel_item[id]}, {$cp_sum_all})"); } } } } mysql_query("COMMIT"); //var_dump($uzivatel); header("location: index.php?vyber=stats_users");
$field[25] = $value[25]; $field[26] = $value[26]; $field[27] = $value[27]; $field[31] = $value[31]; $field[32] = $value[32]; $field[33] = $value[33]; $field[37] = $value[37]; $field[38] = $value[38]; $field[39] = $value[39]; $field[43] = $value[43]; $field[44] = $value[44]; $field[45] = $value[45]; $field[49] = $value[49]; $field[50] = $value[50]; $field[51] = $value[51]; $sql = sql_update($table, $field, $value); $rs = mysql_query($sql); if ($rs) { update_log($sql, $table, 1); $_SESSION['errmsg'] = "Ubah data berhasil!"; } else { update_log($sql, $table, 0); $_SESSION['errmsg'] = "Ubah data gagal!"; } ?> <meta http-equiv="refresh" content="0;URL=index.php?p=<?php echo $p_next; ?> &pagess=<?php echo $pagess;
/** * Recalcule les secteurs et les profondeurs des rubriques (et articles) * * Cherche les rubriques ayant des id_secteur ou profondeurs ne correspondant pas * avec leur parent, et les met à jour. De même avec les articles et leur id_secteur * On procede en iterant la profondeur de 1 en 1 pour ne pas risquer une boucle infinie sur reference circulaire * * @return void **/ function propager_les_secteurs() { // Profondeur 0 // Toutes les rubriques racines sont de profondeur 0 // et fixer les id_secteur des rubriques racines sql_update('spip_rubriques', array('id_secteur' => 'id_rubrique', 'profondeur' => 0), "id_parent=0"); // Toute rubrique non racine est de profondeur >0 sql_updateq('spip_rubriques', array('profondeur' => 1), "id_parent<>0 AND profondeur=0"); // securite : pas plus d'iteration que de rubriques dans la base $maxiter = sql_countsel("spip_rubriques"); // reparer les rubriques qui n'ont pas l'id_secteur de leur parent // on fait profondeur par profondeur $prof = 0; do { $continuer = false; // Par recursivite : si toutes les rubriques de profondeur $prof sont bonnes // on fixe le profondeur $prof+1 // Toutes les rubriques dont le parent est de profondeur $prof ont une profondeur $prof+1 // on teste A.profondeur > $prof+1 car : // - toutes les rubriques de profondeur 0 à $prof sont bonnes // - si A.profondeur = $prof+1 c'est bon // - cela nous protege de la boucle infinie en cas de reference circulaire dans les rubriques $maxiter2 = $maxiter; while ($maxiter2-- and $rows = sql_allfetsel("A.id_rubrique AS id, R.id_secteur AS id_secteur, R.profondeur+1 as profondeur", "spip_rubriques AS A JOIN spip_rubriques AS R ON A.id_parent = R.id_rubrique", "R.profondeur=" . intval($prof) . " AND (A.id_secteur <> R.id_secteur OR A.profondeur > R.profondeur+1)", "", "R.id_secteur", "0,100")) { $id_secteur = null; $ids = array(); while ($row = array_shift($rows)) { if ($row['id_secteur'] !== $id_secteur) { if (count($ids)) { sql_updateq("spip_rubriques", array("id_secteur" => $id_secteur, 'profondeur' => $prof + 1), sql_in('id_rubrique', $ids)); } $id_secteur = $row['id_secteur']; $ids = array(); } $ids[] = $row['id']; } if (count($ids)) { sql_updateq("spip_rubriques", array("id_secteur" => $id_secteur, 'profondeur' => $prof + 1), sql_in('id_rubrique', $ids)); } } // Toutes les rubriques de profondeur $prof+1 qui n'ont pas un parent de profondeur $prof sont decalees $maxiter2 = $maxiter; while ($maxiter2-- and $rows = sql_allfetsel("id_rubrique as id", "spip_rubriques", "profondeur=" . intval($prof + 1) . " AND id_parent NOT IN (" . sql_get_select("zzz.id_rubrique", "spip_rubriques AS zzz", "zzz.profondeur=" . intval($prof)) . ")", '', '', '0,100')) { $rows = array_map('reset', $rows); sql_updateq("spip_rubriques", array('profondeur' => $prof + 2), sql_in("id_rubrique", $rows)); } // ici on a fini de valider $prof+1, toutes les rubriques de prondeur 0 a $prof+1 sont OK // si pas de rubrique a profondeur $prof+1 pas la peine de continuer // si il reste des rubriques non vues, c'est une branche morte ou reference circulaire (base foireuse) // on arrete les frais if (sql_countsel("spip_rubriques", "profondeur=" . intval($prof + 1))) { $prof++; $continuer = true; } } while ($continuer and $maxiter--); // loger si la table des rubriques semble foireuse // et mettre un id_secteur=0 sur ces rubriques pour eviter toute selection par les boucles if (sql_countsel("spip_rubriques", "profondeur>" . intval($prof + 1))) { spip_log("Les rubriques de profondeur>" . ($prof + 1) . " semblent suspectes (branches morte ou reference circulaire dans les parents)", _LOG_CRITIQUE); sql_update("spip_rubriques", array('id_secteur' => 0), "profondeur>" . intval($prof + 1)); } // reparer les articles $r = sql_select("A.id_article AS id, R.id_secteur AS secteur", "spip_articles AS A, spip_rubriques AS R", "A.id_rubrique = R.id_rubrique AND A.id_secteur <> R.id_secteur"); while ($row = sql_fetch($r)) { sql_update("spip_articles", array("id_secteur" => $row['secteur']), "id_article=" . $row['id']); } // avertir les plugins qui peuvent faire leur mises a jour egalement pipeline('trig_propager_les_secteurs', ''); }