From d56b86098ddb22b2c2d2ebb12ecdac46b0d527f5 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Mon, 13 Mar 2006 16:10:27 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20Primary=20Key=20aux=20tables=20aut?= =?UTF-8?q?eurs=5Frubriques,=20auteurs=5Farticles=20et=20auteurs=5Fmessage?= =?UTF-8?q?s=20comme=20pour=20le=20[5949]:=20ca=20doit=20acc=C3=A9lerer=20?= =?UTF-8?q?les=20requetes=20dessus=20et=20=C3=A7a=20permet=20surtout=20au?= =?UTF-8?q?=20compilateur=20de=20produire=20des=20jointures=20automatiques?= =?UTF-8?q?=20sans=20r=C3=A9p=C3=A9titions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Au passage, nettoyage de afficher_formulaire_statut_auteur qui contenait du code mort. --- ecrire/base/auxiliaires.php | 3 + ecrire/base/optimiser.php | 2 +- ecrire/base/upgrade.php | 9 ++- ecrire/inc/auteur_voir.php | 123 ++++++++++++++++-------------------- ecrire/inc_version.php | 2 +- 5 files changed, 67 insertions(+), 72 deletions(-) diff --git a/ecrire/base/auxiliaires.php b/ecrire/base/auxiliaires.php index f01708c805..ca12b91859 100644 --- a/ecrire/base/auxiliaires.php +++ b/ecrire/base/auxiliaires.php @@ -71,6 +71,7 @@ $spip_auteurs_articles = array( "id_article" => "BIGINT (21) DEFAULT '0' NOT NULL"); $spip_auteurs_articles_key = array( + "PRIMARY KEY" => "id_auteur, id_article", "KEY id_auteur" => "id_auteur", "KEY id_article" => "id_article"); @@ -79,6 +80,7 @@ $spip_auteurs_rubriques = array( "id_rubrique" => "BIGINT (21) DEFAULT '0' NOT NULL"); $spip_auteurs_rubriques_key = array( + "PRIMARY KEY" => "id_auteur, id_rubrique", "KEY id_auteur" => "id_auteur", "KEY id_rubrique" => "id_rubrique"); @@ -88,6 +90,7 @@ $spip_auteurs_messages = array( "vu" => "CHAR (3) NOT NULL"); $spip_auteurs_messages_key = array( + "PRIMARY KEY" => "id_auteur, id_message", "KEY id_auteur" => "id_auteur", "KEY id_message" => "id_message"); diff --git a/ecrire/base/optimiser.php b/ecrire/base/optimiser.php index baa11eabf8..f68a4b0897 100644 --- a/ecrire/base/optimiser.php +++ b/ecrire/base/optimiser.php @@ -293,7 +293,7 @@ function optimiser_base() { WHERE id_auteur=".$row['id_auteur'] ." AND id_message=".$row['id_message']); - # les liens d'articles sur des auteurs effaces + # les liens de rubriques sur des auteurs effaces $query = "SELECT auteurs_rubriques.id_auteur,auteurs_rubriques.id_rubrique FROM spip_auteurs_rubriques AS auteurs_rubriques LEFT JOIN spip_rubriques AS rubriques diff --git a/ecrire/base/upgrade.php b/ecrire/base/upgrade.php index 0438fc028d..7e8b5a23b5 100644 --- a/ecrire/base/upgrade.php +++ b/ecrire/base/upgrade.php @@ -11,7 +11,6 @@ \***************************************************************************/ -// if (!defined("_ECRIRE_INC_VERSION")) return; function maj_version ($version, $test = true) { @@ -1173,6 +1172,14 @@ function maj_base() { spip_query("ALTER IGNORE TABLE spip_mots_forum ADD PRIMARY KEY (id_forum, id_mot)"); maj_version(1.909); } + + if ($version_installee < 1.910) { + spip_query("ALTER IGNORE TABLE spip_auteurs_articles ADD PRIMARY KEY (id_auteur, id_article)"); + spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques ADD PRIMARY KEY (id_auteur, id_rubrique)"); + spip_query("ALTER IGNORE TABLE spip_auteurs_messages ADD PRIMARY KEY (id_auteur, id_message)"); + maj_version(1.910); + } + return true; } diff --git a/ecrire/inc/auteur_voir.php b/ecrire/inc/auteur_voir.php index d240e17b8d..38c2983c26 100644 --- a/ecrire/inc/auteur_voir.php +++ b/ecrire/inc/auteur_voir.php @@ -46,12 +46,7 @@ function afficher_formulaire_statut_auteur ($id_auteur, $statut, $post='') { global $spip_lang_right; - // S'agit-il d'un admin restreint ? - if ($statut == '0minirezo') { - $query_admin = "SELECT lien.id_rubrique, titre FROM spip_auteurs_rubriques AS lien, spip_rubriques AS rubriques WHERE lien.id_auteur=$id_auteur AND lien.id_rubrique=rubriques.id_rubrique GROUP BY lien.id_rubrique"; - $result_admin = spip_query($query_admin); - $admin_restreint = (spip_num_rows($result_admin) > 0); - } + if ($connect_statut != "0minirezo") return; $droit = ( ($connect_toutes_rubriques OR $statut != "0minirezo") && ($connect_id_auteur != $id_auteur)); @@ -66,83 +61,73 @@ function afficher_formulaire_statut_auteur ($id_auteur, $statut, $post='') { // les admins voient et peuvent modifier les droits // les admins restreints les voient mais // ne peuvent les utiliser que pour mettre un auteur a la poubelle - if ($connect_statut == "0minirezo") { - debut_cadre_relief(); - - if ($droit) { - /* Neutralisation momentanee des couches. A revoir. - $couches = $admin_restreint ? - bouton_block_visible("statut$id_auteur") : - bouton_block_invisible("statut$id_auteur"); - echo $couches; - */ + + debut_cadre_relief(); + + if ($droit) { echo "<b>"._T('info_statut_auteur')." </b> "; echo choix_statut_auteur($statut); - } + } - // si pas admin au chargement, rien a montrer. - echo "<div id='changer_statut_auteur'", + // si pas admin au chargement, rien a montrer. + echo "<div id='changer_statut_auteur'", (($statut == '0minirezo') ? '' : " style='visibility: hidden'"), '>'; - - echo "\n<p /><div style='arial2'>"; - // si pas admin restreint au chargement, rien a calculer - if (!$admin_restreint) { - if ($statut == '0minirezo') { - echo _T('info_admin_gere_toutes_rubriques'); - } - } else { - echo _T('info_admin_gere_rubriques')."\n"; - echo "<ul style='list-style-image: url(" . _DIR_IMG_PACK . "rubrique-12.gif)'>"; - while ($row_admin = spip_fetch_array($result_admin)) { - $id_rubrique = $row_admin["id_rubrique"]; - echo "<li><a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>", typo($row_admin["titre"]), "</a>"; - - if ($connect_toutes_rubriques - AND $connect_id_auteur != $id_auteur) { - echo " <font size='1'>[<a href='", generer_url_ecrire($url_self, "id_auteur=$id_auteur&supp_rub=$id_rubrique"), "'>", - _T('lien_supprimer_rubrique'), - "</a>]</font>"; - } - echo '</li>'; - $toutes_rubriques .= "$id_rubrique,"; - } - $toutes_rubriques = ",$toutes_rubriques"; - - echo "</ul>"; - } - echo "</div>\n"; + auteur_voir_rubriques($id_auteur, $url_self); // Ajouter une rubrique a un administrateur restreint - if ($connect_toutes_rubriques AND $connect_id_auteur != $id_auteur) { - echo debut_block_visible("statut$id_auteur"); - echo "\n<div id='ajax_rubrique' class='arial1'><br />\n"; - if (spip_num_rows($result_admin) == 0) - echo "<b>"._T('info_restreindre_rubrique')."</b><br />"; - else - echo "<b>"._T('info_ajouter_rubrique')."</b><br />"; - echo "\n<input name='id_auteur' value='$id_auteur' TYPE='hidden' />"; - - // selecteur de rubrique - include_spip('inc/rubriques'); - echo selecteur_rubrique(0, 'auteur', false); - - echo "</div>\n"; - echo fin_block(); - } + if ($connect_toutes_rubriques AND $connect_id_auteur != $id_auteur) { + echo debut_block_visible("statut$id_auteur"); + echo "\n<div id='ajax_rubrique' class='arial1'><br />\n"; + if (spip_num_rows($result_admin) == 0) + echo "<b>"._T('info_restreindre_rubrique')."</b><br />"; + else + echo "<b>"._T('info_ajouter_rubrique')."</b><br />"; + echo "\n<input name='id_auteur' value='$id_auteur' TYPE='hidden' />"; + include_spip('inc/rubriques'); + echo selecteur_rubrique(0, 'auteur', false); + echo "</div>\n"; + echo fin_block(); + } - echo '</div>'; // fin de la balise a visibilite conditionnelle + echo '</div>'; // fin de la balise a visibilite conditionnelle - if ($post && $droit) { - echo "<div align='", + if ($post && $droit) { + echo "<div align='", $spip_lang_right, "'><input type='submit' class='fondo' value=\"", _T('bouton_valider'), "\" /></div>", "</form>\n"; - } + } + + fin_cadre_relief(); +} - fin_cadre_relief(); +function auteur_voir_rubriques($id_auteur, $url_self) +{ + global $connect_toutes_rubriques, $connect_id_auteur; + + $result_admin = spip_query("SELECT rubriques.id_rubrique, titre FROM spip_auteurs_rubriques AS lien, spip_rubriques AS rubriques WHERE lien.id_auteur=$id_auteur AND lien.id_rubrique=rubriques.id_rubrique"); + + if (!spip_num_rows($result_admin)) { + echo _T('info_admin_gere_toutes_rubriques'); + } else { + $modif = ($connect_toutes_rubriques AND $connect_id_auteur != $id_auteur); + echo _T('info_admin_gere_rubriques'); + echo "\n<ul style='list-style-image: url(" . _DIR_IMG_PACK . "rubrique-12.gif)'>"; + while ($row_admin = spip_fetch_array($result_admin)) { + $id_rubrique = $row_admin["id_rubrique"]; + echo "<li><a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>", typo($row_admin["titre"]), "</a>"; + + if ($modif) { + echo " <font size='1'>[<a href='", generer_url_ecrire($url_self, "id_auteur=$id_auteur&supp_rub=$id_rubrique"), "'>", + _T('lien_supprimer_rubrique'), + "</a>]</font>"; + } + echo '</li>'; + } + echo "</ul>"; } } @@ -173,7 +158,7 @@ function modifier_statut_auteur (&$auteur, $statut, $add_rub='', $supp_rub='') { // modif auteur restreint, seulement pour les admins if ($connect_toutes_rubriques) { if ($add_rub=intval($add_rub)) - spip_query("INSERT INTO spip_auteurs_rubriques + spip_query("INSERT IGNORE INTO spip_auteurs_rubriques (id_auteur,id_rubrique) VALUES(".$auteur['id_auteur'].", $add_rub)"); diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index b43bacf9ce..9405b02f96 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -200,7 +200,7 @@ $extension_squelette = 'html'; // (utilise pour les modifs de la base de donnees) // version de la base -$spip_version = 1.909; +$spip_version = 1.910; // version de spip $spip_version_affichee = '1.9 beta 1'; -- GitLab