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

Interface des fragments Ajax: un formulaire pour exécuter le script...

Interface des fragments Ajax: un formulaire pour exécuter le script action/F.php est à présent construit par une fonction surchargeable, inc_F, définie par défaut comme inc_F_dist dans le fichier inc/F.php. Elle est en particulier le résultat intégral du script fragment/F.php destiné à etre appelé en mode Ajax. Elle doit préalablement avoir été appelée en mode normal, son résultat comportant alors une balise initiale englobante dont l'attribut Id commencera par F,ce qui repère la greffe opérée par Ajax.

Première tranche: les fragments appelés explicitement dans articles.php.
parent fe87aced
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -421,8 +421,11 @@ ecrire/inc/boutons.php -text ...@@ -421,8 +421,11 @@ ecrire/inc/boutons.php -text
ecrire/inc/chercher_logo.php -text ecrire/inc/chercher_logo.php -text
ecrire/inc/chercher_rubrique.php -text ecrire/inc/chercher_rubrique.php -text
ecrire/inc/cookie.php -text ecrire/inc/cookie.php -text
ecrire/inc/dater.php -text
ecrire/inc/discuter.php -text
ecrire/inc/distant.php -text ecrire/inc/distant.php -text
ecrire/inc/drapeau_edition.php -text ecrire/inc/drapeau_edition.php -text
ecrire/inc/editer_auteurs.php -text
ecrire/inc/filtres_images.php -text ecrire/inc/filtres_images.php -text
ecrire/inc/forum_insert.php -text ecrire/inc/forum_insert.php -text
ecrire/inc/gadgets.php -text ecrire/inc/gadgets.php -text
...@@ -452,10 +455,12 @@ ecrire/inc/minipres.php -text ...@@ -452,10 +455,12 @@ ecrire/inc/minipres.php -text
ecrire/inc/petition.php -text ecrire/inc/petition.php -text
ecrire/inc/plugin.php -text ecrire/inc/plugin.php -text
ecrire/inc/popularites.php -text ecrire/inc/popularites.php -text
ecrire/inc/referencer_traduction.php -text
ecrire/inc/sites_voir.php -text ecrire/inc/sites_voir.php -text
ecrire/inc/suivi_versions.php -text ecrire/inc/suivi_versions.php -text
ecrire/inc/syndic.php -text ecrire/inc/syndic.php -text
ecrire/inc/utils.php -text ecrire/inc/utils.php -text
ecrire/inc/virtualiser.php -text
ecrire/lang/ecrire_br.php -text ecrire/lang/ecrire_br.php -text
ecrire/lang/ecrire_bs.php -text ecrire/lang/ecrire_bs.php -text
ecrire/lang/ecrire_cs.php -text ecrire/lang/ecrire_cs.php -text
......
...@@ -17,14 +17,10 @@ include_spip('inc/texte'); ...@@ -17,14 +17,10 @@ include_spip('inc/texte');
include_spip('inc/rubriques'); include_spip('inc/rubriques');
include_spip('inc/actions'); include_spip('inc/actions');
include_spip('inc/mots'); include_spip('inc/mots');
include_spip('inc/date');
include_spip('inc/petition'); include_spip('inc/petition');
include_spip('inc/forum');
include_spip('inc/documents'); include_spip('inc/documents');
include_spip('base/abstract_sql'); include_spip('base/abstract_sql');
include_spip('fragments/editer_auteurs');
include_spip('fragments/referencer_traduction');
include_spip('fragments/virtualiser');
include_spip('fragments/discuter');
// http://doc.spip.org/@exec_articles_dist // http://doc.spip.org/@exec_articles_dist
function exec_articles_dist() function exec_articles_dist()
...@@ -113,7 +109,7 @@ if ($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable) ...@@ -113,7 +109,7 @@ if ($options == "avancees" && $connect_statut=='0minirezo' && $flag_editable)
{ {
boites_de_config_articles($id_article); boites_de_config_articles($id_article);
boite_article_virtuel($id_article, $virtuel); echo boite_article_virtuel($id_article, $virtuel);
} }
// //
...@@ -143,23 +139,14 @@ debut_cadre_relief(); ...@@ -143,23 +139,14 @@ debut_cadre_relief();
$modif = titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique); $modif = titres_articles($titre, $statut_article,$surtitre, $soustitre, $descriptif, $url_site, $nom_site, $flag_editable, $id_article, $id_rubrique);
echo "<div class='serif' align='$spip_lang_left'>"; echo "<div class='serif' align='$spip_lang_left'>";
debut_cadre_couleur(); $f = charger_fonction('dater', 'inc');
echo formulaire_dater($id_article, $flag_editable, $statut_article, $date, $date_redac); echo $f($id_article, $flag_editable, $statut_article, $date, $date_redac);
fin_cadre_couleur();
// $f = charger_fonction('editer_auteurs', 'inc');
// Liste des auteurs de l'article echo $f($id_article, $flag_editable, $cherche_auteur, $ids);
//
echo "\n<div id='editer_auteurs-$id_article'>";
echo formulaire_editer_auteurs($cherche_auteur, $ids, $id_article,$flag_editable);
echo "</div>";
//
// Liste des mots-cles de l'article
//
if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') { if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') {
echo formulaire_mots('article', $id_article, $cherche_mot, $select_groupe, $flag_editable); echo formulaire_mots('article', $id_article, $cherche_mot, $select_groupe, $flag_editable);
...@@ -170,7 +157,8 @@ if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') { ...@@ -170,7 +157,8 @@ if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') {
if (($GLOBALS['meta']['multi_articles'] == 'oui') if (($GLOBALS['meta']['multi_articles'] == 'oui')
OR (($GLOBALS['meta']['multi_rubriques'] == 'oui') AND ($GLOBALS['meta']['gerer_trad'] == 'oui'))) { OR (($GLOBALS['meta']['multi_rubriques'] == 'oui') AND ($GLOBALS['meta']['gerer_trad'] == 'oui'))) {
echo formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $flag_editable, $trad_err); $f = charger_fonction('referencer_traduction', 'inc');
echo $f($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err);
} }
echo pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')); echo pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''));
...@@ -190,10 +178,6 @@ if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') { ...@@ -190,10 +178,6 @@ if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') {
echo "</div>"; echo "</div>";
} }
//
// Documents associes a l'article
//
if ($spip_display != 4) { if ($spip_display != 4) {
echo formulaire_joindre($id_article, "article", 'articles', $flag_editable); echo formulaire_joindre($id_article, "article", 'articles', $flag_editable);
...@@ -206,17 +190,15 @@ if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') { ...@@ -206,17 +190,15 @@ if ($options == 'avancees' AND $GLOBALS['meta']["articles_mots"] != 'non') {
echo "</div>"; echo "</div>";
fin_cadre_relief(); fin_cadre_relief();
echo "<br /><br />"; // forum interne
$tm = rawurlencode($titre); $tm = rawurlencode($titre);
echo "\n<div align='center'>"; $f = charger_fonction('discuter', 'inc');
icone(_T('icone_poster_message'), generer_url_ecrire("forum_envoi","statut=prive&id_article=$id_article&titre_message=$tm&url=" . generer_url_retour("articles","id_article=$id_article")), "forum-interne-24.gif", "creer.gif");
echo "</div><br />";
$f = charger_fonction('discuter', 'fragments'); echo "<br /><br />\n<div align='center'>",
echo "<div id='forum'>"; icone(_T('icone_poster_message'), generer_url_ecrire("forum_envoi","statut=prive&id_article=$id_article&titre_message=$tm&url=" . generer_url_retour("articles","id_article=$id_article")), "forum-interne-24.gif", "creer.gif", false),
echo $f($id_article, $debut); "</div><br />",
echo "</div>"; $f($id_article, false, $debut);
fin_page(); fin_page();
...@@ -336,27 +318,20 @@ function boites_de_config_articles($id_article) ...@@ -336,27 +318,20 @@ function boites_de_config_articles($id_article)
function boite_article_virtuel($id_article, $virtuel) function boite_article_virtuel($id_article, $virtuel)
{ {
debut_cadre_relief("site-24.gif"); $f = charger_fonction('virtualiser', 'inc');
echo "\n<div class='verdana1' style='text-align: center;'>"; return debut_cadre_relief("site-24.gif", true)
if ($virtuel) . "\n<div class='verdana1' style='text-align: center;'>"
echo bouton_block_visible("redirection"); . ($virtuel ? bouton_block_visible("redirection") : bouton_block_invisible("redirection"))
else . '<b>'
echo bouton_block_invisible("redirection"); ._T('bouton_redirection')
. '</b>'
echo '<b>', _T('bouton_redirection'), '</b>'; . aide ("artvirt")
echo aide ("artvirt"); . "</div>"
echo "</div>"; . ($virtuel ? debut_block_visible("redirection") : debut_block_invisible("redirection"))
. $f($id_article, false, $virtuel, "articles", "id_article=$id_article")
if ($virtuel) . fin_block()
echo debut_block_visible("redirection"); . fin_cadre_relief(true);
else
echo debut_block_invisible("redirection");
echo "<div id='virtualiser-$id_article'>";
echo formulaire_virtualiser($id_article, $virtuel, "articles", "id_article=$id_article");
echo "</div>";
echo fin_block();
fin_cadre_relief();
} }
// http://doc.spip.org/@meme_rubrique_articles // http://doc.spip.org/@meme_rubrique_articles
...@@ -469,149 +444,6 @@ function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip ...@@ -469,149 +444,6 @@ function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip
} }
// http://doc.spip.org/@formulaire_dater
function formulaire_dater($id_article, $flag_editable, $statut_article, $date, $date_redac)
{
global $spip_lang_left, $spip_lang_right, $options;
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];
}
if ($flag_editable AND $options == 'avancees') {
if ($statut_article == 'publie') {
$js = "onchange=\"findObj_forcer('valider_date').style.visibility='visible';\"";
$res = ajax_action_auteur("dater",
"$id_article",
'articles',
"id_article=$id_article",
(
bouton_block_invisible("datepub") .
"<b><span class='verdana1'>".
_T('texte_date_publication_article').
'</span> ' .
majuscules(affdate($date)) .
"</b>".
aide('artdate') .
debut_block_invisible("datepub") .
"<div style='margin: 5px; margin-$spip_lang_left: 20px;'>" .
afficher_jour($jour, "name='jour' size='1' class='fondl' $js", true) .
afficher_mois($mois, "name='mois' size='1' class='fondl' $js", true) .
afficher_annee($annee, "name='annee' size='1' class='fondl' $js") .
' - ' .
afficher_heure($heure, "name='heure' size='1' class='fondl' $js") .
afficher_minute($minute, "name='minute' size='1' class='fondl' $js") .
"<span class='visible_au_chargement' id='valider_date'>" .
" &nbsp;\n<input type='submit' class='fondo' value='".
_T('bouton_changer')."' />" .
"</span>" .
"</div>" .
fin_block()));
} else {
$res = "\n<div><b> <span class='verdana1'>"
. _T('texte_date_creation_article')
. "</span>\n"
. majuscules(affdate($date))."</b>".aide('artdate')."</div>";
}
$possedeDateRedac= ($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00');
if (($options == 'avancees' AND $GLOBALS['meta']["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'));
$js = "\"findObj_forcer('valider_date_redac').style.visibility='visible';\"";
$res .= ajax_action_auteur("dater",
"$id_article",
'articles',
"id_article=$id_article",
(bouton_block_invisible('dateredac') .
"<b>" .
"<span class='verdana1'>" .
majuscules(_T('texte_date_publication_anterieure')) .
'</span> '.
$date_affichee .
" " .
aide('artdate_redac') .
"</b>" .
debut_block_invisible('dateredac') .
"<div style='margin: 5px; margin-$spip_lang_left: 20px;'>" .
'<table cellpadding="0" cellspacing="0" border="0" width="100%">' .
'<tr><td align="$spip_lang_left">' .
'<input type="radio" name="avec_redac" value="non" id="avec_redac_on"' .
($possedeDateRedac ? '' : ' checked="checked"') .
" onClick=$js" .
' /> <label for="avec_redac_on">'.
_T('texte_date_publication_anterieure_nonaffichee').
'</label>' .
'<br /><input type="radio" name="avec_redac" value="oui" id="avec_redac_off"' .
(!$possedeDateRedac ? '' : ' checked="checked"') .
" onClick=$js /> <label for='avec_redac_off'>" .
_T('bouton_radio_afficher').
' :</label> ' .
afficher_jour($jour_redac, "name='jour_redac' class='fondl' onchange=$js", true) .
afficher_mois($mois_redac, "name='mois_redac' class='fondl' onchange=$js", true) .
"<input type='text' name='annee_redac' class='fondl' value='".$annee_redac."' size='5' maxlength='4' onclick=$js />" .
'<div align="center">' .
afficher_heure($heure_redac, "name='heure_redac' class='fondl' onchange=$js", true) .
afficher_minute($minute_redac, "name='minute_redac' class='fondl' onchange=$js", true) .
"</div>\n" .
'</td><td align="$spip_lang_right">' .
"<span class='visible_au_chargement' id='valider_date_redac'>" .
'<input type="submit" class="fondo" value="'.
_T('bouton_changer').'" />' .
"</span>" .
'</td></tr>' .
'</table>' .
'</div>' .
fin_block()) #, " method='post'"
);
}
} else {
$res .= "<div style='text-align:center;'><b> <span class='verdana1'>"
. (($statut_article == 'publie')
? _T('texte_date_publication_article')
: _T('texte_date_creation_article'))
. "</span> "
. majuscules(affdate($date))."</b>".aide('artdate')."</div>";
if ($possedeDateRedac) {
$res .= "<div style='text-align:center;'><b><span class='verdana1'>"
. _T('texte_date_publication_anterieure')
. "</span> "
. ' : '
. majuscules(affdate($date_redac))
. "</b>"
. aide('artdate_redac')
. "</div>";
}
}
return ($flag_editable === 'ajax')
? $res
: "<div id='dater-$id_article'>$res</div>";
}
// http://doc.spip.org/@afficher_corps_articles // http://doc.spip.org/@afficher_corps_articles
function afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra) function afficher_corps_articles($virtuel, $chapo, $texte, $ps, $extra)
......
...@@ -30,10 +30,7 @@ function fragments_dater_dist() ...@@ -30,10 +30,7 @@ function fragments_dater_dist()
$date = $row["date"]; $date = $row["date"];
$date_redac = $row["date_redac"]; $date_redac = $row["date_redac"];
include_spip('inc/actions'); $f = charger_fonction('dater', 'inc');
include_spip('exec/articles'); return $f($id_article, 'ajax', $statut_article, $date, $date_redac);
return formulaire_dater($id_article, 'ajax', $statut_article, $date, $date_redac);
} }
?> ?>
...@@ -12,60 +12,11 @@ ...@@ -12,60 +12,11 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/forum'); function fragments_discuter_dist()
include_spip('inc/presentation');
// http://doc.spip.org/@formulaire_discuter
function formulaire_discuter($query, $total, $debut, $total_afficher, $script, $args, $mute=false)
{
$res = $nav ='';
if ($total > $total_afficher) {
$evt = $_COOKIE['spip_accepte_ajax'] == 1;
$nav = "<div class='serif2' align='center'>";
for ($i = 0; $i < $total; $i = $i + $total_afficher){
$y = $i + $total_afficher - 1;
if ($i == $debut)
$nav .= "<font size='3'><b>[$i-$y]</b></font> ";
else {
$a = "$args&debut=$i";
if (!$evt) {
$h = generer_url_ecrire($script, $a);
} else {
$h = generer_url_ecrire('discuter', $a);
$evt = "\nonclick='return AjaxSqueeze(\"$h\",\n\t\"forum\")'";
}
$nav .= "[<a href='$h#forum'$evt>$i-$y</a>] ";
}
}
$nav .= "</div>";
}
$res = $nav
. afficher_forum($query, $script, $args, $mute)
. "<br />"
. $nav;
return $res;
}
// http://doc.spip.org/@fragments_discuter_dist
function fragments_discuter_dist($id_article=-1, $debut=-1)
{ {
if ($debut == -1) $debut = _request('debut'); $debut = _request('debut');
if ($id_article == -1) $id_article = _request('id_article'); $id_article = _request('id_article');
$f = charger_fonction('discuter', 'inc');
$debut = intval($debut); return $f($id_article, 'ajax', $debut);
$id_article = intval($id_article);
$row = spip_fetch_array(spip_query("SELECT COUNT(*) AS cnt FROM spip_forum WHERE statut='prive' AND id_article='$id_article' AND id_parent=0"));
$total = $row["cnt"];
if (!$total) return '';
$total_afficher = 8;
$forum = spip_query("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" );
# " LIMIT $total_afficher OFFSET $debut" # PG
return formulaire_discuter($forum, $total, $debut, $total_afficher, 'articles', "id_article=$id_article");
} }
?> ?>
...@@ -12,275 +12,17 @@ ...@@ -12,275 +12,17 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/actions');
function fragments_editer_auteurs_dist() function fragments_editer_auteurs_dist()
{ {
$id_article = intval(_request('id_article')); $id_article = intval(_request('id_article'));
if ($GLOBALS['connect_toutes_rubriques']) // pour eviter SQL if (! acces_article($id_article)) {
$droit = true;
else $droit = acces_article($id_article);
if (!$droit) {
spip_log("Tentative d'intrusion de " . $GLOBALS['auteur_session']['nom'] . " dans " . $GLOBALS['exec']); spip_log("Tentative d'intrusion de " . $GLOBALS['auteur_session']['nom'] . " dans " . $GLOBALS['exec']);
include_spip('inc/minipres'); include_spip('inc/minipres');
minipres(_T('info_acces_interdit')); minipres(_T('info_acces_interdit'));
} }
return formulaire_editer_auteurs(_request('cherche_auteur'), _request('ids'), $id_article, 'ajax'); $f = charger_fonction('editer_auteurs', 'inc');
} return $f($id_article, 'ajax', _request('cherche_auteur'), _request('ids'));
function formulaire_editer_auteurs($cherche_auteur, $ids, $id_article, $flag_editable)
{
global $spip_lang_left, $spip_lang_right, $options;
//
// complement de action/editer_auteurs.php pour notifier la recherche d'auteur
//
$bouton_creer_auteur = $GLOBALS['connect_toutes_rubriques'];
if ($cherche_auteur) {
$reponse ="<p align='$spip_lang_left'>"
. debut_boite_info(true)
. rechercher_auteurs_articles($cherche_auteur, $ids, $id_article);
if ($bouton_creer_auteur) {
$reponse .="<div style='width: 200px;'>"
. icone_horizontale(_T('icone_creer_auteur'), generer_url_ecrire("auteur_infos","ajouter_id_article=$id_article&nom=" . rawurlencode($cherche_auteur). "&redirect=" . generer_url_retour("articles","id_article=$id_article")), "redacteurs-24.gif", "creer.gif", false)
. "</div> ";
$bouton_creer_auteur = false;
}
$reponse .= fin_boite_info(true)
. '</p>';
} else $reponse ='';
//
// Afficher les auteurs
//
$les_auteurs = array();
$result = spip_query("SELECT id_auteur FROM spip_auteurs_articles WHERE id_article=$id_article");
while ($row = spip_fetch_array($result))
$les_auteurs[]= $row['id_auteur'];
if ($les_auteurs = join(',', $les_auteurs))
$reponse .= afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs);
//
// Ajouter un auteur
//
$res = '';
if ($flag_editable AND $options == 'avancees') {
if ($bouton_creer_auteur) {
$res = "<div style='width:170px;'><span class='verdana1'><b>"
. icone_horizontale(_T('icone_creer_auteur'), generer_url_ecrire("auteur_infos","ajouter_id_article=$id_article&redirect=" .generer_url_retour("articles","id_article=$id_article")), "redacteurs-24.gif", "creer.gif", false)
. "</b></span></div>\n";
}
$res = "<div style='float:$spip_lang_right; width:280px;position:relative;display:inline;'>"
. ajouter_auteurs_articles($id_article, $les_auteurs, $bouton_creer_auteur)
."</div>\n"
. $res;
}
$bouton = (!$flag_editable
? ''
: (($flag_editable === 'ajax')
? bouton_block_visible("auteursarticle")
: bouton_block_invisible("auteursarticle")))
. _T('texte_auteurs')
. aide("artauteurs");
$res = '<div>&nbsp;</div>' // pour placer le gif patienteur
. debut_cadre_enfonce("auteur-24.gif", true, "", $bouton)
. $reponse
. ($flag_editable === 'ajax' ?
debut_block_visible("auteursarticle") :
debut_block_invisible("auteursarticle"))
. $res
. fin_block()
. fin_cadre_enfonce(true);
return $res;
}
// http://doc.spip.org/@rechercher_auteurs_articles
function rechercher_auteurs_articles($cherche_auteur, $ids, $id_article)
{
if (!$ids) {
return "<B>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</B><BR />";
}
elseif ($ids == -1) {
return "<B>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</B><BR />";
}
elseif (preg_match('/^\d+$/',$ids)) {
$row = spip_fetch_array(spip_query("SELECT nom FROM spip_auteurs WHERE id_auteur=$ids"));
return "<B>"._T('texte_ajout_auteur')."</B><BR /><UL><LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><B><FONT SIZE=3>".typo($row['nom'])."</FONT></B></UL>";
}
else {
$ids = preg_replace('/[^0-9,]/','',$ids); // securite
$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN ($ids) ORDER BY nom");
$res = "<B>"
. _T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))
. "</B><BR />"
. "<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'];
$res .= "<li><b>".typo($nom_auteur)."</b>";
if ($email_auteur) $res .= " ($email_auteur)";
$res .= " | "
. ajax_action_auteur('editer_auteurs', "$id_article,$id_auteur","articles","id_article=$id_article", array(_T('lien_ajouter_auteur')));
if (trim($bio_auteur)) {
$res .= "<br />".couper(propre($bio_auteur), 100)."\n";
}
$res .= "</li>\n";
}
$res .= "</UL>";
return $res;
}
}
// http://doc.spip.org/@afficher_auteurs_articles
function afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs)
{
global $connect_statut, $options,$connect_id_auteur;
$table = array();
$result = spip_query("SELECT * FROM spip_auteurs AS A WHERE A.id_auteur IN ($les_auteurs) ORDER BY A.nom");
while ($row = spip_fetch_array($result)) {
$vals = array();
$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';
$vals[] = bonhomme_statut($row);
$vals[] = "<a href='" . generer_url_ecrire('auteurs_edit', "id_auteur=$id_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[] = "&nbsp;";
if ($url_site_auteur) $vals[] = "<A href='$url_site_auteur'>"._T('info_site_min')."</A>";
else $vals[] = "&nbsp;";
$cpt = spip_fetch_array(spip_query("SELECT COUNT(articles.id_article) AS n 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 " . ($connect_statut == "0minirezo" ? "('prepa', 'prop', 'publie', 'refuse')" : "('prop', 'publie')") . " GROUP BY lien.id_auteur"));
$nombre_articles = intval($cpt['n']);
if ($nombre_articles > 1) $vals[] = $nombre_articles.' '._T('info_article_2');
elseif ($nombre_articles == 1) $vals[] = _T('info_1_article');
else $vals[] = "&nbsp;";
if ($flag_editable AND ($connect_id_auteur != $id_auteur OR $connect_statut == '0minirezo') AND $options == 'avancees') {
$vals[] = ajax_action_auteur('editer_auteurs', "$id_article,-$id_auteur",'articles', "id_article=$id_article", array(_T('lien_retirer_auteur')."&nbsp;". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'")));
} else {
$vals[] = "";
}
$table[] = $vals;
}
$largeurs = array('14', '', '', '', '', '', '');
$styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial11', 'arial1');
return "<div class='liste'><table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>"
. afficher_liste($largeurs, $table, $styles)
. "</table></div>\n";
} }
// http://doc.spip.org/@ajouter_auteurs_articles
function ajouter_auteurs_articles($id_article, $les_auteurs)
{
$result = spip_query("SELECT * FROM spip_auteurs WHERE " . (!$les_auteurs ? '' : "id_auteur NOT IN ($les_auteurs) AND ") . "statut!='5poubelle' AND statut!='6forum' AND statut!='nouveau' ORDER BY statut, nom");
if (!$num = spip_num_rows($result)) return '';
$js = "\"findObj_forcer('valider_ajouter_auteur').style.visibility='visible';\"";
return ajax_action_auteur('editer_auteurs', $id_article,'articles', "id_article=$id_article",
(
"<span class='verdana1'><B>"._T('titre_cadre_ajouter_auteur')."&nbsp; </B></span>\n" .
($num > 200
? ("<input type='text' name='cherche_auteur' onClick=$js CLASS='fondl' VALUE='' SIZE='20' />" .
"<span class='visible_au_chargement' id='valider_ajouter_auteur'>\n<input type='submit' value='"._T('bouton_chercher')."' CLASS='fondo' /></span>")
: ("<select name='nouv_auteur' size='1' style='width:150px;' CLASS='fondl' onChange=$js>" .
articles_auteur_select($result) .
"</select>" .
"<span class='visible_au_chargement' id='valider_ajouter_auteur'>" .
" <input type='submit' value='"._T('bouton_ajouter')."' CLASS='fondo'>" .
"</span>"))));
}
// http://doc.spip.org/@articles_auteur_select
function articles_auteur_select($result)
{
global $couleur_claire ;
$statut_old = $premiere_old = $res = '';
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) {
$res .= "\n<OPTION VALUE=\"x\">";
$res .= "\n<OPTION VALUE=\"x\" style='background-color: $couleur_claire;'> $statut";
}
if ($premiere != $premiere_old AND ($statut != _T('info_administrateurs') OR !$premiere_old))
$res .= "\n<OPTION VALUE=\"x\">";
$res .= "\n<OPTION VALUE=\"$id_auteur\">&nbsp;&nbsp;&nbsp;&nbsp;" . supprimer_tags(couper(typo("$nom$email"), 40));
$statut_old = $statut;
$premiere_old = $premiere;
}
return $res;
}
?> ?>
...@@ -12,19 +12,11 @@ ...@@ -12,19 +12,11 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
function fragments_referencer_traduction_dist() function fragments_referencer_traduction_dist()
{ {
include_spip('inc/actions');
$id_article = intval(_request('id_article')); $id_article = intval(_request('id_article'));
if ($GLOBALS['connect_toutes_rubriques']) // pour eviter SQL if (!acces_article($id_article)) {
$droit = true;
else $droit = acces_article($id_article);
if (!$droit) {
spip_log("Tentative d'intrusion de " . $GLOBALS['auteur_session']['nom'] . " dans " . $GLOBALS['exec']); spip_log("Tentative d'intrusion de " . $GLOBALS['auteur_session']['nom'] . " dans " . $GLOBALS['exec']);
include_spip('inc/minipres'); include_spip('inc/minipres');
minipres(_T('info_acces_interdit')); minipres(_T('info_acces_interdit'));
...@@ -32,179 +24,7 @@ function fragments_referencer_traduction_dist() ...@@ -32,179 +24,7 @@ function fragments_referencer_traduction_dist()
$row = spip_fetch_array(spip_query("SELECT id_trad, id_rubrique FROM spip_articles WHERE id_article=$id_article")); $row = spip_fetch_array(spip_query("SELECT id_trad, id_rubrique FROM spip_articles WHERE id_article=$id_article"));
return formulaire_referencer_traduction($id_article, $row['id_rubrique'], $row['id_trad'], 'ajax'); $f = charger_fonction('referencer_traduction', 'inc');
} return $f($id_article, 'ajax', $row['id_rubrique'], $row['id_trad']);
function formulaire_referencer_traduction($id_article, $id_rubrique, $id_trad, $flag_editable, $trad_err='')
{
global $connect_statut, $couleur_claire, $options, $connect_toutes_rubriques, $spip_lang_right, $dir_lang;
$langue_article = spip_fetch_array(spip_query("SELECT lang FROM spip_articles WHERE id_article=$id_article"));
$langue_article = $langue_article['lang'];
$reponse = '';
// Choix langue article
if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $flag_editable) {
$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
$langue_parent = $row['lang'];
if (!$langue_parent)
$langue_parent = $GLOBALS['meta']['langue_site'];
if (!$langue_article)
$langue_article = $langue_parent;
$menu = menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent, 'ajax');
$menu = ajax_action_auteur('referencer_traduction', "$id_article,$id_rubrique","articles","id_article=$id_article", $menu);
$reponse .= debut_cadre_couleur('',true)
. "\n<div style='text-align: center;'>"
. $menu
. "</div>\n"
. fin_cadre_couleur(true);
}
if ($trad_err)
$reponse .= "<div><font color='red' size='2' face='verdana,arial,helvetica,sans-serif'>"._T('trad_deja_traduit'). "</font></div>";
// Afficher la liste des traductions
$table = !$id_trad ? array() : articles_traduction($id_article, $id_trad);
// bloc traductions
if (count($table) > 0) {
$largeurs = array(7, 12, '', 100);
$styles = array('', '', 'arial2', 'arial2');
$liste = "\n<div class='liste'>"
. bandeau_titre_boite2(_T('trad_article_traduction'),'', 'white', 'black', false)
. "<table width='100%' cellspacing='0' border='0' cellpadding='2'>"
. afficher_liste ($largeurs, $table, $styles)
. "</table>"
. "</div>";
}
// changer les globales $dir_lang etc
changer_typo($langue_article);
$form = "<table width='100%'><tr>";
if ($flag_editable AND $options == "avancees" AND !$table) {
// Formulaire pour lier a un article
$form .= "<td class='arial2' width='60%'>"
. ajax_action_auteur("referencer_traduction",
$id_article,
'articles',
"id_article=$id_article",
(_T('trad_lier') .
"\n<input type='text' class='fondl' name='lier_trad' size='5' />\n<input type='submit' value='"._T('bouton_valider')."' class='fondl' />"))
. "</td>\n"
. "<td background='' width='10'> &nbsp; </td>"
. "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"
. "<td background='' width='10'> &nbsp; </td>";
}
$form .= "<td>"
. icone_horizontale(_T('trad_new'), generer_url_ecrire("articles_edit","new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique"), "traductions-24.gif", "creer.gif", false)
. "</td>";
if ($flag_editable AND $options == "avancees" AND $table) {
$clic = _T('trad_delier');
$form .= "<td background='' width='10'> &nbsp; </td>"
. "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"
. "<td background='' width='10'> &nbsp; </td>"
. "<td>"
// la 1ere occurrence de clic ne sert pas en Ajax
. icone_horizontale($clic, ajax_action_auteur("referencer_traduction","$id_article,-$id_trad",'articles', "id_article=$id_article",array($clic)), "traductions-24.gif", "supprimer.gif", false)
. "</td>\n";
}
$form .= "</tr></table>";
if ($GLOBALS['meta']['gerer_trad'] == 'oui')
$bouton = _T('titre_langue_trad_article');
else
$bouton = _T('titre_langue_article');
if ($langue_article)
$bouton .= "&nbsp; (".traduire_nom_langue($langue_article).")";
return ($flag_editable === 'ajax')
?
debut_cadre_enfonce('langues-24.gif', true, "",
bouton_block_visible('languearticle,lier_traductions')
. $bouton)
. debut_block_visible('languearticle')
. $reponse
. fin_block()
. $liste
. debut_block_visible('lier_traductions')
. $form
. fin_block()
. fin_cadre_enfonce(true)
. fin_block()
:
"<div id='referencer_traduction-$id_article'>"
. debut_cadre_enfonce('langues-24.gif', true, "",
bouton_block_invisible('languearticle,lier_traductions')
. $bouton)
. debut_block_invisible('languearticle')
. $reponse
. fin_block()
. $liste
. debut_block_invisible('lier_traductions')
. $form
. fin_block()
. fin_cadre_enfonce(true)
. "</div>";
}
// http://doc.spip.org/@articles_traduction
function articles_traduction($id_article, $id_trad)
{
global $connect_toutes_rubriques, $dir_lang;
$result_trad = spip_query("SELECT id_article, id_rubrique, titre, lang, statut FROM spip_articles WHERE id_trad = $id_trad");
$table= array();
while ($row = spip_fetch_array($result_trad)) {
$vals = array();
$id_article_trad = $row["id_article"];
$id_rubrique_trad = $row["id_rubrique"];
$titre_trad = $row["titre"];
$lang_trad = $row["lang"];
$statut_trad = $row["statut"];
changer_typo($lang_trad);
$titre_trad = "<span $dir_lang>$titre_trad</span>";
$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_toutes_rubriques)
$vals[] = http_img_pack('langues-off-12.gif', "", "width='12' height='12' border='0'");
else
$vals[] = ajax_action_auteur("referencer_traduction", "$id_article,$id_trad,$id_article_trad", 'articles', "id_article=$id_article", array(http_img_pack('langues-off-12.gif', _T('trad_reference'), "width='12' height='12' border='0'"), ' title="' . _T('trad_reference') . '"'));
}
$s = typo($titre_trad);
if ($id_article_trad != $id_article)
$s = "<a href='" . generer_url_ecrire("articles","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;
}
return $table;
} }
?> ?>
...@@ -11,38 +11,6 @@ ...@@ -11,38 +11,6 @@
\***************************************************************************/ \***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/actions');
// http://doc.spip.org/@formulaire_virtualiser
function formulaire_virtualiser($id_article, $virtuel, $script, $args)
{
global $spip_lang_right, $spip_lang_left;
if ($virtuel === 'ajax') {
$row = spip_fetch_array(spip_query("SELECT chapo FROM spip_articles WHERE id_article='$id_article'"));
$virtuel = $row['chapo'];
if (substr($virtuel, 0, 1) == '=') {
$virtuel = substr($virtuel, 1);
}
}
$http = ($virtuel ? "" : "http://");
$r = "<input type='text' name='virtuel' class='formo' style='font-size:9px;' value='"
. $http
. $virtuel
. "' size='40' /><br />\n"
. "<font face='Verdana,Arial,Sans,sans-serif' size='2'>"
. "(<b>"._T('texte_article_virtuel')
. "&nbsp;:</b> "
. _T('texte_reference_mais_redirige')
. ")</font>"
. "\n<div align='$spip_lang_right'><input type='submit' class='fondo' value='"
. _T('bouton_changer')
. "' style='font-size:10px' /></div>";
return ajax_action_auteur('virtualiser', $id_article, $script, $args, $r);
}
// http://doc.spip.org/@exec_virtualiser_dist // http://doc.spip.org/@exec_virtualiser_dist
function fragments_virtualiser_dist() function fragments_virtualiser_dist()
...@@ -56,7 +24,13 @@ function fragments_virtualiser_dist() ...@@ -56,7 +24,13 @@ function fragments_virtualiser_dist()
minipres(_T('info_acces_interdit')); minipres(_T('info_acces_interdit'));
} }
return formulaire_virtualiser($id_article, 'ajax', $script, "id_article=$id_article"); $row = spip_fetch_array(spip_query("SELECT chapo FROM spip_articles WHERE id_article='$id_article'"));
} $virtuel = $row['chapo'];
if (substr($virtuel, 0, 1) == '=') {
$virtuel = substr($virtuel, 1);
}
$f = charger_fonction('virtualiser', 'inc');
return $f($id_article, 'ajax', $virtuel, "articles", "id_article=$id_article");
}
?> ?>
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* 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. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/texte');
include_spip('inc/actions');
include_spip('inc/date');
function inc_dater_dist($id_article, $flag_editable, $statut_article, $date, $date_redac)
{
global $spip_lang_left, $spip_lang_right, $options;
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];
}
if ($flag_editable AND $options == 'avancees') {
if ($statut_article == 'publie') {
$js = "onchange=\"findObj_forcer('valider_date').style.visibility='visible';\"";
$res = ajax_action_auteur("dater",
"$id_article",
'articles',
"id_article=$id_article",
(
bouton_block_invisible("datepub") .
"<b><span class='verdana1'>".
_T('texte_date_publication_article').
'</span> ' .
majuscules(affdate($date)) .
"</b>".
aide('artdate') .
debut_block_invisible("datepub") .
"<div style='margin: 5px; margin-$spip_lang_left: 20px;'>" .
afficher_jour($jour, "name='jour' size='1' class='fondl' $js", true) .
afficher_mois($mois, "name='mois' size='1' class='fondl' $js", true) .
afficher_annee($annee, "name='annee' size='1' class='fondl' $js") .
' - ' .
afficher_heure($heure, "name='heure' size='1' class='fondl' $js") .
afficher_minute($minute, "name='minute' size='1' class='fondl' $js") .
"<span class='visible_au_chargement' id='valider_date'>" .
" &nbsp;\n<input type='submit' class='fondo' value='".
_T('bouton_changer')."' />" .
"</span>" .
"</div>" .
fin_block()));
} else {
$res = "\n<div><b> <span class='verdana1'>"
. _T('texte_date_creation_article')
. "</span>\n"
. majuscules(affdate($date))."</b>".aide('artdate')."</div>";
}
$possedeDateRedac= ($annee_redac.'-'.$mois_redac.'-'.$jour_redac != '0000-00-00');
if (($options == 'avancees' AND $GLOBALS['meta']["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'));
$js = "\"findObj_forcer('valider_date_redac').style.visibility='visible';\"";
$res .= ajax_action_auteur("dater",
"$id_article",
'articles',
"id_article=$id_article",
(bouton_block_invisible('dateredac') .
"<b>" .
"<span class='verdana1'>" .
majuscules(_T('texte_date_publication_anterieure')) .
'</span> '.
$date_affichee .
" " .
aide('artdate_redac') .
"</b>" .
debut_block_invisible('dateredac') .
"<div style='margin: 5px; margin-$spip_lang_left: 20px;'>" .
'<table cellpadding="0" cellspacing="0" border="0" width="100%">' .
'<tr><td align="$spip_lang_left">' .
'<input type="radio" name="avec_redac" value="non" id="avec_redac_on"' .
($possedeDateRedac ? '' : ' checked="checked"') .
" onClick=$js" .
' /> <label for="avec_redac_on">'.
_T('texte_date_publication_anterieure_nonaffichee').
'</label>' .
'<br /><input type="radio" name="avec_redac" value="oui" id="avec_redac_off"' .
(!$possedeDateRedac ? '' : ' checked="checked"') .
" onClick=$js /> <label for='avec_redac_off'>" .
_T('bouton_radio_afficher').
' :</label> ' .
afficher_jour($jour_redac, "name='jour_redac' class='fondl' onchange=$js", true) .
afficher_mois($mois_redac, "name='mois_redac' class='fondl' onchange=$js", true) .
"<input type='text' name='annee_redac' class='fondl' value='".$annee_redac."' size='5' maxlength='4' onclick=$js />" .
'<div align="center">' .
afficher_heure($heure_redac, "name='heure_redac' class='fondl' onchange=$js", true) .
afficher_minute($minute_redac, "name='minute_redac' class='fondl' onchange=$js", true) .
"</div>\n" .
'</td><td align="$spip_lang_right">' .
"<span class='visible_au_chargement' id='valider_date_redac'>" .
'<input type="submit" class="fondo" value="'.
_T('bouton_changer').'" />' .
"</span>" .
'</td></tr>' .
'</table>' .
'</div>' .
fin_block()) #, " method='post'"
);
}
} else {
$res .= "<div style='text-align:center;'><b> <span class='verdana1'>"
. (($statut_article == 'publie')
? _T('texte_date_publication_article')
: _T('texte_date_creation_article'))
. "</span> "
. majuscules(affdate($date))."</b>".aide('artdate')."</div>";
if ($possedeDateRedac) {
$res .= "<div style='text-align:center;'><b><span class='verdana1'>"
. _T('texte_date_publication_anterieure')
. "</span> "
. ' : '
. majuscules(affdate($date_redac))
. "</b>"
. aide('artdate_redac')
. "</div>";
}
}
$res = debut_cadre_couleur('',true) . $res . fin_cadre_couleur(true);
return ($flag_editable === 'ajax')
? $res
: "<div id='dater-$id_article'>$res</div>";
}
?>
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* 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. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/forum');
include_spip('inc/presentation');
// http://doc.spip.org/@formulaire_discuter
function formulaire_discuter($query, $total, $debut, $total_afficher, $script, $args, $mute=false)
{
$res = $nav ='';
if ($total > $total_afficher) {
$evt = $_COOKIE['spip_accepte_ajax'] == 1;
$nav = "<div class='serif2' align='center'>";
for ($i = 0; $i < $total; $i = $i + $total_afficher){
$y = $i + $total_afficher - 1;
if ($i == $debut)
$nav .= "<font size='3'><b>[$i-$y]</b></font> ";
else {
$a = "$args&debut=$i";
if (!$evt) {
$h = generer_url_ecrire($script, $a);
} else {
$h = generer_url_ecrire('discuter', $a);
$evt = "\nonclick='return AjaxSqueeze(\"$h\",\n\t\"forum\")'";
}
$nav .= "[<a href='$h#forum'$evt>$i-$y</a>] ";
}
}
$nav .= "</div>";
}
$res = $nav
. afficher_forum($query, $script, $args, $mute)
. "<br />"
. $nav;
return $res;
}
// http://doc.spip.org/@fragments_discuter_dist
function inc_discuter_dist($id_article, $flag, $debut=1)
{
$debut = intval($debut);
$id_article = intval($id_article);
$res = spip_fetch_array(spip_query("SELECT COUNT(*) AS cnt FROM spip_forum WHERE statut='prive' AND id_article='$id_article' AND id_parent=0"));
$res = $res["cnt"];
if ($res) {
$total_afficher = 8;
$forum = spip_query("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" );
# " LIMIT $total_afficher OFFSET $debut" # PG
$res = formulaire_discuter($forum, $res, $debut, $total_afficher, 'articles', "id_article=$id_article");
}
return ($flag=='ajax') ? $res : "<div id='forum'>$res</div>";
}
?>
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* 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. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
include_spip('inc/actions');
function inc_editer_auteurs_dist($id_article, $flag_editable, $cherche_auteur, $ids)
{
global $spip_lang_left, $spip_lang_right, $options;
//
// complement de action/editer_auteurs.php pour notifier la recherche d'auteur
//
$bouton_creer_auteur = $GLOBALS['connect_toutes_rubriques'];
if ($cherche_auteur) {
$reponse ="<p align='$spip_lang_left'>"
. debut_boite_info(true)
. rechercher_auteurs_articles($cherche_auteur, $ids, $id_article);
if ($bouton_creer_auteur) {
$reponse .="<div style='width: 200px;'>"
. icone_horizontale(_T('icone_creer_auteur'), generer_url_ecrire("auteur_infos","ajouter_id_article=$id_article&nom=" . rawurlencode($cherche_auteur). "&redirect=" . generer_url_retour("articles","id_article=$id_article")), "redacteurs-24.gif", "creer.gif", false)
. "</div> ";
$bouton_creer_auteur = false;
}
$reponse .= fin_boite_info(true)
. '</p>';
} else $reponse ='';
//
// Afficher les auteurs
//
$les_auteurs = array();
$result = spip_query("SELECT id_auteur FROM spip_auteurs_articles WHERE id_article=$id_article");
while ($row = spip_fetch_array($result))
$les_auteurs[]= $row['id_auteur'];
if ($les_auteurs = join(',', $les_auteurs))
$reponse .= afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs);
//
// Ajouter un auteur
//
$res = '';
if ($flag_editable AND $options == 'avancees') {
if ($bouton_creer_auteur) {
$res = "<div style='width:170px;'><span class='verdana1'><b>"
. icone_horizontale(_T('icone_creer_auteur'), generer_url_ecrire("auteur_infos","ajouter_id_article=$id_article&redirect=" .generer_url_retour("articles","id_article=$id_article")), "redacteurs-24.gif", "creer.gif", false)
. "</b></span></div>\n";
}
$res = "<div style='float:$spip_lang_right; width:280px;position:relative;display:inline;'>"
. ajouter_auteurs_articles($id_article, $les_auteurs, $bouton_creer_auteur)
."</div>\n"
. $res;
}
$bouton = (!$flag_editable
? ''
: (($flag_editable === 'ajax')
? bouton_block_visible("auteursarticle")
: bouton_block_invisible("auteursarticle")))
. _T('texte_auteurs')
. aide("artauteurs");
$res = '<div>&nbsp;</div>' // pour placer le gif patienteur
. debut_cadre_enfonce("auteur-24.gif", true, "", $bouton)
. $reponse
. ($flag_editable === 'ajax' ?
debut_block_visible("auteursarticle") :
debut_block_invisible("auteursarticle"))
. $res
. fin_block()
. fin_cadre_enfonce(true);
return ($flag_editable === 'ajax')
? $res
: "\n<div id='editer_auteurs-$id_article'>$res</div>";
}
// http://doc.spip.org/@rechercher_auteurs_articles
function rechercher_auteurs_articles($cherche_auteur, $ids, $id_article)
{
if (!$ids) {
return "<B>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</B><BR />";
}
elseif ($ids == -1) {
return "<B>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</B><BR />";
}
elseif (preg_match('/^\d+$/',$ids)) {
$row = spip_fetch_array(spip_query("SELECT nom FROM spip_auteurs WHERE id_auteur=$ids"));
return "<B>"._T('texte_ajout_auteur')."</B><BR /><UL><LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><B><FONT SIZE=3>".typo($row['nom'])."</FONT></B></UL>";
}
else {
$ids = preg_replace('/[^0-9,]/','',$ids); // securite
$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN ($ids) ORDER BY nom");
$res = "<B>"
. _T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))
. "</B><BR />"
. "<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'];
$res .= "<li><b>".typo($nom_auteur)."</b>";
if ($email_auteur) $res .= " ($email_auteur)";
$res .= " | "
. ajax_action_auteur('editer_auteurs', "$id_article,$id_auteur","articles","id_article=$id_article", array(_T('lien_ajouter_auteur')));
if (trim($bio_auteur)) {
$res .= "<br />".couper(propre($bio_auteur), 100)."\n";
}
$res .= "</li>\n";
}
$res .= "</UL>";
return $res;
}
}
// http://doc.spip.org/@afficher_auteurs_articles
function afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs)
{
global $connect_statut, $options,$connect_id_auteur;
$table = array();
$result = spip_query("SELECT * FROM spip_auteurs AS A WHERE A.id_auteur IN ($les_auteurs) ORDER BY A.nom");
while ($row = spip_fetch_array($result)) {
$vals = array();
$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';
$vals[] = bonhomme_statut($row);
$vals[] = "<a href='" . generer_url_ecrire('auteurs_edit', "id_auteur=$id_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[] = "&nbsp;";
if ($url_site_auteur) $vals[] = "<A href='$url_site_auteur'>"._T('info_site_min')."</A>";
else $vals[] = "&nbsp;";
$cpt = spip_fetch_array(spip_query("SELECT COUNT(articles.id_article) AS n 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 " . ($connect_statut == "0minirezo" ? "('prepa', 'prop', 'publie', 'refuse')" : "('prop', 'publie')") . " GROUP BY lien.id_auteur"));
$nombre_articles = intval($cpt['n']);
if ($nombre_articles > 1) $vals[] = $nombre_articles.' '._T('info_article_2');
elseif ($nombre_articles == 1) $vals[] = _T('info_1_article');
else $vals[] = "&nbsp;";
if ($flag_editable AND ($connect_id_auteur != $id_auteur OR $connect_statut == '0minirezo') AND $options == 'avancees') {
$vals[] = ajax_action_auteur('editer_auteurs', "$id_article,-$id_auteur",'articles', "id_article=$id_article", array(_T('lien_retirer_auteur')."&nbsp;". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'")));
} else {
$vals[] = "";
}
$table[] = $vals;
}
$largeurs = array('14', '', '', '', '', '', '');
$styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial11', 'arial1');
return "<div class='liste'><table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>"
. afficher_liste($largeurs, $table, $styles)
. "</table></div>\n";
}
// http://doc.spip.org/@ajouter_auteurs_articles
function ajouter_auteurs_articles($id_article, $les_auteurs)
{
$result = spip_query("SELECT * FROM spip_auteurs WHERE " . (!$les_auteurs ? '' : "id_auteur NOT IN ($les_auteurs) AND ") . "statut!='5poubelle' AND statut!='6forum' AND statut!='nouveau' ORDER BY statut, nom");
if (!$num = spip_num_rows($result)) return '';
$js = "\"findObj_forcer('valider_ajouter_auteur').style.visibility='visible';\"";
return ajax_action_auteur('editer_auteurs', $id_article,'articles', "id_article=$id_article",
(
"<span class='verdana1'><B>"._T('titre_cadre_ajouter_auteur')."&nbsp; </B></span>\n" .
($num > 200
? ("<input type='text' name='cherche_auteur' onClick=$js CLASS='fondl' VALUE='' SIZE='20' />" .
"<span class='visible_au_chargement' id='valider_ajouter_auteur'>\n<input type='submit' value='"._T('bouton_chercher')."' CLASS='fondo' /></span>")
: ("<select name='nouv_auteur' size='1' style='width:150px;' CLASS='fondl' onChange=$js>" .
articles_auteur_select($result) .
"</select>" .
"<span class='visible_au_chargement' id='valider_ajouter_auteur'>" .
" <input type='submit' value='"._T('bouton_ajouter')."' CLASS='fondo'>" .
"</span>"))));
}
// http://doc.spip.org/@articles_auteur_select
function articles_auteur_select($result)
{
global $couleur_claire ;
$statut_old = $premiere_old = $res = '';
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) {
$res .= "\n<OPTION VALUE=\"x\">";
$res .= "\n<OPTION VALUE=\"x\" style='background-color: $couleur_claire;'> $statut";
}
if ($premiere != $premiere_old AND ($statut != _T('info_administrateurs') OR !$premiere_old))
$res .= "\n<OPTION VALUE=\"x\">";
$res .= "\n<OPTION VALUE=\"$id_auteur\">&nbsp;&nbsp;&nbsp;&nbsp;" . supprimer_tags(couper(typo("$nom$email"), 40));
$statut_old = $statut;
$premiere_old = $premiere;
}
return $res;
}
?>
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* 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. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/presentation');
function inc_referencer_traduction_dist($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err='')
{
global $connect_statut, $couleur_claire, $options, $connect_toutes_rubriques, $spip_lang_right, $dir_lang;
$langue_article = spip_fetch_array(spip_query("SELECT lang FROM spip_articles WHERE id_article=$id_article"));
$langue_article = $langue_article['lang'];
$reponse = '';
// Choix langue article
if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $flag_editable) {
$row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
$langue_parent = $row['lang'];
if (!$langue_parent)
$langue_parent = $GLOBALS['meta']['langue_site'];
if (!$langue_article)
$langue_article = $langue_parent;
$menu = menu_langues('changer_lang', $langue_article, _T('info_multi_cet_article').' ', $langue_parent, 'ajax');
$menu = ajax_action_auteur('referencer_traduction', "$id_article,$id_rubrique","articles","id_article=$id_article", $menu);
$reponse .= debut_cadre_couleur('',true)
. "\n<div style='text-align: center;'>"
. $menu
. "</div>\n"
. fin_cadre_couleur(true);
}
if ($trad_err)
$reponse .= "<div><font color='red' size='2' face='verdana,arial,helvetica,sans-serif'>"._T('trad_deja_traduit'). "</font></div>";
// Afficher la liste des traductions
$table = !$id_trad ? array() : articles_traduction($id_article, $id_trad);
// bloc traductions
if (count($table) > 0) {
$largeurs = array(7, 12, '', 100);
$styles = array('', '', 'arial2', 'arial2');
$liste = "\n<div class='liste'>"
. bandeau_titre_boite2(_T('trad_article_traduction'),'', 'white', 'black', false)
. "<table width='100%' cellspacing='0' border='0' cellpadding='2'>"
. afficher_liste ($largeurs, $table, $styles)
. "</table>"
. "</div>";
}
// changer les globales $dir_lang etc
changer_typo($langue_article);
$form = "<table width='100%'><tr>";
if ($flag_editable AND $options == "avancees" AND !$table) {
// Formulaire pour lier a un article
$form .= "<td class='arial2' width='60%'>"
. ajax_action_auteur("referencer_traduction",
$id_article,
'articles',
"id_article=$id_article",
(_T('trad_lier') .
"\n<input type='text' class='fondl' name='lier_trad' size='5' />\n<input type='submit' value='"._T('bouton_valider')."' class='fondl' />"))
. "</td>\n"
. "<td background='' width='10'> &nbsp; </td>"
. "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"
. "<td background='' width='10'> &nbsp; </td>";
}
$form .= "<td>"
. icone_horizontale(_T('trad_new'), generer_url_ecrire("articles_edit","new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique"), "traductions-24.gif", "creer.gif", false)
. "</td>";
if ($flag_editable AND $options == "avancees" AND $table) {
$clic = _T('trad_delier');
$form .= "<td background='' width='10'> &nbsp; </td>"
. "<td background='" . _DIR_IMG_PACK . "tirets-separation.gif' width='2'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"
. "<td background='' width='10'> &nbsp; </td>"
. "<td>"
// la 1ere occurrence de clic ne sert pas en Ajax
. icone_horizontale($clic, ajax_action_auteur("referencer_traduction","$id_article,-$id_trad",'articles', "id_article=$id_article",array($clic)), "traductions-24.gif", "supprimer.gif", false)
. "</td>\n";
}
$form .= "</tr></table>";
if ($GLOBALS['meta']['gerer_trad'] == 'oui')
$bouton = _T('titre_langue_trad_article');
else
$bouton = _T('titre_langue_article');
if ($langue_article)
$bouton .= "&nbsp; (".traduire_nom_langue($langue_article).")";
return ($flag_editable === 'ajax')
?
(debut_cadre_enfonce('langues-24.gif', true, "",
bouton_block_visible('languearticle,lier_traductions')
. $bouton)
. debut_block_visible('languearticle')
. $reponse
. fin_block()
. $liste
. debut_block_visible('lier_traductions')
. $form
. fin_block()
. fin_cadre_enfonce(true)
. fin_block())
: ("<div id='referencer_traduction-$id_article'>"
. debut_cadre_enfonce('langues-24.gif', true, "",
bouton_block_invisible('languearticle,lier_traductions')
. $bouton)
. debut_block_invisible('languearticle')
. $reponse
. fin_block()
. $liste
. debut_block_invisible('lier_traductions')
. $form
. fin_block()
. fin_cadre_enfonce(true)
. "</div>");
}
// http://doc.spip.org/@articles_traduction
function articles_traduction($id_article, $id_trad)
{
global $connect_toutes_rubriques, $dir_lang;
$result_trad = spip_query("SELECT id_article, id_rubrique, titre, lang, statut FROM spip_articles WHERE id_trad = $id_trad");
$table= array();
while ($row = spip_fetch_array($result_trad)) {
$vals = array();
$id_article_trad = $row["id_article"];
$id_rubrique_trad = $row["id_rubrique"];
$titre_trad = $row["titre"];
$lang_trad = $row["lang"];
$statut_trad = $row["statut"];
changer_typo($lang_trad);
$titre_trad = "<span $dir_lang>$titre_trad</span>";
$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_toutes_rubriques)
$vals[] = http_img_pack('langues-off-12.gif', "", "width='12' height='12' border='0'");
else
$vals[] = ajax_action_auteur("referencer_traduction", "$id_article,$id_trad,$id_article_trad", 'articles', "id_article=$id_article", array(http_img_pack('langues-off-12.gif', _T('trad_reference'), "width='12' height='12' border='0'"), ' title="' . _T('trad_reference') . '"'));
}
$s = typo($titre_trad);
if ($id_article_trad != $id_article)
$s = "<a href='" . generer_url_ecrire("articles","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;
}
return $table;
}
?>
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2006 *
* 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. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/actions');
// http://doc.spip.org/@formulaire_virtualiser
function inc_virtualiser_dist($id_article, $flag, $virtuel, $script, $args)
{
global $spip_lang_right;
$http = ($virtuel ? "" : "http://");
$res = "<input type='text' name='virtuel' class='formo' style='font-size:9px;' value='"
. $http
. $virtuel
. "' size='40' /><br />\n"
. "<font face='Verdana,Arial,Sans,sans-serif' size='2'>"
. "(<b>"._T('texte_article_virtuel')
. "&nbsp;:</b> "
. _T('texte_reference_mais_redirige')
. ")</font>"
. "\n<div align='$spip_lang_right'><input type='submit' class='fondo' value='"
. _T('bouton_changer')
. "' style='font-size:10px' /></div>";
$res = ajax_action_auteur('virtualiser', $id_article, $script, $args, $res);
return ($flag=='ajax') ? $res : "<div id='virtualiser-$id_article'>$res</div>";
}
?>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter