New file |
0,0 → 1,1630 |
<?php |
|
/***************************************************************************\ |
* SPIP, Systeme de publication pour l'internet * |
* * |
* Copyright (c) 2001-2005 * |
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * |
* * |
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. * |
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * |
\***************************************************************************/ |
|
include ("inc.php3"); |
|
include_ecrire ("inc_logos.php3"); |
include_ecrire ("inc_mots.php3"); |
include_ecrire ("inc_date.php3"); |
include_ecrire ("inc_documents.php3"); |
include_ecrire ("inc_forum.php3"); |
include_ecrire ("inc_abstract_sql.php3"); |
|
$articles_surtitre = lire_meta("articles_surtitre"); |
$articles_soustitre = lire_meta("articles_soustitre"); |
$articles_descriptif = lire_meta("articles_descriptif"); |
$articles_urlref = lire_meta("articles_urlref"); |
$articles_chapeau = lire_meta("articles_chapeau"); |
$articles_ps = lire_meta("articles_ps"); |
$articles_redac = lire_meta("articles_redac"); |
$articles_mots = lire_meta("articles_mots"); |
$articles_versions = (lire_meta("articles_versions")=='oui') && $flag_revisions; |
|
if ($id_article==0) { |
if ($new=='oui') { |
$id_rubrique = intval($id_rubrique); |
if ($titre=='') $titre = _T('info_sans_titre'); |
|
$langue_new = ''; |
$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 = lire_meta('langue_site'); |
$langue_choisie_new = 'non'; |
|
$forums_publics = substr(lire_meta('forums_publics'),0,3); |
|
$id_article = spip_abstract_insert("spip_articles", |
"(id_rubrique, statut, date, accepter_forum, lang, langue_choisie)", |
"($id_rubrique, 'prepa', NOW(), '$forums_publics', '$langue_new', '$langue_choisie_new')"); |
|
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)"); |
|
// Modifier le lien de base pour qu'il prenne en compte le nouvel id |
unset($_POST['id_rubrique']); |
$_POST['id_article'] = $id_article; |
$clean_link = new Link(); |
} else { |
redirige_par_entete("./index.php3"); |
} |
} |
|
|
$clean_link = new Link("articles.php3?id_article=$id_article"); |
|
|
|
////////////////////////////////////////////////////// |
// Determiner les droits d'edition de l'article |
// |
|
$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']; |
$titre_article = $row['titre']; |
$rubrique_article = $row['id_rubrique']; |
} |
else { |
$statut_article = ''; |
} |
|
$query = "SELECT * FROM spip_auteurs_articles WHERE id_article=$id_article AND id_auteur=$connect_id_auteur"; |
$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'))); |
|
|
|
// |
// Appliquer les modifications |
// |
|
$suivi_edito = lire_meta("suivi_edito"); |
|
$ok_nouveau_statut = false; |
|
|
if ($statut_nouv) { |
if (acces_rubrique($rubrique_article)) $ok_nouveau_statut = true; |
else if ($flag_auteur) { |
if ($statut_nouv == 'prop' AND $statut_article == 'prepa') |
$ok_nouveau_statut = true; |
else if ($statut_nouv == 'prepa' AND $statut_article == 'poubelle') |
$ok_nouveau_statut = true; |
} |
if ($ok_nouveau_statut) { |
$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) |
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_article = $statut_nouv; |
$flag_editable = (acces_rubrique($rubrique_article) |
OR ($flag_auteur AND ($statut_article == 'prepa' OR $statut_article == 'prop'))); |
} |
} |
|
// 'publie' => reindexer |
if ($ok_nouveau_statut AND $statut_nouv == 'publie' AND $statut_nouv != $statut_ancien AND (lire_meta('activer_moteur') == 'oui')) { |
include_ecrire ("inc_index.php3"); |
marquer_indexer('article', $id_article); |
} |
|
// 'dĀpublie' => invalider les caches |
if ($ok_nouveau_statut AND $statut_ancien == 'publie' AND $statut_nouv != $statut_ancien AND $invalider_caches) { |
include_ecrire ("inc_invalideur.php3"); |
suivre_invalideur("id='id_article/$id_article'"); |
} |
|
if ($jour && $flag_editable) { |
$date = format_mysql_date($annee, $mois, $jour, $heure, $minute); |
spip_query("UPDATE spip_articles SET date='$date' |
WHERE id_article=$id_article"); |
calculer_rubriques(); |
} |
|
if ($jour_redac && $flag_editable) { |
if ($annee_redac<>'' AND $annee_redac < 1001) $annee_redac += 9000; |
|
if ($avec_redac == 'non') |
$date_redac = format_mysql_date(); |
else |
$date_redac = format_mysql_date( |
$annee_redac, $mois_redac, $jour_redac, |
$heure_redac, $minute_redac); |
|
spip_query("UPDATE spip_articles SET date_redac='$date_redac' |
WHERE id_article=$id_article"); |
} |
|
|
// Appliquer la modification de langue |
if (lire_meta('multi_articles') == 'oui' AND $flag_editable) { |
$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=" . intval($rubrique_article))); |
$langue_parent = $row['lang']; |
|
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" |
$query = "SELECT docs.id_document FROM spip_documents AS docs, spip_documents_articles AS lien WHERE lien.id_article=$id_article AND lien.id_document=docs.id_document"; |
$result = spip_query($query); |
|
while($row=spip_fetch_array($result)){ |
$ze_doc[]=$row['id_document']; |
} |
|
if (count($ze_doc)>0){ |
$ze_docs = join($ze_doc,","); |
spip_query("UPDATE spip_documents SET inclus='non' WHERE id_document IN ($ze_docs)"); |
} |
|
|
# modifs de la description d'un des docs joints |
if ($flag_editable) maj_documents($id_article, 'article'); |
|
|
// |
// Reunit les textes decoupes parce que trop longs |
// |
|
$nb_texte = 0; |
while ($nb_texte ++ < 100){ // 100 pour eviter une improbable boucle infinie |
$varname = "texte$nb_texte"; |
$texte_plus = $$varname; // double $ pour obtenir $texte1, $texte2... |
if ($texte_plus){ |
$texte_plus = ereg_replace("<!--SPIP-->[\n\r]*","",$texte_plus); |
$texte_ajout .= $texte_plus; |
} else { |
break; |
} |
} |
$texte = $texte_ajout . $texte; |
|
// preparer le virtuel |
|
if ($changer_virtuel && $flag_editable) { |
$virtuel = eregi_replace("^http://$", "", trim($virtuel)); |
if ($virtuel) $chapo = addslashes(corriger_caracteres("=$virtuel")); |
else $chapo = ""; |
$query = "UPDATE spip_articles SET chapo='$chapo' WHERE id_article=$id_article"; |
$result = spip_query($query); |
} |
|
if ($titre && !$ajout_forum && $flag_editable) { |
$champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps'); |
$champs_version = array(); |
foreach ($champs as $nom_champ) { |
$t = $champs_versions[$nom_champ] = corriger_caracteres($$nom_champ); |
$$nom_champ = addslashes($t); |
} |
|
// recoller les champs du extra |
if ($champs_extra) { |
include_ecrire("inc_extra.php3"); |
$add_extra = ", extra = '".addslashes(extra_recup_saisie("articles", $id_secteur))."'"; |
} else |
$add_extra = ''; |
|
// Verifier qu'on envoie bien dans une rubrique autorisee |
if ($id_rubrique>0 AND ($flag_auteur OR acces_rubrique($id_rubrique))) { |
$change_rubrique = "id_rubrique=$id_rubrique,"; |
} else { |
$change_rubrique = ""; |
} |
|
// Stockage des versions : creer une premier version si non-existante |
if ($articles_versions) { |
include("lab_revisions.php"); |
if ($new != 'oui') { |
$query = "SELECT id_article FROM spip_versions WHERE id_article=$id_article LIMIT 0,1"; |
if (!spip_num_rows(spip_query($query))) { |
spip_log("version initiale de l'article $id_article"); |
$select = join(", ", $champs); |
$query = "SELECT $select FROM spip_articles WHERE id_article=$id_article"; |
$champs_originaux = spip_fetch_array(spip_query($query)); |
$id_version = ajouter_version($id_article, $champs_originaux, _T('version_initiale')); |
|
// Remettre une date un peu ancienne pour la version initiale |
if ($id_version == 1) // test inutile ? |
spip_query("UPDATE spip_versions |
SET date=DATE_SUB(NOW(), INTERVAL 2 HOUR) |
WHERE id_article=$id_article AND id_version=1"); |
} |
} |
} |
|
$query = "UPDATE spip_articles SET surtitre='$surtitre', titre='$titre', soustitre='$soustitre', $change_rubrique descriptif='$descriptif', chapo='$chapo', texte='$texte', ps='$ps', url_site='$url_site', nom_site='$nom_site' $add_extra WHERE id_article=$id_article"; |
$result = spip_query($query); |
calculer_rubriques(); |
|
// invalider et reindexer |
if ($statut_article == 'publie') { |
if ($invalider_caches) { |
include_ecrire ("inc_invalideur.php3"); |
suivre_invalideur("id='id_article/$id_article'"); |
} |
if (lire_meta('activer_moteur') == 'oui') { |
include_ecrire ("inc_index.php3"); |
marquer_indexer('article', $id_article); |
} |
} |
|
// Stockage des versions |
if ($articles_versions) { |
ajouter_version($id_article, $champs_versions); |
} |
|
// Changer la langue heritee |
if ($id_rubrique != $id_rubrique_old) { |
$row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_articles WHERE id_article=$id_article")); |
$langue_old = $row['lang']; |
$langue_choisie_old = $row['langue_choisie']; |
|
if ($langue_choisie_old != "oui") { |
$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); |
$langue_new = $row['lang']; |
if ($langue_new != $langue_old) spip_query("UPDATE spip_articles SET lang = '$langue_new' WHERE id_article = $id_article"); |
} |
} |
|
// afficher le nouveau titre dans la barre de fenetre |
$titre_article = stripslashes($titre); |
|
// marquer l'article (important pour les articles nouvellement crees) |
spip_query("UPDATE spip_articles SET date_modif=NOW(), auteur_modif=$connect_id_auteur WHERE id_article=$id_article"); |
$id_article_bloque = $id_article; // message pour inc_presentation |
} |
|
|
|
|
// |
// Lire l'article |
// |
|
$query = "SELECT * FROM spip_articles WHERE id_article='$id_article'"; |
$result = spip_query($query); |
|
if ($row = spip_fetch_array($result)) { |
$id_article = $row["id_article"]; |
$surtitre = $row["surtitre"]; |
$titre = $row["titre"]; |
$soustitre = $row["soustitre"]; |
$id_rubrique = $row["id_rubrique"]; |
$descriptif = $row["descriptif"]; |
$nom_site = $row["nom_site"]; |
$url_site = $row["url_site"]; |
$chapo = $row["chapo"]; |
$texte = $row["texte"]; |
$ps = $row["ps"]; |
$date = $row["date"]; |
$statut_article = $row["statut"]; |
$maj = $row["maj"]; |
$date_redac = $row["date_redac"]; |
$visites = $row["visites"]; |
$referers = $row["referers"]; |
$extra = $row["extra"]; |
$id_trad = $row["id_trad"]; |
$id_version = $row["id_version"]; |
} |
|
// pour l'affichage du virtuel |
unset($virtuel); |
if (substr($chapo, 0, 1) == '=') { |
$virtuel = substr($chapo, 1); |
} |
|
if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2})", $date_redac, $regs)) { |
$annee_redac = $regs[1]; |
$mois_redac = $regs[2]; |
$jour_redac = $regs[3]; |
$heure_redac = $regs[4]; |
$minute_redac = $regs[5]; |
if ($annee_redac > 4000) $annee_redac -= 9000; |
} |
|
if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2})", $date, $regs)) { |
$annee = $regs[1]; |
$mois = $regs[2]; |
$jour = $regs[3]; |
$heure = $regs[4]; |
$minute = $regs[5]; |
} |
|
|
|
debut_page("« $titre_article »", "documents", "articles"); |
|
debut_grand_cadre(); |
|
afficher_hierarchie($id_rubrique); |
|
fin_grand_cadre(); |
|
|
|
////////////////////////////////////////////////////// |
// Affichage de la colonne de gauche |
// |
|
debut_gauche(); |
|
debut_boite_info(); |
|
echo "<div align='center'>\n"; |
|
|
echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'><b>"._T('info_numero_article')."</b></font>\n"; |
echo "<br><font face='Verdana,Arial,Sans,sans-serif' size='6'><b>$id_article</b></font>\n"; |
|
voir_en_ligne ('article', $id_article, $statut_article); |
|
|
$activer_statistiques = lire_meta("activer_statistiques"); |
|
if ($connect_statut == "0minirezo" AND $statut_article == 'publie' AND $visites > 0 AND $activer_statistiques != "non" AND $options == "avancees"){ |
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") { |
icone_horizontale(_T('info_historique_lien'), "articles_versions.php3?id_article=$id_article", "historique-24.gif", "rien.gif"); |
} |
|
// Correction orthographique |
if (lire_meta('articles_ortho') == 'oui') { |
$js_ortho = "onclick=\"window.open(this.href, 'spip_ortho', 'scrollbars=yes, resizable=yes, width=740, height=580'); return false;\""; |
icone_horizontale(_T('ortho_verifier'), "articles_ortho.php?id_article=$id_article", "ortho-24.gif", "rien.gif", 'echo', $js_ortho); |
} |
|
echo "</div>\n"; |
|
fin_boite_info(); |
|
|
// Logos de l'article |
|
if ($id_article AND $flag_editable) |
afficher_boite_logo('art', 'id_article', $id_article, |
_T('logo_article').aide ("logoart"), _T('logo_survol')); |
|
|
// |
// Boites de configuration avancee |
// |
|
if ($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable) { |
echo "<p>"; |
debut_cadre_relief("forum-interne-24.gif"); |
|
|
list($nb_forums) = spip_fetch_array(spip_query( |
"SELECT count(*) AS count FROM spip_forum |
WHERE id_article=$id_article |
AND statut IN ('publie', 'off', 'prop')")); |
|
list($nb_signatures) = spip_fetch_array(spip_query( |
"SELECT COUNT(*) AS count FROM spip_signatures |
WHERE id_article=$id_article |
AND statut IN ('publie', 'poubelle')")); |
|
|
$visible = $change_accepter_forum || $change_petition |
|| $nb_forums || $nb_signatures; |
|
echo "<div class='verdana1' style='text-align: center;'><b>"; |
if ($visible) |
echo bouton_block_visible("forumpetition"); |
else |
echo bouton_block_invisible("forumpetition"); |
echo _T('bouton_forum_petition') .aide('confforums'); |
echo "</b></div>"; |
if ($visible) |
echo debut_block_visible("forumpetition"); |
else |
echo debut_block_invisible("forumpetition"); |
|
|
echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'>\n"; |
|
|
// Forums |
|
if ($nb_forums) { |
echo "<br />\n"; |
icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $nb_forums)), |
"articles_forum.php3?id_article=$id_article", "suivi-forum-24.gif", ""); |
} |
|
// Reglage existant |
$forums_publics = get_forums_publics($id_article); |
|
// Modification du reglage ? |
if (isset($change_accepter_forum) |
AND $change_accepter_forum <> $forums_publics) { |
$forums_publics = $change_accepter_forum; |
modifier_forums_publics($id_article, $forums_publics); |
} |
|
// Afficher le formulaire de modification du reglage |
echo formulaire_modification_forums_publics($id_article, $forums_publics); |
|
|
// Petitions |
|
if ($change_petition) { |
if ($change_petition == "on") { |
if (!$email_unique) $email_unique = "non"; |
if (!$site_obli) $site_obli = "non"; |
if (!$site_unique) $site_unique = "non"; |
if (!$message) $message = "non"; |
|
$texte_petition = addslashes($texte_petition); |
|
$query_pet = "REPLACE spip_petitions (id_article, email_unique, site_obli, site_unique, message, texte) ". |
"VALUES ($id_article, '$email_unique', '$site_obli', '$site_unique', '$message', '$texte_petition')"; |
$result_pet = spip_query($query_pet); |
} |
else if ($change_petition == "off") { |
$query_pet = "DELETE FROM spip_petitions WHERE id_article=$id_article"; |
$result_pet = spip_query($query_pet); |
} |
} |
|
$petition = spip_fetch_array(spip_query( |
"SELECT * FROM spip_petitions WHERE id_article=$id_article")); |
|
$email_unique=$petition["email_unique"]; |
$site_obli=$petition["site_obli"]; |
$site_unique=$petition["site_unique"]; |
$message=$petition["message"]; |
$texte_petition=$petition["texte"]; |
|
echo "\n<form action='".$GLOBALS['clean_link']->getUrl() |
."' method='POST'>"; |
echo "\n<input type='hidden' name='id_article' value='$id_article'>"; |
|
echo "<select name='change_petition' |
class='fondl' style='font-size:10px;' |
onChange=\"setvisibility('valider_petition', 'visible');\" |
>\n"; |
|
if ($petition) { |
$menu = array( |
'on' => _T('bouton_radio_petition_activee'), |
'off'=> _T('bouton_radio_supprimer_petition') |
); |
$val_menu = 'on'; |
} else { |
$menu = array( |
'off'=> _T('bouton_radio_pas_petition'), |
'on' => _T('bouton_radio_activer_petition') |
); |
$val_menu = 'off'; |
} |
|
|
foreach ($menu as $val => $desc) { |
echo "<option"; |
if ($val_menu == $val) |
echo " selected"; |
echo " value='$val'>".$desc."</option>\n"; |
} |
echo "</select>\n"; |
|
if ($petition) { |
if ($nb_signatures) { |
echo "<br />\n"; |
icone_horizontale($nb_signatures.' '. _T('info_signatures'), |
"controle_petition.php3?id_article=$id_article", "suivi-petition-24.gif", ""); |
} |
|
echo "<br />\n"; |
|
if ($email_unique=="oui") |
echo "<input type='checkbox' name='email_unique' value='oui' id='emailunique' checked>"; |
else |
echo "<input type='checkbox' name='email_unique' value='oui' id='emailunique'>"; |
echo " <label for='emailunique'>"._T('bouton_checkbox_signature_unique_email')."</label><BR>"; |
if ($site_obli=="oui") |
echo "<input type='checkbox' name='site_obli' value='oui' id='siteobli' checked>"; |
else |
echo "<input type='checkbox' name='site_obli' value='oui' id='siteobli'>"; |
echo " <label for='siteobli'>"._T('bouton_checkbox_indiquer_site')."</label><BR>"; |
if ($site_unique=="oui") |
echo "<input type='checkbox' name='site_unique' value='oui' id='siteunique' checked>"; |
else |
echo "<input type='checkbox' name='site_unique' value='oui' id='siteunique'>"; |
echo " <label for='siteunique'>"._T('bouton_checkbox_signature_unique_site')."</label><BR>"; |
if ($message=="oui") |
echo "<input type='checkbox' name='message' value='oui' id='message' checked>"; |
else |
echo "<input type='checkbox' name='message' value='oui' id='message'>"; |
echo " <label for='message'>"._T('bouton_checkbox_envoi_message')."</label>"; |
|
echo "<P>"._T('texte_descriptif_petition')." :<BR>"; |
echo "<TEXTAREA NAME='texte_petition' CLASS='forml' ROWS='4' COLS='10' wrap=soft>"; |
echo $texte_petition; |
echo "</TEXTAREA><P>\n"; |
|
echo "<P align='$spip_lang_right'>"; |
} |
|
if (!$petition) echo "<span class='visible_au_chargement' id='valider_petition'>"; |
echo "<INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px'>"; |
if (!$petition) echo "</span>"; |
echo "</FORM>"; |
|
echo "</font>"; |
echo fin_block(); |
|
fin_cadre_relief(); |
|
|
|
// Redirection (article virtuel) |
debut_cadre_relief("site-24.gif"); |
$visible = ($changer_virtuel || $virtuel); |
|
echo "<div class='verdana1' style='text-align: center;'><b>"; |
if ($visible) |
echo bouton_block_visible("redirection"); |
else |
echo bouton_block_invisible("redirection"); |
echo _T('bouton_redirection'); |
echo aide ("artvirt"); |
echo "</b></div>"; |
if ($visible) |
echo debut_block_visible("redirection"); |
else |
echo debut_block_invisible("redirection"); |
|
echo "<form action='articles.php3?id_article=$id_article' method='post'>"; |
echo "\n<INPUT TYPE='hidden' NAME='id_article' VALUE='$id_article'>"; |
echo "\n<INPUT TYPE='hidden' NAME='changer_virtuel' VALUE='oui'>"; |
$virtuelhttp = ($virtuel ? "" : "http://"); |
|
echo "<INPUT TYPE='text' NAME='virtuel' CLASS='formo' style='font-size:9px;' VALUE=\"$virtuelhttp$virtuel\" SIZE='40'><br>"; |
echo "<font face='Verdana,Arial,Sans,sans-serif' size=2>"; |
echo "(<b>"._T('texte_article_virtuel')." :</b> "._T('texte_reference_mais_redirige').")"; |
echo "</font>"; |
echo "<div align='$spip_lang_right'><INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px'></div>"; |
echo "</form>"; |
echo fin_block(); |
|
fin_cadre_relief(); |
} |
|
|
// |
// Articles dans la meme rubrique |
// |
|
$vos_articles = spip_query("SELECT articles.id_article, articles.titre, articles.statut FROM spip_articles AS articles WHERE articles.id_rubrique='$id_rubrique' AND (articles.statut = 'publie' OR articles.statut = 'prop') AND articles.id_article != '$id_article' ". |
" ORDER BY articles.date DESC LIMIT 0,30"); |
if (spip_num_rows($vos_articles) > 0) { |
echo "<div> </div>"; |
echo "<div class='bandeau_rubriques' style='z-index: 1;'>"; |
bandeau_titre_boite2(_T('info_meme_rubrique'), "article-24.gif"); |
echo "<div class='plan-articles'>"; |
while($row = spip_fetch_array($vos_articles)) { |
$ze_article = $row['id_article']; |
$ze_titre = typo($row['titre']); |
$ze_statut = $row['statut']; |
|
if ($options == "avancees") { |
$numero = "<div class='arial1' style='float: $spip_lang_right; color: black; padding-$spip_lang_left: 4px;'><b>"._T('info_numero_abbreviation')."$ze_article</b></div>"; |
} |
echo "<a class='$ze_statut' style='font-size: 10px;' href='articles.php3?id_article=$ze_article'>$numero$ze_titre</a>"; |
} |
echo "</div>"; |
echo "</div>"; |
} |
|
|
////////////////////////////////////////////////////// |
// Affichage de la colonne de droite |
// |
|
debut_droite(); |
|
|
changer_typo('','article'.$id_article); |
|
debut_cadre_relief(); |
|
// |
// Titre, surtitre, sous-titre |
// |
|
$logo_statut = "puce-".puce_statut($statut_article).".gif"; |
|
echo "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>"; |
echo "<tr width='100%'><td width='100%' valign='top'>"; |
if ($surtitre) { |
echo "<span $dir_lang><font face='arial,helvetica' size=3><b>"; |
echo typo($surtitre); |
echo "</b></font></span>\n"; |
} |
gros_titre($titre, $logo_statut); |
|
if ($soustitre) { |
echo "<span $dir_lang><font face='arial,helvetica' size=3><b>"; |
echo typo($soustitre); |
echo "</b></font></span>\n"; |
} |
|
|
if ($descriptif OR $url_site OR $nom_site) { |
echo "<p><div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;' $dir_lang>"; |
echo "<font size=2 face='Verdana,Arial,Sans,sans-serif'>"; |
$texte_case = ($descriptif) ? "{{"._T('info_descriptif')."}} $descriptif\n\n" : ''; |
$texte_case .= ($nom_site.$url_site) ? "{{"._T('info_urlref')."}} [".$nom_site."->".$url_site."]" : ''; |
echo propre($texte_case); |
echo "</font>"; |
echo "</div>"; |
} |
|
|
if ($statut_article == 'prop') { |
echo "<P><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2 COLOR='red'><B>"._T('text_article_propose_publication')."</B></FONT></P>"; |
} |
|
echo "</td>"; |
|
|
if ($flag_editable) { |
echo "<td>". http_img_pack('rien.gif', " ", "width='5'") . "</td>\n"; |
echo "<td align='center'>"; |
$flag_modif = false; |
|
// Recuperer les donnees de l'article |
if (lire_meta('articles_modif') != 'non') { |
$query = "SELECT auteur_modif, UNIX_TIMESTAMP(date_modif) AS modification, UNIX_TIMESTAMP(NOW()) AS maintenant FROM spip_articles WHERE id_article='$id_article'"; |
$result = spip_query($query); |
|
if ($row = spip_fetch_array($result)) { |
$auteur_modif = $row["auteur_modif"]; |
$modification = $row["modification"]; |
$maintenant = $row["maintenant"]; |
|
$date_diff = floor(($maintenant - $modification)/60); |
|
if ($date_diff >= 0 AND $date_diff < 60 AND $auteur_modif > 0 AND $auteur_modif != $connect_id_auteur) { |
$flag_modif = true; |
$query_auteur = "SELECT nom FROM spip_auteurs WHERE id_auteur='$auteur_modif'"; |
$result_auteur = spip_query($query_auteur); |
if ($row_auteur = spip_fetch_array($result_auteur)) { |
$nom_auteur_modif = typo($row_auteur["nom"]); |
} |
} |
} |
} |
if ($flag_modif) { |
icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "article-24.gif", "edit.gif"); |
echo "<font face='arial,helvetica,sans-serif' size='2'>"._T('avis_article_modifie', array('nom_auteur_modif' => $nom_auteur_modif, 'date_diff' => $date_diff))."</font>"; |
echo aide("artmodif"); |
} |
else { |
icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "article-24.gif", "edit.gif"); |
} |
|
echo "</td>"; |
} |
echo "</tr></table>\n"; |
|
|
echo "<div> </div>"; |
echo "<div class='serif' align='$spip_lang_left'>"; |
|
// |
// Affichage date redac et date publi |
// |
|
if ($flag_editable AND $options == 'avancees') { |
debut_cadre_couleur(); |
|
echo "<FORM ACTION='articles.php3' METHOD='GET' style='margin: 0px; padding: 0px;'>"; |
echo "<INPUT TYPE='hidden' NAME='id_article' VALUE='$id_article'>"; |
|
if ($statut_article == 'publie') { |
|
echo "<div><b>"; |
echo bouton_block_invisible("datepub"); |
echo "<span class='verdana1'>"._T('texte_date_publication_article').'</span> '; |
echo majuscules(affdate($date)), |
# ', <small>'._T('date_fmt_heures_minutes', |
# array('h' =>$heure, 'm'=>$minute)), '</small>', |
"</b>".aide('artdate')."</div>"; |
|
echo debut_block_invisible("datepub"), |
"<div style='margin: 5px; margin-$spip_lang_left: 20px;'>", |
afficher_jour($jour, "name='jour' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\"", true), |
afficher_mois($mois, "name='mois' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\"", true), |
afficher_annee($annee, "name='annee' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\""), |
' - ', |
afficher_heure($heure, "name='heure' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\""), |
afficher_minute($minute, "name='minute' size='1' class='fondl' onChange=\"setvisibility('valider_date', 'visible')\""), |
"<span class='visible_au_chargement' id='valider_date'>", |
" <INPUT TYPE='submit' NAME='Changer' CLASS='fondo' VALUE='"._T('bouton_changer')."'>", |
"</span>", |
"</div>", |
fin_block(); |
} |
else { |
echo "<div><b> <span class='verdana1'>"._T('texte_date_creation_article').'</span> '; |
echo majuscules(affdate($date))."</b>".aide('artdate')."</div>"; |
} |
|
$possedeDateRedac=($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00'); |
if (($options == 'avancees' AND $articles_redac != 'non') |
OR $possedeDateRedac) { |
if ($possedeDateRedac) |
$date_affichee = majuscules(affdate($date_redac)) |
# ." " ._T('date_fmt_heures_minutes', array('h' =>$heure_redac, 'm'=>$minute_redac)) |
; |
else |
$date_affichee = majuscules(_T('jour_non_connu_nc')); |
|
echo "<div><b>"; |
echo bouton_block_invisible('dateredac'); |
echo "<span class='verdana1'>" |
. majuscules(_T('texte_date_publication_anterieure')) |
.'</span> '. $date_affichee ." ".aide('artdate_redac')."</b></div>"; |
|
echo debut_block_invisible('dateredac'); |
echo "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>"; |
echo '<table cellpadding="0" cellspacing="0" border="0" width="100%">'; |
echo '<tr><td align="$spip_lang_left">'; |
echo '<input type="radio" name="avec_redac" value="non" id="avec_redac_on"'; |
if (!$possedeDateRedac) echo ' checked="checked"'; |
echo " onClick=\"setvisibility('valider_date_prec', 'visible')\""; |
echo ' /> <label for="avec_redac_on">'._T('texte_date_publication_anterieure_nonaffichee').'</label>'; |
echo '<br /><input type="radio" name="avec_redac" value="oui" id="avec_redac_off"'; |
if ($possedeDateRedac) echo ' checked="checked"'; |
echo " onClick=\"setvisibility('valider_date_prec', 'visible')\""; |
echo ' /> <label for="avec_redac_off">'._T('bouton_radio_afficher').' :</label> ', |
afficher_jour($jour_redac, "name='jour_redac' class='fondl' onChange=\"setvisibility('valider_date_prec', 'visible')\"", true), |
afficher_mois($mois_redac, "name='mois_redac' class='fondl' onChange=\"setvisibility('valider_date_prec', 'visible')\"", true); |
echo "<input type='text' name='annee_redac' class='fondl' value='".$annee_redac."' size='5' maxlength='4' onClick=\"setvisibility('valider_date_prec', 'visible')\"/>"; |
|
echo '<div align="center">', |
afficher_heure($heure_redac, "name='heure_redac' class='fondl' onChange=\"setvisibility('valider_date_prec', 'visible')\"", true), |
afficher_minute($minute_redac, "name='minute_redac' class='fondl' onChange=\"setvisibility('valider_date_prec', 'visible')\"", true), |
"</div>\n"; |
|
echo '</td><td align="$spip_lang_right">'; |
echo "<span class='visible_au_chargement' id='valider_date_prec'>"; |
echo '<input type="submit" name="Changer" class="fondo" value="'._T('bouton_changer').'" />'; |
echo "</span>"; |
echo '</td></tr>'; |
echo '</table>'; |
echo "</div>"; |
echo fin_block(); |
} |
|
echo "</FORM>"; |
fin_cadre_couleur(); |
} |
else { |
if ($statut_article == 'publie') $texte_date = _T('texte_date_publication_article'); |
else $texte_date = _T('texte_date_creation_article'); |
|
debut_cadre_couleur(); |
echo "<div style='text-align:center;'><b> <span class='verdana1'>$texte_date</span> "; |
echo majuscules(affdate($date))."</b>".aide('artdate')."</div>"; |
|
|
if ($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00') { |
$date_affichee = ' : '.majuscules(affdate($date_redac)); |
echo "<div style='text-align:center;'><b> <span class='verdana1'>"._T(texte_date_publication_anterieure)."</span> "; |
echo $date_affichee."</b>".aide('artdate_redac')."</div>"; |
} |
|
fin_cadre_couleur(); |
} |
|
|
|
// |
// Liste des auteurs de l'article |
// |
|
echo "<a name='auteurs'></a>"; |
|
if ($flag_editable AND $options == 'avancees') { |
$bouton = bouton_block_invisible("auteursarticle"); |
} |
|
debut_cadre_enfonce("auteur-24.gif", false, "", $bouton._T('texte_auteurs').aide ("artauteurs")); |
|
|
|
//////////////////////////////////////////////////// |
// Gestion des auteurs |
// |
|
// Creer un nouvel auteur et l'ajouter |
#spip_log("$creer_auteur AND $connect_statut"); |
# ce code n'est jamais execute. A tirer au clair |
if ($creer_auteur AND $connect_statut=='0minirezo'){ |
$creer_auteur = addslashes($creer_auteur); |
|
$nouv_auteur = spip_abstract_insert('spip_auteurs', "(nom, statut)", |
"(\"$creer_auteur\", '1comite')"); |
$ajout_auteur = true; |
} |
|
|
// |
// Recherche d'auteur |
// |
|
if ($cherche_auteur) { |
echo "<P ALIGN='$spip_lang_left'>"; |
$query = "SELECT id_auteur, nom FROM spip_auteurs"; |
$result = spip_query($query); |
unset($table_auteurs); |
unset($table_ids); |
while ($row = spip_fetch_array($result)) { |
$table_auteurs[] = $row["nom"]; |
$table_ids[] = $row["id_auteur"]; |
} |
$resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids); |
debut_boite_info(); |
if (!$resultat) { |
echo "<B>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</B><BR>"; |
} |
else if (count($resultat) == 1) { |
$ajout_auteur = 'oui'; |
list(, $nouv_auteur) = each($resultat); |
echo "<B>"._T('texte_ajout_auteur')."</B><BR>"; |
$query = "SELECT * FROM spip_auteurs WHERE id_auteur=$nouv_auteur"; |
$result = spip_query($query); |
echo "<UL>"; |
while ($row = spip_fetch_array($result)) { |
$id_auteur = $row['id_auteur']; |
$nom_auteur = $row['nom']; |
$email_auteur = $row['email']; |
$bio_auteur = $row['bio']; |
|
echo "<LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><B><FONT SIZE=3>".typo($nom_auteur)."</FONT></B>"; |
echo "</FONT>\n"; |
} |
echo "</UL>"; |
} |
else if (count($resultat) < 16) { |
reset($resultat); |
unset($les_auteurs); |
while (list(, $id_auteur) = each($resultat)) $les_auteurs[] = $id_auteur; |
if ($les_auteurs) { |
$les_auteurs = join(',', $les_auteurs); |
echo "<B>"._T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))."</B><BR>"; |
$query = "SELECT * FROM spip_auteurs WHERE id_auteur IN ($les_auteurs) ORDER BY nom"; |
$result = spip_query($query); |
echo "<UL class='verdana1'>"; |
while ($row = spip_fetch_array($result)) { |
$id_auteur = $row['id_auteur']; |
$nom_auteur = $row['nom']; |
$email_auteur = $row['email']; |
$bio_auteur = $row['bio']; |
|
echo "<li><b>".typo($nom_auteur)."</b>"; |
|
if ($email_auteur) echo " ($email_auteur)"; |
echo " | <A HREF=\"articles.php3?id_article=$id_article&ajout_auteur=oui&nouv_auteur=$id_auteur#auteurs\">"._T('lien_ajouter_auteur')."</A>"; |
|
if (trim($bio_auteur)) { |
echo "<br />".couper(propre($bio_auteur), 100)."\n"; |
} |
echo "</li>\n"; |
} |
echo "</UL>"; |
} |
} |
else { |
echo "<B>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</B><BR>"; |
} |
|
if ($GLOBALS['connect_statut'] == '0minirezo') { |
echo "<div style='width: 200px;'>"; |
$retour = urlencode($GLOBALS['clean_link']->getUrl()); |
$titre = urlencode($cherche_auteur); |
icone_horizontale(_T('icone_creer_auteur'), "auteur_infos.php3?new=oui&ajouter_id_article=$id_article&titre=$titre&redirect=$retour", "redacteurs-24.gif", "creer.gif"); |
echo "</div> "; |
|
// message pour ne pas afficher le second bouton "creer un auteur" |
$supprimer_bouton_creer_auteur = true; |
} |
|
fin_boite_info(); |
echo "<P>"; |
|
} |
|
|
|
// |
// Appliquer les modifications sur les auteurs |
// |
|
if ($ajout_auteur && $flag_editable) { |
if ($nouv_auteur > 0) { |
$query="DELETE FROM spip_auteurs_articles WHERE id_auteur='$nouv_auteur' AND id_article='$id_article'"; |
$result=spip_query($query); |
$query="INSERT INTO spip_auteurs_articles (id_auteur,id_article) VALUES ('$nouv_auteur','$id_article')"; |
$result=spip_query($query); |
} |
|
if (lire_meta('activer_moteur') == 'oui') { |
include_ecrire ("inc_index.php3"); |
marquer_indexer('article', $id_article); |
} |
} |
|
if ($supp_auteur && $flag_editable) { |
$query="DELETE FROM spip_auteurs_articles WHERE id_auteur='$supp_auteur' AND id_article='$id_article'"; |
$result=spip_query($query); |
if (lire_meta('activer_moteur') == 'oui') { |
include_ecrire ("inc_index.php3"); |
marquer_indexer('article', $id_article); |
} |
} |
|
|
// |
// Afficher les auteurs |
// |
|
unset($les_auteurs); |
|
$query = "SELECT * FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien ". |
"WHERE auteurs.id_auteur=lien.id_auteur AND lien.id_article=$id_article ". |
"GROUP BY auteurs.id_auteur ORDER BY auteurs.nom"; |
$result = spip_query($query); |
|
if (spip_num_rows($result)) { |
echo "<div class='liste'>"; |
echo "<table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>"; |
$table = ''; |
while ($row = spip_fetch_array($result)) { |
$vals = ''; |
$id_auteur = $row["id_auteur"]; |
$nom_auteur = $row["nom"]; |
$email_auteur = $row["email"]; |
if ($bio_auteur = attribut_html(propre(couper($row["bio"], 100)))) |
$bio_auteur = " TITLE=\"$bio_auteur\""; |
$url_site_auteur = $row["url_site"]; |
$statut_auteur = $row["statut"]; |
if ($row['messagerie'] == 'non' OR $row['login'] == '') $messagerie = 'non'; |
|
$les_auteurs[] = $id_auteur; |
|
if ($connect_statut == "0minirezo") $aff_articles = "('prepa', 'prop', 'publie', 'refuse')"; |
else $aff_articles = "('prop', 'publie')"; |
|
$query2 = "SELECT COUNT(articles.id_article) AS compteur ". |
"FROM spip_auteurs_articles AS lien, spip_articles AS articles ". |
"WHERE lien.id_auteur=$id_auteur AND articles.id_article=lien.id_article ". |
"AND articles.statut IN $aff_articles GROUP BY lien.id_auteur"; |
$result2 = spip_query($query2); |
if ($result2) list($nombre_articles) = spip_fetch_array($result2); |
else $nombre_articles = 0; |
|
$url_auteur = "auteurs_edit.php3?id_auteur=$id_auteur"; |
|
$vals[] = bonhomme_statut($row); |
|
$vals[] = "<A HREF=\"$url_auteur\"$bio_auteur>".typo($nom_auteur)."</A>"; |
|
$vals[] = bouton_imessage($id_auteur); |
|
|
|
if ($email_auteur) $vals[] = "<A HREF='mailto:$email_auteur'>"._T('email')."</A>"; |
else $vals[] = " "; |
|
if ($url_site_auteur) $vals[] = "<A HREF='$url_site_auteur'>"._T('info_site_min')."</A>"; |
else $vals[] = " "; |
|
if ($nombre_articles > 1) $vals[] = $nombre_articles.' '._T('info_article_2'); |
else if ($nombre_articles == 1) $vals[] = _T('info_1_article'); |
else $vals[] = " "; |
|
if ($flag_editable AND ($connect_id_auteur != $id_auteur OR $connect_statut == '0minirezo') AND $options == 'avancees') { |
$vals[] = "<A HREF='articles.php3?id_article=$id_article&supp_auteur=$id_auteur#auteurs'>"._T('lien_retirer_auteur')." ". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'") . "</A>"; |
} else { |
$vals[] = ""; |
} |
|
$table[] = $vals; |
} |
|
|
$largeurs = array('14', '', '', '', '', '', ''); |
$styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial11', 'arial1'); |
afficher_liste($largeurs, $table, $styles); |
|
|
echo "</table></div>\n"; |
|
$les_auteurs = join(',', $les_auteurs); |
} |
|
|
// |
// Ajouter un auteur |
// |
|
if ($flag_editable AND $options == 'avancees') { |
echo debut_block_invisible("auteursarticle"); |
|
$query = "SELECT * FROM spip_auteurs WHERE "; |
if ($les_auteurs) $query .= "id_auteur NOT IN ($les_auteurs) AND "; |
$query .= "statut!='5poubelle' AND statut!='6forum' AND statut!='nouveau' ORDER BY statut, nom"; |
$result = spip_query($query); |
|
echo "<table width='100%'>"; |
echo "<tr>"; |
|
if ($connect_statut == '0minirezo' |
AND acces_rubrique($rubrique_article) |
AND $options == "avancees" |
AND !$supprimer_bouton_creer_auteur) { |
echo "<td width='200'>"; |
$retour = urlencode($clean_link->getUrl()); |
icone_horizontale(_T('icone_creer_auteur'), "auteur_infos.php3?new=oui&ajouter_id_article=$id_article&redirect=$retour", "redacteurs-24.gif", "creer.gif"); |
echo "</td>"; |
echo "<td width='20'> </td>"; |
} |
|
echo "<td>"; |
|
|
if (spip_num_rows($result) > 0) { |
echo "<FORM ACTION='articles.php3?id_article=$id_article#auteurs' METHOD='post'>"; |
echo "<span class='verdana1'><B>"._T('titre_cadre_ajouter_auteur')." </B></span>\n"; |
echo "<DIV><INPUT TYPE='Hidden' NAME='id_article' VALUE=\"$id_article\">"; |
|
if (spip_num_rows($result) > 200) { |
echo "<INPUT TYPE='text' NAME='cherche_auteur' onClick=\"setvisibility('valider_ajouter_auteur','visible');\" CLASS='fondl' VALUE='' SIZE='20'>"; |
echo "<span class='visible_au_chargement' id='valider_ajouter_auteur'>"; |
echo " <INPUT TYPE='submit' NAME='Chercher' VALUE='"._T('bouton_chercher')."' CLASS='fondo'>"; |
echo "</span>"; |
} |
else { |
echo "<INPUT TYPE='Hidden' NAME='ajout_auteur' VALUE='oui'>"; |
echo "<SELECT NAME='nouv_auteur' SIZE='1' STYLE='width:150px;' CLASS='fondl' onChange=\"setvisibility('valider_ajouter_auteur','visible');\">"; |
$group = false; |
$group2 = false; |
|
while ($row = spip_fetch_array($result)) { |
$id_auteur = $row["id_auteur"]; |
$nom = $row["nom"]; |
$email = $row["email"]; |
$statut = $row["statut"]; |
|
$statut=str_replace("0minirezo", _T('info_administrateurs'), $statut); |
$statut=str_replace("1comite", _T('info_redacteurs'), $statut); |
$statut=str_replace("6visiteur", _T('info_visiteurs'), $statut); |
|
$premiere = strtoupper(substr(trim($nom), 0, 1)); |
|
if ($connect_statut != '0minirezo') |
if ($p = strpos($email, '@')) |
$email = substr($email, 0, $p).'@...'; |
if ($email) |
$email = " ($email)"; |
|
if ($statut != $statut_old) { |
echo "\n<OPTION VALUE=\"x\">"; |
echo "\n<OPTION VALUE=\"x\" style='background-color: $couleur_claire;'> $statut"; |
} |
|
if ($premiere != $premiere_old AND ($statut != _T('info_administrateurs') OR !$premiere_old)) { |
echo "\n<OPTION VALUE=\"x\">"; |
} |
|
$texte_option = supprimer_tags(couper(typo("$nom$email"), 40)); |
echo "\n<OPTION VALUE=\"$id_auteur\"> $texte_option"; |
$statut_old = $statut; |
$premiere_old = $premiere; |
} |
|
echo "</SELECT>"; |
echo "<span class='visible_au_chargement' id='valider_ajouter_auteur'>"; |
echo " <INPUT TYPE='submit' NAME='Ajouter' VALUE="._T('bouton_ajouter')." CLASS='fondo'>"; |
echo "</span>"; |
} |
echo "</div></FORM>"; |
} |
|
echo "</td></tr></table>"; |
|
|
echo fin_block(); |
} |
|
fin_cadre_enfonce(false); |
|
|
////////////////////////////////////////////////////// |
// Liste des mots-cles de l'article |
// |
|
if ($options == 'avancees' AND $articles_mots != 'non') { |
formulaire_mots('articles', $id_article, $nouv_mot, $supp_mot, $cherche_mot, $flag_editable); |
} |
|
|
// |
// Langue de l'article |
// |
if ((lire_meta('multi_articles') == 'oui') |
OR ((lire_meta('multi_rubriques') == 'oui') AND (lire_meta('gerer_trad') == 'oui'))) { |
|
$row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_articles WHERE id_article=$id_article")); |
$langue_article = $row['lang']; |
$langue_choisie_article = $row['langue_choisie']; |
|
if (lire_meta('gerer_trad') == 'oui') |
$titre_barre = _T('titre_langue_trad_article'); |
else |
$titre_barre = _T('titre_langue_article'); |
|
$titre_barre .= " (".traduire_nom_langue($langue_article).")"; |
|
debut_cadre_enfonce('langues-24.gif', false, "", bouton_block_invisible('languesarticle,ne_plus_lier,lier_traductions').$titre_barre); |
|
|
// Choix langue article |
if (lire_meta('multi_articles') == 'oui' AND $flag_editable) { |
echo debut_block_invisible('languesarticle'); |
|
$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); |
$langue_parent = $row['lang']; |
|
if ($langue_choisie_article == 'oui') $herit = false; |
else $herit = true; |
|
debut_cadre_couleur(); |
echo "<div style='text-align: center;'>"; |
echo menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent); |
echo "</div>\n"; |
fin_cadre_couleur(); |
|
echo fin_block(); |
} |
|
|
// Gerer les groupes de traductions |
if (lire_meta('gerer_trad') == 'oui') { |
if ($flag_editable AND $supp_trad == 'oui') { // Ne plus lier a un groupe de trad |
spip_query("UPDATE spip_articles SET id_trad = '0' WHERE id_article = $id_article"); |
|
// Verifier si l'ancien groupe ne comporte plus qu'un seul article. Alors mettre a zero. |
$result_autres_trad= spip_query("SELECT COUNT(id_article) AS total FROM spip_articles WHERE id_trad = $id_trad"); |
if ($row = spip_fetch_array($result_autres_trad)) |
$nombre_autres_trad = $row["total"]; |
if ($nombre_autres_trad == 1) |
spip_query("UPDATE spip_articles SET id_trad = '0' WHERE id_trad = $id_trad"); |
|
$id_trad = 0; |
} |
|
// Changer article de reference de la trad |
if ($id_trad_new = intval($id_trad_new) |
AND $id_trad_old = intval($id_trad_old) |
AND $connect_statut=='0minirezo' |
AND $connect_toutes_rubriques) { |
spip_query("UPDATE spip_articles SET id_trad = $id_trad_new WHERE id_trad = $id_trad_old"); |
$id_trad = $id_trad_new; |
} |
|
if ($flag_editable AND $lier_trad > 0) { // Lier a un groupe de trad |
$query_lier = "SELECT id_trad FROM spip_articles WHERE id_article=$lier_trad"; |
$result_lier = spip_query($query_lier); |
if ($row = spip_fetch_array($result_lier)) { |
$id_lier = $row['id_trad']; |
|
if ($id_lier == 0) { // Si l'article vise n'a pas deja de traduction, creer nouveau id_trad |
$nouveau_trad = $lier_trad; |
} |
else { |
if ($id_lier == $id_trad) $err = "<div>"._T('trad_deja_traduit')."</div>"; |
$nouveau_trad = $id_lier; |
} |
|
spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_article = $lier_trad"); |
if ($id_lier > 0) spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_trad = $id_lier"); |
spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_article = $id_article"); |
if ($id_trad > 0) spip_query("UPDATE spip_articles SET id_trad = $nouveau_trad WHERE id_trad = $id_trad"); |
|
$id_trad = $nouveau_trad; |
} |
else |
$err .= "<div>"._T('trad_article_inexistant')."</div>"; |
|
if ($err) echo "<font color='red' size=2' face='verdana,arial,helvetica,sans-serif'>$err</font>"; |
} |
|
|
// Afficher la liste des traductions |
if ($id_trad != 0) { |
$query_trad = "SELECT id_article, titre, lang, statut FROM spip_articles WHERE id_trad = $id_trad"; |
$result_trad = spip_query($query_trad); |
|
|
$table=''; |
while ($row = spip_fetch_array($result_trad)) { |
$vals = ''; |
$id_article_trad = $row["id_article"]; |
$titre_trad = $row["titre"]; |
$lang_trad = $row["lang"]; |
$statut_trad = $row["statut"]; |
|
changer_typo($lang_trad); |
$titre_trad = "<span $dir_lang>$titre_trad</span>"; |
|
if ($ifond == 1) { |
$ifond = 0; |
$bgcolor = "white"; |
} else { |
$ifond = 1; |
$bgcolor = $couleur_claire; |
} |
|
|
$vals[] = http_img_pack("puce-".puce_statut($statut_trad).'.gif', "", "width='7' height='7' border='0' NAME='statut'"); |
|
if ($id_article_trad == $id_trad) { |
$vals[] = http_img_pack('langues-12.gif', "", "width='12' height='12' border='0'"); |
$titre_trad = "<b>$titre_trad</b>"; |
} else { |
if ($connect_statut=='0minirezo' |
AND $connect_toutes_rubriques) |
$vals[] = "<a href='articles.php3?id_article=$id_article&id_trad_old=$id_trad&id_trad_new=$id_article_trad'>". |
http_img_pack('langues-off-12.gif', _T('trad_reference'), "width='12' height='12' border='0'", _T('trad_reference')) . "</a>"; |
else $vals[] = http_img_pack('langues-off-12.gif', "", "width='12' height='12' border='0'"); |
} |
|
$ret .= "</td>"; |
|
$s = typo($titre_trad); |
if ($id_article_trad != $id_article) |
$s = "<a href='articles.php3?id_article=$id_article_trad'>$s</a>"; |
if ($id_article_trad == $id_trad) |
$s .= " "._T('trad_reference'); |
|
$vals[] = $s; |
$vals[] = traduire_nom_langue($lang_trad); |
$table[] = $vals; |
} |
|
// changer_typo($spip_lang); (probleme d'affichage rtl?) |
|
// bloc traductions |
if (count($vals) > 0) { |
|
echo "<div class='liste'>"; |
bandeau_titre_boite2(_T('trad_article_traduction'),''); |
echo "<table width='100%' cellspacing='0' border='0' cellpadding='2'>"; |
//echo "<tr bgcolor='#eeeecc'><td colspan='4' class='serif2'><b>"._T('trad_article_traduction')."</b></td></tr>"; |
|
$largeurs = array(7, 12, '', 100); |
$styles = array('', '', 'arial2', 'arial2'); |
afficher_liste($largeurs, $table, $styles); |
|
echo "</table>"; |
echo "</div>"; |
|
} |
|
changer_typo($langue_article); |
} |
|
echo debut_block_invisible('lier_traductions'); |
|
echo "<table width='100%'><tr>"; |
if ($flag_editable AND $options == "avancees" AND !$ret) { |
// Formulaire pour lier a un article |
echo "<td class='arial2' width='60%'>"; |
$lien = $GLOBALS['clean_link']; |
$lien->delVar($nom_select); |
$lien = $lien->getUrl(); |
|
echo "<form action='$lien' method='post' style='margin:0px; padding:0px;'>"; |
echo _T('trad_lier'); |
echo "<div align='$spip_lang_right'><input type='text' class='fondl' name='lier_trad' size='5'> <INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondl'></div>"; |
echo "</form>"; |
echo "</td>\n"; |
echo "<td background='' width='10'> </td>"; |
echo "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"; |
echo "<td background='' width='10'> </td>"; |
} |
echo "<td>"; |
icone_horizontale(_T('trad_new'), "articles_edit.php3?new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique", "traductions-24.gif", "creer.gif"); |
echo "</td>"; |
if ($flag_editable AND $options == "avancees" AND $ret) { |
echo "<td background='' width='10'> </td>"; |
echo "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"; |
echo "<td background='' width='10'> </td>"; |
echo "<td>"; |
icone_horizontale(_T('trad_delier'), "articles.php3?id_article=$id_article&supp_trad=oui", "traductions-24.gif", "supprimer.gif"); |
echo "</td>\n"; |
} |
|
echo "</tr></table>"; |
|
echo fin_block(); |
} |
|
fin_cadre_enfonce(); |
} |
|
|
|
////////////////////////////////////////////////////// |
// Modifier le statut de l'article |
// |
|
|
?> |
<script type='text/javascript'> |
<!-- |
function puce_statut(selection){ |
if (selection=="publie"){ |
return "puce-verte.gif"; |
} |
if (selection=="prepa"){ |
return "puce-blanche.gif"; |
} |
if (selection=="prop"){ |
return "puce-orange.gif"; |
} |
if (selection=="refuse"){ |
return "puce-rouge.gif"; |
} |
if (selection=="poubelle"){ |
return "puce-poubelle.gif"; |
} |
} |
// --> |
</script> |
<?php |
|
if ($connect_statut == '0minirezo' AND acces_rubrique($rubrique_article)) { |
echo "<FORM ACTION='articles.php3' METHOD='get'>"; |
debut_cadre_relief("racine-site-24.gif"); |
echo "<CENTER>"; |
|
echo "<INPUT TYPE='Hidden' NAME='id_article' VALUE=\"$id_article\">"; |
|
echo "<B>"._T('texte_article_statut')."</B> "; |
|
// $statut_url_javascript="\"articles.php3?id_article=$id_article&methode=image&alea=\"+Math.random()+\"&statut_nouv=\"+options[selectedIndex].value"; |
$statut_url_javascript="'" . _DIR_IMG_PACK . "' + puce_statut(options[selectedIndex].value);"; |
echo "<SELECT NAME='statut_nouv' SIZE='1' CLASS='fondl' onChange=\"document.statut.src=$statut_url_javascript; setvisibility('valider_statut', 'visible');\">"; |
echo "<OPTION" . mySel("prepa", $statut_article) ." style='background-color: white'>"._T('texte_statut_en_cours_redaction')."\n"; |
echo "<OPTION" . mySel("prop", $statut_article) . " style='background-color: #FFF1C6'>"._T('texte_statut_propose_evaluation')."\n"; |
echo "<OPTION" . mySel("publie", $statut_article) . " style='background-color: #B4E8C5'>"._T('texte_statut_publie')."\n"; |
echo "<OPTION" . mySel("poubelle", $statut_article) |
. http_style_background('rayures-sup.gif') . '>' ._T('texte_statut_poubelle')."\n"; |
echo "<OPTION" . mySel("refuse", $statut_article) . " style='background-color: #FFA4A4'>"._T('texte_statut_refuse')."\n"; |
echo "</SELECT>"; |
|
echo " ". http_img_pack("puce-".puce_statut($statut_article).'.gif', "", "border='0' NAME='statut'") . " "; |
|
// echo "<noscript><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'></noscript>"; |
echo "<span class='visible_au_chargement' id='valider_statut'>"; |
echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>"; |
echo "</span>"; |
echo aide ("artstatut"); |
echo "</CENTER>"; |
fin_cadre_relief(); |
echo "</FORM>"; |
} |
|
|
|
////////////////////////////////////////////////////// |
// Corps de l'article |
// |
|
echo "\n\n<div align='justify' style='padding: 10px;'>"; |
|
if ($virtuel) { |
debut_boite_info(); |
echo _T('info_renvoi_article')." ".propre("<center>[->$virtuel]</center>"); |
fin_boite_info(); |
} |
else { |
$revision_nbsp = $activer_revision_nbsp; |
|
if (strlen($chapo) > 0) { |
echo "<div $dir_lang style='font-size: small;'><b>"; |
echo propre($chapo); |
echo "</b></div>\n\n"; |
} |
|
echo "<div $dir_lang style='font-size: small;'>"; |
# echo reduire_image(propre($texte), 500,10000); |
echo propre($texte); |
echo "<br clear='both' />"; |
echo "</div>"; |
|
if ($ps) { |
echo debut_cadre_enfonce(); |
echo "<div $dir_lang><font size=2 face='Verdana,Arial,Sans,sans-serif'>"; |
echo justifier("<b>"._T('info_ps')."</b> ".propre($ps)); |
echo "</font></div>"; |
echo fin_cadre_enfonce(); |
} |
$revision_nbsp = false; |
|
if ($les_notes) { |
echo debut_cadre_relief(); |
echo "<div $dir_lang class='arial11'>"; |
echo justifier("<b>"._T('info_notes')." :</b> ".$les_notes); |
echo "</div>"; |
echo fin_cadre_relief(); |
} |
|
if ($champs_extra AND $extra) { |
include_ecrire("inc_extra.php3"); |
extra_affichage($extra, "articles"); |
} |
} |
|
// |
// Bouton "modifier cet article" |
// |
|
if ($flag_editable) { |
echo "\n\n<div align='$spip_lang_right'><br>"; |
|
if ($date_diff >= 0 AND $date_diff < 60 AND $auteur_modif > 0 AND $auteur_modif != $connect_id_auteur) { |
$query_auteur = "SELECT * FROM spip_auteurs WHERE id_auteur='$auteur_modif'"; |
$result_auteur = spip_query($query_auteur); |
while ($row_auteur = spip_fetch_array($result_auteur)) { |
$nom_auteur_modif = typo($row_auteur["nom"]); |
} |
icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "warning-24.gif", ""); |
echo "<font face='arial,helvetica,sans-serif' size=1>"._T('texte_travail_article', array('nom_auteur_modif' => $nom_auteur_modif, 'date_diff' => $date_diff))."</font>"; |
echo aide("artmodif"); |
} |
else { |
icone(_T('icone_modifier_article'), "articles_edit.php3?id_article=$id_article", "article-24.gif", "edit.gif"); |
} |
|
echo "</div>"; |
} |
|
|
|
|
|
// |
// Documents associes a l'article |
// |
|
if ($spip_display != 4) afficher_documents_non_inclus($id_article, "article", $flag_editable); |
|
// |
// "Demander la publication" |
// |
|
if ($flag_auteur AND $statut_article == 'prepa') { |
echo "<P>"; |
debut_cadre_relief(); |
echo "<center>"; |
echo "<B>"._T('texte_proposer_publication')."</B>"; |
echo aide ("artprop"); |
bouton(_T('bouton_demande_publication'), "articles.php3?id_article=$id_article&statut_nouv=prop"); |
echo "</center>"; |
fin_cadre_relief(); |
} |
|
echo "</div>"; |
|
echo "</div>"; |
fin_cadre_relief(); |
|
// |
// Forums |
// |
|
echo "<BR><BR>"; |
|
$forum_retour = urlencode("articles.php3?id_article=$id_article"); |
|
|
echo "\n<div align='center'>"; |
icone(_T('icone_poster_message'), "forum_envoi.php3?statut=prive&adresse_retour=".$forum_retour."&id_article=$id_article&titre_message=".urlencode($titre), "forum-interne-24.gif", "creer.gif"); |
echo "</div>"; |
|
echo "<P align='$spip_lang_left'>"; |
|
|
$query_forum = "SELECT COUNT(*) AS cnt FROM spip_forum WHERE statut='prive' AND id_article='$id_article' AND id_parent=0"; |
$result_forum = spip_query($query_forum); |
$total = 0; |
if ($row = spip_fetch_array($result_forum)) $total = $row["cnt"]; |
|
if (!$debut) $debut = 0; |
$total_afficher = 8; |
if ($total > $total_afficher) { |
echo "<div class='serif2' align='center'>"; |
for ($i = 0; $i < $total; $i = $i + $total_afficher){ |
$y = $i + $total_afficher - 1; |
if ($i == $debut) |
echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> "; |
else |
echo "[<A HREF='articles.php3?id_article=$id_article&debut=$i'>$i-$y</A>] "; |
} |
echo "</div>"; |
} |
|
|
|
$query_forum = "SELECT * FROM spip_forum WHERE statut='prive' AND id_article='$id_article' AND id_parent=0 ORDER BY date_heure DESC LIMIT $debut,$total_afficher"; |
$result_forum = spip_query($query_forum); |
afficher_forum($result_forum, $forum_retour); |
|
|
if (!$debut) $debut = 0; |
$total_afficher = 8; |
if ($total > $total_afficher) { |
echo "<div class='serif2' align='center'>"; |
for ($i = 0; $i < $total; $i = $i + $total_afficher){ |
$y = $i + $total_afficher - 1; |
if ($i == $debut) |
echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> "; |
else |
echo "[<A HREF='articles.php3?id_article=$id_article&debut=$i'>$i-$y</A>] "; |
} |
echo "</div>"; |
} |
|
|
echo "</div>\n"; |
|
fin_page(); |
|
// Taches lentes |
if ($ok_nouveau_statut) { |
@flush(); |
calculer_rubriques(); |
if ($statut_nouv == 'publie' AND $statut_ancien != $statut_nouv) { |
include_ecrire("inc_mail.php3"); |
envoyer_mail_publication($id_article); |
} |
if ($statut_nouv == "prop" AND $statut_ancien != $statut_nouv AND $statut_ancien != 'publie') { |
include_ecrire("inc_mail.php3"); |
envoyer_mail_proposition($id_article); |
} |
} |
|
?> |
|