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
### 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')) {
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
<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">
#SET{name,id_presentation}
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
@ -32,23 +51,6 @@
</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)
<div class="editer_groupe">
#SET{name,aut_modele}
@ -104,6 +106,27 @@
</div>
</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>
#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}}
</div>
<fieldset>
<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_confirmation'] = '';
if (lire_config('comptespip/modif_logo_auteur')) {
$valeurs['_bigup_rechercher_fichiers'] = 'true';
$valeurs['logo'] = '';
}
return $valeurs;
}
function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redirect = ''){
$id_auteur = session_get('id_auteur');
$erreurs = array();
$mode = lire_config('comptespip/statut');
@ -69,7 +73,10 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
if ($row = sql_fetsel(
'statut, id_auteur, login, email',
'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'])) {
// irrecuperable
@ -103,7 +110,6 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
$set = [];
foreach ($saisies as $saisie) {
$champ = $saisie['options']['nom'];
$f = $saisie['options']['fonction'];
if (isset($f) and !empty($f)) {
$f($id_auteur, $champ, _request($champ));
} else {
@ -130,6 +136,10 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
];
auteur_instituer($id_auteur, $set_instituer);
if (lire_config('comptespip/modif_logo_auteur')) {
comptespip_save_logo_auteur($id_auteur);
}
include_spip('inc/invalideur');
suivre_invalideur("id='id_auteur/$id_auteur'");
@ -145,3 +155,16 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
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_page_redirection' => "Nom de la page de redirection",
'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

View file

@ -10,15 +10,14 @@
<nom>CompteSPIP</nom>
<auteur lien='https://gamuza.fr'>tofulm</auteur>
<licence>GNU/GPL</licence>
<necessite nom="saisies" compatibilite="[3.30.0;[" />
<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_login" action="" />