Bifurcation depuis
spip / spip
15378 validations de retard le dépôt en amont.
legender_auteur.php 9,85 Kio
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2007 *
* 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;
// http://doc.spip.org/@inc_legender_auteur_dist
function inc_legender_auteur_dist($id_auteur, $auteur, $mode, $echec='', $redirect='')
{
$corps = (($mode < 0) OR !statut_modifiable_auteur($id_auteur, $auteur))
? legender_auteur_voir($auteur, $redirect)
: legender_auteur_saisir($id_auteur, $auteur, $mode, $echec, $redirect);
return $redirect ? $corps :
ajax_action_greffe("legender_auteur-$id_auteur", $corps);
}
// http://doc.spip.org/@legender_auteur_saisir
function legender_auteur_saisir($id_auteur, $auteur, $mode, $echec='', $redirect='')
{
global $options, $connect_statut, $connect_id_auteur, $connect_toutes_rubriques;
$corps = '';
if ($echec){
foreach (split('@@@',$echec) as $e)
$corps .= '<p>' . _T($e) . "</p>\n";
$corps = debut_cadre_relief('', true)
. "<span style='color: red; left-margin: 5px'>"
. http_img_pack("warning.gif", _T('info_avertissement'), "style='width: 48px; height: 48px; float: left; margin: 5px;'")
. $corps
. _T('info_recommencer')
. "</span>\n"
. fin_cadre_relief(true);
}
$setmail = ($connect_statut == "0minirezo"
AND ($connect_toutes_rubriques OR $auteur['statut']<>'0minirezo'));
$setconnecte = ($connect_id_auteur == $id_auteur);
$corps .= _T('titre_cadre_signature_obligatoire')
. "("
. _T('entree_nom_pseudo')
. ")<br />\n"
. "<input type='text' name='nom' class='formo' size='40' value=\""
. entites_html($auteur['nom'])
. "\" "
. (!$mode ? '' : ' onfocus="if(!antifocus){this.value=\'\';antifocus=true;}"')
. " />\n<br />"
. "<b>"._T('entree_adresse_email')."</b>";
if ($setmail) {
$corps .= "<br /><input type='text' name='email' class='formo' size='40' value=\""
. entites_html($auteur['email'])
. "\" />\n<br />\n";
} else {
$corps .= " : <tt>".$auteur['email']."</tt>"
. "<br />("._T('info_reserve_admin').")\n"
. "\n<br />";
}
$corps .= "<b>"._T('entree_infos_perso')."</b><br />\n"
. "("._T('entree_biographie')
. ")<br />\n"
. "<textarea name='bio' class='forml' rows='4' cols='40'>"
. entites_html($auteur['bio'])
. "</textarea><br />\n"
. debut_cadre_enfonce("site-24.gif", true, "", _T('info_site_web'))
. "<b>"._T('entree_nom_site')."</b><br />\n"
. "<input type='text' name='nom_site_auteur' class='forml' value=\""
. entites_html($auteur['nom_site'])
. "\" size='40' /><br />\n"
. "<b>"
. _T('entree_url')
. "</b><br />\n"
. "<input type='text' name='url_site' class='forml' value=\""
. entites_html($auteur['url_site'])
. "\" size='40' />\n"
. fin_cadre_enfonce(true)
. "\n<br />";
if ($options == "avancees") {
$corps .= debut_cadre_enfonce("cadenas-24.gif", true, "", _T('entree_cle_pgp'))
. "<textarea name='pgp' class='forml' rows='4' cols='40'>"
. entites_html($auteur['pgp'])
. "</textarea>\n"
. fin_cadre_enfonce(true);
} else {
$corps .= "<input type='hidden' name='pgp' value=\""
. entites_html($auteur['pgp'])
. "\" />";
}
$corps .= "\n<br />";
if ($champs_extra) {
include_spip('inc/extra');
$corps .= extra_saisie($auteur['extra'], 'auteurs', $auteur['statut']);
}
//
// Login et mot de passe :
// accessibles seulement aux admins non restreints et l'auteur lui-meme
//
if ($auteur['source'] != 'spip') {
$edit_login = false;
$edit_pass = false;
}
else if (($connect_statut == "0minirezo") AND $connect_toutes_rubriques) {
$edit_login = true;
$edit_pass = true;
}
else if ($connect_id_auteur == $id_auteur) {
$edit_login = false;
$edit_pass = true;
}
else {
$edit_login = false;
$edit_pass = false;
}
$corps .= debut_cadre_relief("base-24.gif", true);
// Avertissement en cas de modifs de ses propres donnees
if (($edit_login OR $edit_pass) AND $connect_id_auteur == $id_auteur) {
$corps .= debut_cadre_enfonce('', true)
. http_img_pack("warning.gif", _T('info_avertissement'),
"style='width: 48px; height: 48px; float: right;margin: 5px;'")
. "<b>"._T('texte_login_precaution')."</b>\n"
. fin_cadre_enfonce(true)
. "\n<br />";
}
// Un redacteur n'a pas le droit de modifier son login !
if ($edit_login) {
$corps .= "<b>"._T('item_login')."</b> "
. "<span style='color: red'>("._T('texte_plus_trois_car').")</span> :<br />\n"
. "<input type='text' name='new_login' class='formo' value=\"".entites_html($auteur['login'])."\" size='40' /><br />\n";
} else {
$corps .= "<fieldset style='padding:5'><legend><b>"._T('item_login')."</b><br />\n</legend><br /><b>".$auteur['login']."</b> "
. "<i> ("._T('info_non_modifiable').")</i>\n<br />";
}
// On ne peut modifier le mot de passe en cas de source externe (par exemple LDAP)
if ($edit_pass) {
$res = "<b>"._T('entree_nouveau_passe')."</b> "
. "<span style='color: red'>("._T('info_plus_cinq_car').")</span> :<br />\n"
. "<input type='password' name='new_pass' class='formo' value=\"\" size='40' /><br />\n"
. _T('info_confirmer_passe')."<br />\n"
. "<input type='password' name='new_pass2' class='formo' value=\"\" size='40' /><br />\n";
$corps .= $res;
}
$corps .= fin_cadre_relief(true)
. "<br />"
. (!$setconnecte ? '' : apparait_auteur_infos($id_auteur, $auteur))
. "\n<div align='right'>"
. "\n<input type='submit' class='fondo' value='"
. _T('bouton_enregistrer')
. "' /></div>";
$arg = intval($id_auteur) . '/';
return '<div> </div>'
. "\n<div class='serif'>"
. debut_cadre_relief("fiche-perso-24.gif", true, "", _T("icone_informations_personnelles"))
. ($redirect
? generer_action_auteur('legender_auteur', $arg, $redirect, $corps)
: ajax_action_auteur('legender_auteur', $arg, 'auteur_infos', "id_auteur=$id_auteur&initial=-1&retour=$redirect", $corps))
. fin_cadre_relief(true)
. '</div>';
}
//
// Apparaitre dans la liste des redacteurs connectes
//
// http://doc.spip.org/@apparait_auteur_infos
function apparait_auteur_infos($id_auteur, $auteur)
{
if ($auteur['imessage']=="non"){
$res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on'>"
. " <label for='perso_activer_imessage_on'>"._T('bouton_radio_apparaitre_liste_redacteurs_connectes')."</label> "
. "<br />\n<input type='radio' name='perso_activer_imessage' value='non' checked='checked' id='perso_activer_imessage_off'>"
. " <b><label for='perso_activer_imessage_off'>"._T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')."</label></b> ";
} else {
$res = "<input type='radio' name='perso_activer_imessage' value='oui' id='perso_activer_imessage_on' checked='checked'>"
. " <b><label for='perso_activer_imessage_on'>"
. _T('bouton_radio_apparaitre_liste_redacteurs_connectes')
. "</label></b> "
. "<br />\n<input type='radio' name='perso_activer_imessage' value='non' id='perso_activer_imessage_off'>"
. " <label for='perso_activer_imessage_off'>"
. _T('bouton_radio_non_apparaitre_liste_redacteurs_connectes')
. "</label> ";
}
return debut_cadre_formulaire('', true)
. debut_cadre_relief("messagerie-24.gif", true, "", _T('info_liste_redacteurs_connectes'))
. "\n<div>"
. _T('texte_auteur_messagerie')
. "</div>"
. $res
. fin_cadre_relief(true)
. "<p />"
. fin_cadre_formulaire(true);
}
// http://doc.spip.org/@legender_auteur_voir
function legender_auteur_voir($auteur, $redirect)
{
global $connect_toutes_rubriques, $connect_statut, $connect_id_auteur, $champs_extra, $options,$spip_lang_right ;
$id_auteur=$auteur['id_auteur'];
$nom=$auteur['nom'];
$bio=$auteur['bio'];
$email=$auteur['email'];
$nom_site_auteur=$auteur['nom_site'];
$url_site=$auteur['url_site'];
$statut=$auteur['statut'];
$pgp=$auteur["pgp"];
$extra = $auteur["extra"];
$res = "<table width='100%' cellpadding='0' border='0' cellspacing='0'>"
. "<tr>"
. "<td style='width: 100%' valign='top'>"
. gros_titre($nom,'',false)
. "<div> </div>";
if (strlen($email) > 2)
$res .= "<div>"._T('email_2')." <b><a href='mailto:$email'>$email</a></b></div>";
if ($url_site) {
if (!$nom_site_auteur) $nom_site_auteur = _T('info_site');
$res .= propre(_T('info_site_2')." [{{".$nom_site_auteur."}}->".$url_site."]");
}
$res .= "</td>"
. "<td>";
if (statut_modifiable_auteur($id_auteur, $auteur)) {
$ancre = "legender_auteur-$id_auteur";
$clic = _T("admin_modifier_auteur");
$h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&initial=0");
if ((_SPIP_AJAX === 1 ) AND !$redirect) {
$evt = "\nonclick=" . ajax_action_declencheur($h,$ancre);
$h = "<a\nhref='$h#$ancre'$evt>$clic</a>";
}
$res .= icone($clic, $h, "redacteurs-24.gif", "edit.gif", '', '',true);
}
$res .= "</td></tr></table>";
if (strlen($bio) > 0) { $res .= "<div>".propre("<quote>".$bio."</quote>")."</div>"; }
if (strlen($pgp) > 0) { $res .= "<div>".propre("PGP:<cadre>".$pgp."</cadre>")."</div>"; }
if ($champs_extra AND $extra) {
include_spip('inc/extra');
$res .= extra_affichage($extra, "auteurs");
}
return $res;
}
// http://doc.spip.org/@statut_modifiable_auteur
function statut_modifiable_auteur($id_auteur, $auteur)
{
global $connect_statut, $connect_toutes_rubriques, $connect_id_auteur;
// on peut se changer soi-meme
return (($connect_id_auteur == $id_auteur) ||
// sinon on doit etre admin
// et pas admin restreint pour changer un autre admin ou creer qq
(($connect_statut == "0minirezo") &&
($connect_toutes_rubriques OR
($id_auteur AND ($auteur['statut'] != "0minirezo")))));
}
?>