Ajout de la possibilite de modifier le logo de l'auteur, pas si trivial

cf readme
This commit is contained in:
Christophe 2020-08-12 16:37:12 +02:00
parent b63e0f54f3
commit b6bd53e34d
9 changed files with 113 additions and 25 deletions

View file

@ -38,5 +38,8 @@ function ma_super_fonction($id_auteur, $champ, $valeur){
``` ```
La gestion du mot de passe est deja géré, pas besoin de l'ajouter dans l'array des saisies La gestion du mot de passe est deja géré, pas besoin de l'ajouter dans l'array des saisies
### Modification du logo de l'auteur
1. Il faut l'autoriser dans la configuration du plugin
2. Il ne faut pas l'ajouter dans une saisie, le plugin s'en charge

View file

@ -12,3 +12,15 @@
if (!defined('_ECRIRE_INC_VERSION')) { if (!defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
/**
* Charger des styles CSS
*
* @pipeline insert_head_css
* @param string $flux Code html des styles CSS à charger
* @return string Code html complété
**/
function comptespip_insert_head_css($flux){
$flux .= '<link rel="stylesheet" href="' . timestamp(find_in_path('css/comptespip.css')) . '" type="text/css" />' . "\n";
return $flux;
}

7
css/comptespip.css Normal file
View file

@ -0,0 +1,7 @@
.comptespip_logo_auteur {
display: flex;
align-items: center;
}
.formulaire_spip .comptespip_logo_auteur .editer_logo {
margin-left: 1rem;
}

View file

@ -10,7 +10,26 @@
#ACTION_FORMULAIRE #ACTION_FORMULAIRE
<fieldset> <fieldset>
<legend><:comptespip:conf_formulaire_inscription:></legend> <h3 class="legend"><:comptespip:conf_formulaire_general:></h3>
<div class="editer_groupe">
#SET{name,unicite_email}
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
<label><:comptespip:conf_label_unicite_email:></label>
<div class="choix">
<input type="radio" class="radio" name="#GET{name}" value="non" id="#GET{name}_non"[ (#ENV{#GET{name}}|=={non}|?{checked="checked"})] >
<label for="#GET{name}_non"><:comptespip:non:></label>
</div>
<div class="choix">
<input type="radio" class="radio" name="#GET{name}" value="" id="#GET{name}_oui"[ (#ENV{#GET{name}}|non|?{checked="checked"})] >
<label for="#GET{name}_oui"><:comptespip:oui:></label>
</div>
</div>
</div>
</fieldset>
<fieldset>
<h3 class="legend"><:comptespip:conf_formulaire_inscription:></h3>
<div class="editer_groupe"> <div class="editer_groupe">
#SET{name,id_presentation} #SET{name,id_presentation}
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
@ -32,23 +51,6 @@
</div> </div>
</div> </div>
<div class="editer_groupe">
#SET{name,unicite_email}
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
<label><:comptespip:conf_label_unicite_email:></label>
<div class="choix">
<input type="radio" class="radio" name="#GET{name}" value="non" id="#GET{name}_non"[ (#ENV{#GET{name}}|=={non}|?{checked="checked"})] >
<label for="#GET{name}_non"><:comptespip:non:></label>
</div>
<div class="choix">
<input type="radio" class="radio" name="#GET{name}" value="" id="#GET{name}_oui"[ (#ENV{#GET{name}}|non|?{checked="checked"})] >
<label for="#GET{name}_oui"><:comptespip:oui:></label>
</div>
</div>
</div>
[(#PLUGIN{auted}|oui) [(#PLUGIN{auted}|oui)
<div class="editer_groupe"> <div class="editer_groupe">
#SET{name,aut_modele} #SET{name,aut_modele}
@ -104,6 +106,27 @@
</div> </div>
</fieldset> </fieldset>
<fieldset>
<h3 class="legend"><:comptespip:conf_formulaire_edition:></h3>
<div class="editer_groupe">
#SET{name,modif_logo_auteur}
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
<label><:comptespip:conf_label_logo_auteur:></label>
<div class="choix">
<input type="radio" class="radio" name="#GET{name}" value="" id="#GET{name}_non"[ (#ENV{#GET{name}}|non|?{checked="checked"})] >
<label for="#GET{name}_non"><:comptespip:non:></label>
</div>
<div class="choix">
<input type="radio" class="radio" name="#GET{name}" value="oui" id="#GET{name}_oui"[ (#ENV{#GET{name}}|=={oui}|?{checked="checked"})] >
<label for="#GET{name}_oui"><:comptespip:oui:></label>
</div>
</div>
</div>
</fieldset>

View file

@ -6,7 +6,20 @@
<form name="formulaire_#FORM" action="#ENV{action}" method="post"><div> <form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
#ACTION_FORMULAIRE{#ENV{action}} #ACTION_FORMULAIRE{#ENV{action}}
<div class="comptespip_logo_auteur">
<INCLURE{fond=inclure/logo_auteur,id_auteur,env}>
[(#ENV{_bigup_rechercher_fichiers}|oui)
[(#SAISIE{bigup, logo, form, formulaire_args}
{previsualiser=oui}
{accept=image/*}
)]
]
</div>
<div>
#GENERER_SAISIES{#ENV{_saisies}} #GENERER_SAISIES{#ENV{_saisies}}
</div>
<fieldset> <fieldset>
<legend>Mot de passe</legend> <legend>Mot de passe</legend>

View file

@ -12,12 +12,16 @@ function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redir
$valeurs['password'] = ''; $valeurs['password'] = '';
$valeurs['password_confirmation'] = ''; $valeurs['password_confirmation'] = '';
if (lire_config('comptespip/modif_logo_auteur')) {
$valeurs['_bigup_rechercher_fichiers'] = 'true';
$valeurs['logo'] = '';
}
return $valeurs; return $valeurs;
} }
function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redirect = ''){ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redirect = ''){
$id_auteur = session_get('id_auteur');
$erreurs = array(); $erreurs = array();
$mode = lire_config('comptespip/statut'); $mode = lire_config('comptespip/statut');
@ -69,7 +73,10 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
if ($row = sql_fetsel( if ($row = sql_fetsel(
'statut, id_auteur, login, email', 'statut, id_auteur, login, email',
'spip_auteurs', 'spip_auteurs',
'email=' . sql_quote($declaration['email']) [
'email=' . sql_quote($declaration['email']),
'id_auteur!='.intval($id_auteur)
]
)) { )) {
if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) { if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) {
// irrecuperable // irrecuperable
@ -103,7 +110,6 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
$set = []; $set = [];
foreach ($saisies as $saisie) { foreach ($saisies as $saisie) {
$champ = $saisie['options']['nom']; $champ = $saisie['options']['nom'];
$f = $saisie['options']['fonction'];
if (isset($f) and !empty($f)) { if (isset($f) and !empty($f)) {
$f($id_auteur, $champ, _request($champ)); $f($id_auteur, $champ, _request($champ));
} else { } else {
@ -130,6 +136,10 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
]; ];
auteur_instituer($id_auteur, $set_instituer); auteur_instituer($id_auteur, $set_instituer);
if (lire_config('comptespip/modif_logo_auteur')) {
comptespip_save_logo_auteur($id_auteur);
}
include_spip('inc/invalideur'); include_spip('inc/invalideur');
suivre_invalideur("id='id_auteur/$id_auteur'"); suivre_invalideur("id='id_auteur/$id_auteur'");
@ -145,3 +155,16 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
return $retour; return $retour;
} }
function comptespip_save_logo_auteur($id_auteur){
include_spip('inc/joindre_document');
set_request('joindre_upload','ok');
$files = joindre_trouver_fichier_envoye();
if (is_array($files)) {
include_spip('action/editer_logo');
logo_supprimer('auteur', $id_auteur, 'on');
$ajouter_document = charger_fonction('ajouter_documents', 'action');
$ajouter_document('new', $files, "auteur", $id_auteur, 'logoon');
}
}

5
inclure/logo_auteur.html Normal file
View file

@ -0,0 +1,5 @@
<div class="logo_auteur">
<BOUCLE_logo(AUTEURS){id_auteur}{tout}>
[(#LOGO_AUTEUR|image_reduire{220, 220})]
</BOUCLE_logo>
</div>

View file

@ -24,6 +24,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'conf_label_connexion_auto' => "Connexion automatique après l'inscription", 'conf_label_connexion_auto' => "Connexion automatique après l'inscription",
'conf_label_page_redirection' => "Nom de la page de redirection", 'conf_label_page_redirection' => "Nom de la page de redirection",
'conf_label_page_redirection_expl' => "Si vide, page sommaire", 'conf_label_page_redirection_expl' => "Si vide, page sommaire",
'conf_formulaire_general' => "Configuration générale",
'conf_formulaire_edition' => "Configuration du formulaire d'édition",
'conf_label_logo_auteur' => "Autoriser la modification du logo de l'auteur",
// MM // MM

View file

@ -10,15 +10,14 @@
<nom>CompteSPIP</nom> <nom>CompteSPIP</nom>
<auteur lien='https://gamuza.fr'>tofulm</auteur> <auteur lien='https://gamuza.fr'>tofulm</auteur>
<licence>GNU/GPL</licence> <licence>GNU/GPL</licence>
<necessite nom="saisies" compatibilite="[3.30.0;[" /> <necessite nom="saisies" compatibilite="[3.30.0;[" />
<pipeline nom="autoriser" inclure="comptespip_autorisations.php" /> <pipeline nom="autoriser" inclure="comptespip_autorisations.php" />
<pipeline nom="insert_head_css" inclure="comptespip_pipelines.php" />
<pipeline nom="comptespip_pre_inscription" action="" /> <pipeline nom="comptespip_pre_inscription" action="" />
<pipeline nom="comptespip_pre_login" action="" /> <pipeline nom="comptespip_pre_login" action="" />