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

bug sur le suivi des revisions (James) plus nettoyage en cours des globales

parent 9e25e547
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -19,37 +19,23 @@ if ($var_f) ...@@ -19,37 +19,23 @@ if ($var_f)
else else
include_ecrire("inc_articles.php"); include_ecrire("inc_articles.php");
$articles_redac = $GLOBALS['meta']["articles_redac"];
$articles_mots = $GLOBALS['meta']["articles_mots"];
$articles_versions = ($GLOBALS['meta']["articles_versions"]=='oui') && $flag_revisions;
if ($id_article==0) { if ($id_article==0) {
if ($new!='oui') redirige_par_entete("./index.php3"); if ($new!='oui') redirige_par_entete("./index.php3");
// Avec l'Ajax parfois id_rubrique vaut 0... ne pas l'accepter // Avec l'Ajax parfois id_rubrique vaut 0... ne pas l'accepter
if (!$id_rubrique = intval($id_parent)) { if (!$id_rubrique = intval($id_parent)) {
$s = spip_query("SELECT id_rubrique FROM spip_rubriques list($id_rubrique) = spip_fetch_array(spip_query("SELECT id_rubrique FROM spip_rubriques WHERE id_parent=0 ORDER by 0+titre,titre LIMIT 1"));
WHERE id_parent=0 ORDER by 0+titre,titre LIMIT 1");
list($id_rubrique) = spip_fetch_array($s);
} }
if ($titre=='') $titre = _T('info_sans_titre'); if ($titre=='') $titre = _T('info_sans_titre');
$langue_new = ''; $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
$result_lang_rub = spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique");
if ($row = spip_fetch_array($result_lang_rub))
$langue_new = $row["lang"];
if (!$langue_new) $langue_new = $GLOBALS['meta']['langue_site'];
$langue_choisie_new = 'non';
$forums_publics = substr($GLOBALS['meta']['forums_publics'],0,3);
$id_article = spip_abstract_insert("spip_articles", $id_article = spip_abstract_insert("spip_articles",
"(id_rubrique, statut, date, accepter_forum, lang, langue_choisie)", "(id_rubrique, statut, date, accepter_forum, lang, langue_choisie)",
"($id_rubrique, 'prepa', NOW(), '$forums_publics', '$langue_new', '$langue_choisie_new')"); "($id_rubrique, 'prepa', NOW(), '" .
substr($GLOBALS['meta']['forums_publics'],0,3)
spip_query("DELETE FROM spip_auteurs_articles WHERE id_article = $id_article"); . "', '"
spip_query("INSERT INTO spip_auteurs_articles (id_auteur, id_article) VALUES ($connect_id_auteur, $id_article)"); . ($row["lang"] ? $row["lang"] : $GLOBALS['meta']['langue_site'])
. "', 'non')");
} }
$clean_link = new Link("articles.php3?id_article=$id_article"); $clean_link = new Link("articles.php3?id_article=$id_article");
...@@ -59,25 +45,25 @@ $clean_link = new Link("articles.php3?id_article=$id_article"); ...@@ -59,25 +45,25 @@ $clean_link = new Link("articles.php3?id_article=$id_article");
// Determiner les droits d'edition de l'article // Determiner les droits d'edition de l'article
// //
$query = "SELECT statut, titre, id_rubrique FROM spip_articles WHERE id_article=$id_article"; if ($row = spip_fetch_array(spip_query("SELECT statut, titre, id_rubrique FROM spip_articles WHERE id_article=$id_article"))) {
$result = spip_query($query);
if ($row = spip_fetch_array($result)) {
$statut_article = $row['statut']; $statut_article = $row['statut'];
$titre_article = $row['titre']; $titre_article = $row['titre'];
$rubrique_article = $row['id_rubrique']; $id_rubrique = $row['id_rubrique'];
$statut_rubrique = acces_rubrique($id_rubrique);
} }
else { else {
$statut_article = ''; $statut_article = '';
$statut_rubrique = false;
$id_rubrique = '0';
} }
$query = "SELECT * FROM spip_auteurs_articles WHERE id_article=$id_article AND id_auteur=$connect_id_auteur"; $flag_auteur = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_articles WHERE id_article=$id_article AND id_auteur=$connect_id_auteur LIMIT 1"));
$result_auteur = spip_query($query);
$flag_auteur = (spip_num_rows($result_auteur) > 0);
$flag_editable = (acces_rubrique($rubrique_article)
OR ($flag_auteur AND ($statut_article == 'prepa' OR $statut_article == 'prop' OR $statut_article == 'poubelle')));
$flag_editable = ($statut_rubrique
OR ($flag_auteur
AND ($statut_article == 'prepa'
OR $statut_article == 'prop'
OR $statut_article == 'poubelle')));
// //
// Appliquer les modifications // Appliquer les modifications
...@@ -87,7 +73,7 @@ $ok_nouveau_statut = false; ...@@ -87,7 +73,7 @@ $ok_nouveau_statut = false;
if ($statut_nouv) { if ($statut_nouv) {
if (acces_rubrique($rubrique_article)) $ok_nouveau_statut = true; if ($statut_rubrique) $ok_nouveau_statut = true;
else if ($flag_auteur) { else if ($flag_auteur) {
if ($statut_nouv == 'prop' AND $statut_article == 'prepa') if ($statut_nouv == 'prop' AND $statut_article == 'prepa')
$ok_nouveau_statut = true; $ok_nouveau_statut = true;
...@@ -95,15 +81,14 @@ if ($statut_nouv) { ...@@ -95,15 +81,14 @@ if ($statut_nouv) {
$ok_nouveau_statut = true; $ok_nouveau_statut = true;
} }
if ($ok_nouveau_statut) { if ($ok_nouveau_statut) {
$query = "UPDATE spip_articles SET statut='$statut_nouv' WHERE id_article=$id_article"; spip_query("UPDATE spip_articles SET statut='$statut_nouv' WHERE id_article=$id_article");
$result = spip_query($query);
if ($statut_nouv == 'publie' AND $statut_nouv != $statut_article) if ($statut_nouv == 'publie' AND $statut_nouv != $statut_article)
spip_query("UPDATE spip_articles SET date=NOW() WHERE id_article=$id_article"); spip_query("UPDATE spip_articles SET date=NOW() WHERE id_article=$id_article");
$statut_ancien = $statut_article; // message pour les traitements de fond (indexation ; envoi mail) $statut_ancien = $statut_article; // message pour les traitements de fond (indexation ; envoi mail)
$statut_article = $statut_nouv; $statut_article = $statut_nouv;
$flag_editable = (acces_rubrique($rubrique_article) $flag_editable = ($statut_rubrique
OR ($flag_auteur AND ($statut_article == 'prepa' OR $statut_article == 'prop'))); OR ($flag_auteur AND ($statut_article == 'prepa' OR $statut_article == 'prop')));
} }
} }
...@@ -137,17 +122,7 @@ if ($jour_redac && $flag_editable) { ...@@ -137,17 +122,7 @@ if ($jour_redac && $flag_editable) {
} }
// Appliquer la modification de langue if ($flag_editable) modif_langue_articles($id_article, $id_rubrique, $changer_lang);
if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $flag_editable) {
list($langue_parent) = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=" . intval($rubrique_article)));
if ($changer_lang) {
if ($changer_lang != "herit")
spip_query("UPDATE spip_articles SET lang='".addslashes($changer_lang)."', langue_choisie='oui' WHERE id_article=$id_article");
else
spip_query("UPDATE spip_articles SET lang='".addslashes($langue_parent)."', langue_choisie='non' WHERE id_article=$id_article");
}
}
inclus_non_articles($id_article); inclus_non_articles($id_article);
...@@ -160,8 +135,7 @@ if ($changer_virtuel && $flag_editable) { ...@@ -160,8 +135,7 @@ if ($changer_virtuel && $flag_editable) {
$virtuel = eregi_replace("^http://$", "", trim($virtuel)); $virtuel = eregi_replace("^http://$", "", trim($virtuel));
if ($virtuel) $chapo = addslashes(corriger_caracteres("=$virtuel")); if ($virtuel) $chapo = addslashes(corriger_caracteres("=$virtuel"));
else $chapo = ""; else $chapo = "";
$query = "UPDATE spip_articles SET chapo='$chapo' WHERE id_article=$id_article"; spip_query("UPDATE spip_articles SET chapo='$chapo' WHERE id_article=$id_article");
$result = spip_query($query);
} }
if (strval($titre)!=='' AND !$ajout_forum AND $flag_editable) { if (strval($titre)!=='' AND !$ajout_forum AND $flag_editable) {
...@@ -177,7 +151,7 @@ if (strval($titre)!=='' AND !$ajout_forum AND $flag_editable) { ...@@ -177,7 +151,7 @@ if (strval($titre)!=='' AND !$ajout_forum AND $flag_editable) {
'texte' => corriger_caracteres(trop_longs_articles($texte_plus) . $texte), 'texte' => corriger_caracteres(trop_longs_articles($texte_plus) . $texte),
'ps' => corriger_caracteres($ps)) ; 'ps' => corriger_caracteres($ps)) ;
revisions_articles ($id_article, $champs_extra, $id_secteur, $id_parent, $flag_auteur, $articles_versions, $new, $champs, $id_rubrique_old); revisions_articles ($id_article, $champs_extra, $id_secteur, $id_parent, $flag_auteur, $new, $champs, $id_rubrique_old);
$id_article_bloque = $id_article; // message pour inc_presentation $id_article_bloque = $id_article; // message pour inc_presentation
} }
...@@ -193,7 +167,7 @@ if (function_exists('affiche_articles')) ...@@ -193,7 +167,7 @@ if (function_exists('affiche_articles'))
// on pourrait supprimer les arguments issus des meta // on pourrait supprimer les arguments issus des meta
// mais l'URL admet de fait une vingtaine de parametres differents // mais l'URL admet de fait une vingtaine de parametres differents
$var_nom($id_article, $ajout_auteur, $articles_mots, $articles_redac, $articles_versions, $change_accepter_forum, $change_petition, $changer_virtuel, $cherche_auteur, $cherche_mot, $debut, $dir_lang, $email_unique, $flag_auteur, $flag_editable, $langue_article, $message, $nom_select, $nouv_auteur, $nouv_mot, $rubrique_article, $site_obli, $site_unique, $supp_auteur, $supp_mot, $texte_petition, $titre_article, $lier_trad); $var_nom($id_article, $ajout_auteur, $change_accepter_forum, $change_petition, $changer_virtuel, $cherche_auteur, $cherche_mot, $debut, $email_unique, $flag_auteur, $flag_editable, $langue_article, $message, $nom_select, $nouv_auteur, $nouv_mot, $id_rubrique, $site_obli, $site_unique, $supp_auteur, $supp_mot, $texte_petition, $titre_article, $lier_trad);
// Taches lentes // Taches lentes
......
...@@ -26,9 +26,9 @@ include_ecrire ("inc_abstract_sql.php3"); ...@@ -26,9 +26,9 @@ include_ecrire ("inc_abstract_sql.php3");
// 28 paremetres, qui dit mieux ? // 28 paremetres, qui dit mieux ?
// moi ! elle en avait 61 en premiere approche // moi ! elle en avait 61 en premiere approche
function affiche_articles_dist($id_article, $ajout_auteur, $articles_mots, $articles_redac, $articles_versions, $change_accepter_forum, $change_petition, $changer_virtuel, $cherche_auteur, $cherche_mot, $debut, $dir_lang, $email_unique, $flag_auteur, $flag_editable, $langue_article, $message, $nom_select, $nouv_auteur, $nouv_mot, $rubrique_article, $site_obli, $site_unique, $supp_auteur, $supp_mot, $texte_petition, $titre_article, $lier_trad) function affiche_articles_dist($id_article, $ajout_auteur, $change_accepter_forum, $change_petition, $changer_virtuel, $cherche_auteur, $cherche_mot, $debut, $email_unique, $flag_auteur, $flag_editable, $langue_article, $message, $nom_select, $nouv_auteur, $nouv_mot, $rubrique_article, $site_obli, $site_unique, $supp_auteur, $supp_mot, $texte_petition, $titre_article, $lier_trad)
{ {
global $options, $spip_display, $spip_lang_left, $spip_lang_right; global $options, $spip_display, $spip_lang_left, $spip_lang_right, $dir_lang;
$query = "SELECT * FROM spip_articles WHERE id_article='$id_article'"; $query = "SELECT * FROM spip_articles WHERE id_article='$id_article'";
$result = spip_query($query); $result = spip_query($query);
...@@ -95,7 +95,7 @@ fin_grand_cadre(); ...@@ -95,7 +95,7 @@ fin_grand_cadre();
debut_gauche(); debut_gauche();
boite_info_articles($id_article, $statut_article, $visites, $articles_versions, $id_version); boite_info_articles($id_article, $statut_article, $visites, $id_version);
// //
// Logos de l'article et Boites de configuration avancee // Logos de l'article et Boites de configuration avancee
...@@ -126,7 +126,7 @@ $modif = titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip ...@@ -126,7 +126,7 @@ $modif = titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip
echo "<div class='serif' align='$spip_lang_left'>"; echo "<div class='serif' align='$spip_lang_left'>";
dates_articles($id_article, $flag_editable, $statut_article, $articles_redac, $date,$annee, $mois, $jour, $heure, $minute, $date_redac, $annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac); dates_articles($id_article, $flag_editable, $statut_article, $date,$annee, $mois, $jour, $heure, $minute, $date_redac, $annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac);
// //
// Liste des auteurs de l'article // Liste des auteurs de l'article
...@@ -164,7 +164,7 @@ fin_cadre_enfonce(false); ...@@ -164,7 +164,7 @@ fin_cadre_enfonce(false);
// Liste des mots-cles de l'article // Liste des mots-cles de l'article
// //
if ($options == 'avancees' AND $articles_mots != 'non') { if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') {
formulaire_mots('articles', $id_article, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable); formulaire_mots('articles', $id_article, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable);
} }
...@@ -215,7 +215,7 @@ fin_page(); ...@@ -215,7 +215,7 @@ fin_page();
} }
function boite_info_articles($id_article, $statut_article, $visites, $articles_versions, $id_version) function boite_info_articles($id_article, $statut_article, $visites, $id_version)
{ {
global $connect_statut, $options; global $connect_statut, $options;
...@@ -235,7 +235,8 @@ function boite_info_articles($id_article, $statut_article, $visites, $articles_v ...@@ -235,7 +235,8 @@ function boite_info_articles($id_article, $statut_article, $visites, $articles_v
icone_horizontale(_T('icone_evolution_visites', array('visites' => $visites)), "statistiques_visites.php3?id_article=$id_article", "statistiques-24.gif","rien.gif"); icone_horizontale(_T('icone_evolution_visites', array('visites' => $visites)), "statistiques_visites.php3?id_article=$id_article", "statistiques-24.gif","rien.gif");
} }
if ($articles_versions AND $id_version>1 AND $options == "avancees") { if ((($GLOBALS['meta']["articles_versions"]=='oui') && $flag_revisions)
AND $id_version>1 AND $options == "avancees") {
icone_horizontale(_T('info_historique_lien'), "articles_versions.php3?id_article=$id_article", "historique-24.gif", "rien.gif"); icone_horizontale(_T('info_historique_lien'), "articles_versions.php3?id_article=$id_article", "historique-24.gif", "rien.gif");
} }
...@@ -641,7 +642,7 @@ function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip ...@@ -641,7 +642,7 @@ function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip
} }
function dates_articles($id_article, $flag_editable, $statut_article, $articles_redac, $date, $annee, $mois, $jour, $heure, $minute, $date_redac, $annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac) function dates_articles($id_article, $flag_editable, $statut_article, $date, $annee, $mois, $jour, $heure, $minute, $date_redac, $annee_redac, $mois_redac, $jour_redac, $heure_redac, $minute_redac)
{ {
global $spip_lang_left, $spip_lang_right, $options; global $spip_lang_left, $spip_lang_right, $options;
...@@ -680,7 +681,7 @@ function dates_articles($id_article, $flag_editable, $statut_article, $articles ...@@ -680,7 +681,7 @@ function dates_articles($id_article, $flag_editable, $statut_article, $articles
} }
$possedeDateRedac=($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00'); $possedeDateRedac=($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00');
if (($options == 'avancees' AND $articles_redac != 'non') if (($options == 'avancees' AND $GLOBALS['meta']["articles_redac"] != 'non')
OR $possedeDateRedac) { OR $possedeDateRedac) {
if ($possedeDateRedac) if ($possedeDateRedac)
$date_affichee = majuscules(affdate($date_redac)) $date_affichee = majuscules(affdate($date_redac))
...@@ -1404,6 +1405,22 @@ function trop_longs_articles($texte_plus) ...@@ -1404,6 +1405,22 @@ function trop_longs_articles($texte_plus)
} }
function modif_langue_articles($id_article, $id_rubrique, $changer_lang)
{
// Appliquer la modification de langue
if ($GLOBALS['meta']['multi_articles'] == 'oui') {
list($langue_parent) = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=" . $id_rubrique));
if ($changer_lang) {
if ($changer_lang != "herit")
spip_query("UPDATE spip_articles SET lang='".addslashes($changer_lang)."', langue_choisie='oui' WHERE id_article=$id_article");
else
spip_query("UPDATE spip_articles SET lang='".addslashes($langue_parent)."', langue_choisie='non' WHERE id_article=$id_article");
}
}
}
// Passer les images/docs en "inclus=non" // Passer les images/docs en "inclus=non"
function inclus_non_articles($id_article) function inclus_non_articles($id_article)
...@@ -1422,7 +1439,7 @@ if (count($ze_doc)>0){ ...@@ -1422,7 +1439,7 @@ if (count($ze_doc)>0){
} }
function revisions_articles ($id_article, $champs_extra, $id_secteur, $id_parent, $flag_auteur, $articles_versions, $new, $champs, $id_rubrique_old) { function revisions_articles ($id_article, $champs_extra, $id_secteur, $id_parent, $flag_auteur, $new, $champs, $id_rubrique_old) {
{ {
global $connect_id_auteur; global $connect_id_auteur;
// recoller les champs du extra // recoller les champs du extra
...@@ -1441,7 +1458,7 @@ function revisions_articles ($id_article, $champs_extra, $id_secteur, $id_parent ...@@ -1441,7 +1458,7 @@ function revisions_articles ($id_article, $champs_extra, $id_secteur, $id_parent
} }
// Stockage des versions : creer une premier version si non-existante // Stockage des versions : creer une premier version si non-existante
if ($articles_versions) { if (($GLOBALS['meta']["articles_versions"]=='oui') && $flag_revisions) {
include("lab_revisions.php"); include("lab_revisions.php");
if ($new != 'oui') { if ($new != 'oui') {
$query = "SELECT id_article FROM spip_versions WHERE id_article=$id_article LIMIT 1"; $query = "SELECT id_article FROM spip_versions WHERE id_article=$id_article LIMIT 1";
...@@ -1485,8 +1502,8 @@ function revisions_articles ($id_article, $champs_extra, $id_secteur, $id_parent ...@@ -1485,8 +1502,8 @@ function revisions_articles ($id_article, $champs_extra, $id_secteur, $id_parent
calculer_rubriques(); calculer_rubriques();
// Stockage des versions // Stockage des versions
if ($articles_versions) { if (($GLOBALS['meta']["articles_versions"]=='oui') && $flag_revisions) {
ajouter_version($id_article, $champs_versions, '', $connect_id_auteur); ajouter_version($id_article, $champs, '', $connect_id_auteur);
} }
// Changer la langue heritee // Changer la langue heritee
......
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