Skip to content
Extraits de code Groupes Projets
Valider d56b8609 rédigé par esj's avatar esj
Parcourir les fichiers

Ajout de Primary Key aux tables auteurs_rubriques, auteurs_articles et...

Ajout de Primary Key aux tables auteurs_rubriques, auteurs_articles et auteurs_messages comme pour le [5949]: ca doit accélerer les requetes dessus et ça permet surtout au compilateur de produire des jointures automatiques sans répétitions.

Au passage, nettoyage de afficher_formulaire_statut_auteur qui contenait du 
code mort.
parent fef4d912
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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");
......
......@@ -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
......
......@@ -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;
}
......
......@@ -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 "&nbsp;&nbsp;&nbsp;&nbsp;<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 "&nbsp;&nbsp;&nbsp;&nbsp;<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)");
......
......@@ -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';
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter