Fix : remplacement des limites de taille de fichiers en dur dans le traiter du bigform de la page d'édition des articles et remplacement par la récup des options configurées dans bigup. Actualisation du fichier PHP du CVT des inscriptions pour compatibilité SPIP 4.2 (TODO : passer sur le plugin mot_de_pass_des_linscription + un pipline Gamumail pour l'envoi de la notif)

This commit is contained in:
cy_altern 2024-03-24 18:36:05 +01:00
parent 3e7879fc8c
commit 826c97f418
5 changed files with 215 additions and 162 deletions

View file

@ -178,4 +178,6 @@ function autoriser_forum_voir($faire, $type, $id, $qui, $opt) {
if ($qui['statut']=='0minirezo'){
return true;
}
// si aucun des cas précédents (pas loggué par ex)
return false;
}

View file

@ -1,8 +1,6 @@
[(#REM) On affiche la première rubrique par défaut]
<section id="espace_membre" class="section-top section-bottom container">
<?php
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
?>
@ -12,12 +10,9 @@
<?php
if (isset($GLOBALS['visiteur_session']['statut']) AND in_array($GLOBALS['visiteur_session']['statut'],array("0minirezo","1comite"))) {
?>
<div class="mb-3">
Vous êtes connecté·e en tant que <a class="boutons" href="[(#URL_PAGE{modifier_auteur})]"><?php echo $GLOBALS['visiteur_session']['nom'] ?></a>.<a href="[(#URL_LOGOUT{#SELF})]"><i class="fa fa-sign-out ml-3" aria-hidden="true"></i> Déconnexion</a>
</div>
<INCLURE{fond=inclure/espace_membre_contenu,env,ajax}>
<?php
}
@ -51,10 +46,8 @@
[(#FORMULAIRE_INSCRIPTION{'','',#SELF})]
</div>
</div>
<?php
}
?>
</section>

View file

@ -95,7 +95,7 @@
<fieldset class="upload_vignette">
<legend><i class="fas fa-paperclip"></i> Images et fichiers</legend>
<label for=""><small>largeur conseillée: entre 1024 et 2048 pixels</small></label>
<div class="ajax">
<div class="ajax les_photos">
<INCLURE{fond=inclure/bigform,env}>
</div>
<INCLURE{fond=inclure/editer_docs_article,env,id_article=#ENV{id_article},ajax=les_photos,type=article}>
@ -119,7 +119,6 @@
]
</div>
<div class="col-lg-3 formulaire-col-droite">
<BOUCLE_doc(DOCUMENTS){id_article}{extension==jpg|png|gif}{statut in prop,prepa,publie}{credits=une}>
<div class="photo-premier-plan">
@ -194,8 +193,6 @@
</div>
</form>
</div>
<script src="[(#CHEMIN{js/tag_editor.min.js}|timestamp)]" type="text/javascript"></script>

View file

@ -102,7 +102,10 @@ function formulaires_editer_post_verifier_dist($id_article=0, $redirect=''){
}
$bigform = charger_fonction('bigform_verifier','inc');
$options = ['mime' => 'tout_mime','taille_max'=>'5000','largeur_max'=>'2048','hauteur_max'=>'2048'];
$taille_max = lire_config('bigup/max_file_size');
$largeur_max = (defined('_IMG_MAX_WIDTH') ? _IMG_MAX_WIDTH : 2048);
$hauteur_max = (defined('_IMG_MAX_HEIGHT') ? _IMG_MAX_HEIGHT : 2048);
$options = ['mime' => 'tout_mime','taille_max'=> $taille_max, 'largeur_max'=> $largeur_max, 'hauteur_max'=> $hauteur_max];
$bigform($options,$erreurs);
return $erreurs;

View file

@ -14,8 +14,33 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function formulaires_inscription_charger_dist($mode = '', $id = 0, $redirect ='') {
global $visiteur_session;
/**
*
* #FORMULAIRE_INSCRIPTION
* #FORMULAIRE_INSCRIPTION{6forum}
* #FORMULAIRE_INSCRIPTION{1comite,#ARRAY{id,#ENV{id_rubrique}}}
*
* Pour rediriger l'utilisateur apres soumission du formulaire vers une page qui lui dit de verifier ses mails par exemple :
* #FORMULAIRE_INSCRIPTION{6forum,'',#URL_PAGE{verifiez-vos-mails}}
*
* Pour rediriger l'utilisateur apres Clic dans le lien du mail de confirmation, pour lui confirmer son inscription par exemple
* #FORMULAIRE_INSCRIPTION{6forum,#ARRAY{redirect,#URL_PAGE{confirmation-inscription}}}
*
* Tout ensemble
* #FORMULAIRE_INSCRIPTION{6forum,#ARRAY{redirect,#URL_PAGE{confirmation-inscription}}, #URL_PAGE{verifiez-vos-mails}}
*
* Syntaxe legacy :
* #FORMULAIRE_INSCRIPTION{1comite,#ENV{id_rubrique}}
*
*
* @param string $mode
* @param array $options
* @param string $retour
* @return array|false
*/
function formulaires_inscription_charger_dist($mode = '', $options = [], $retour = '') {
$id = ($options['id'] ?? 0);
// fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci
// pas de formulaire si le mode est interdit
@ -25,10 +50,11 @@ function formulaires_inscription_charger_dist($mode = '', $id = 0, $redirect =''
}
// pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
if (isset($visiteur_session['statut']) && ($visiteur_session['statut'] <= $mode)) {
if (isset($GLOBALS['visiteur_session']['statut']) and ($GLOBALS['visiteur_session']['statut'] <= $mode)) {
return false;
}
$valeurs = array('nom_inscription' => '', 'mail_inscription' => '', 'id' => $id, '_mode' => $mode);
$valeurs['password'] = '';
@ -37,14 +63,21 @@ function formulaires_inscription_charger_dist($mode = '', $id = 0, $redirect =''
return $valeurs;
}
// Si inscriptions pas autorisees, retourner une chaine d'avertissement
function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='') {
$erreurs = [];
include_spip('inc/config');
set_request("_upgrade_auteur"); // securite
/**
* Si inscriptions pas autorisees, retourner une chaine d'avertissement
*
* @param string $mode
* @param array $options
* @param string $retour
* @return array
*/
function formulaires_inscription_verifier_dist($mode = '', $options = [], $retour = '') {
set_request('_upgrade_auteur'); // securite
include_spip('inc/filtres');
$erreurs = array();
$id = ($options['id'] ?? 0);
include_spip('inc/autoriser');
if (!autoriser('inscrireauteur', $mode, $id)
@ -54,12 +87,12 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
}
if (!$nom = _request('nom_inscription')) {
$erreurs['nom_inscription'] = _T("info_obligatoire");
$erreurs['nom_inscription'] = _T('info_obligatoire');
} elseif (!nom_acceptable(_request('nom_inscription'))) {
$erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme");
$erreurs['nom_inscription'] = _T('ecrire:info_nom_pas_conforme');
}
if (!$mail = strval(_request('mail_inscription'))) {
$erreurs['mail_inscription'] = _T("info_obligatoire");
$erreurs['mail_inscription'] = _T('info_obligatoire');
}
// compatibilite avec anciennes fonction surchargeables
@ -71,7 +104,7 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
} else {
$f = 'test_inscription_dist';
}
$declaration = $f($mode, $mail, $nom, $id);
$declaration = $f($mode, $mail, $nom, $options);
if (is_string($declaration)) {
$k = (strpos($declaration, 'mail') !== false) ?
'mail_inscription' : 'nom_inscription';
@ -79,23 +112,25 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
} else {
include_spip('base/abstract_sql');
if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs",
"email=" . sql_quote($declaration['email']))
) {
if (($row['statut'] == '5poubelle') and !$declaration['pass']) // irrecuperable
{
if ($row = sql_fetsel(
'statut, id_auteur, login, email',
'spip_auteurs',
'email=' . sql_quote($declaration['email'])
)) {
if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) {
// irrecuperable
$erreurs['message_erreur'] = _T('form_forum_access_refuse');
} else {
if (($row['statut'] != 'nouveau') and !$declaration['pass']) {
if (($row['statut'] != 'nouveau') and empty($declaration['pass'])) {
if (intval($row['statut']) > intval($mode)) {
set_request("_upgrade_auteur", $row['id_auteur']);
set_request('_upgrade_auteur', $row['id_auteur']);
} else {
// deja inscrit
$erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
}
}
}
spip_log($row['id_auteur'] . " veut se reinscrire");
spip_log($row['id_auteur'] . ' veut se resinscrire');
}
}
}
@ -121,20 +156,34 @@ function formulaires_inscription_verifier_dist($mode = '', $id = 0, $redirect ='
return $erreurs;
}
function formulaires_inscription_traiter_dist($mode = '', $id = 0, $redirect ='') {
/**
* Si inscriptions pas autorisees, retourner une chaine d'avertissement
*
* @param string $mode
* @param array $options
* @param string $retour
* @return array
*/
function formulaires_inscription_traiter_dist($mode = '', array $options = [], $retour = '') {
if ($retour) {
refuser_traiter_formulaire_ajax();
}
include_spip('inc/filtres');
include_spip('inc/autoriser');
$id = ($options['id'] ?? 0);
if (!autoriser('inscrireauteur', $mode, $id)) {
$desc = "rien a faire ici";
$desc = 'rien a faire ici';
} else {
if ($id_auteur = _request('_upgrade_auteur')) {
include_spip("action/editer_auteur");
autoriser_exception("modifier", "auteur", $id_auteur);
autoriser_exception("instituer", "auteur", $id_auteur);
include_spip('action/editer_auteur');
autoriser_exception('modifier', 'auteur', $id_auteur);
autoriser_exception('instituer', 'auteur', $id_auteur);
auteur_modifier($id_auteur, array('statut' => $mode));
autoriser_exception("modifier", "auteur", $id_auteur, false);
autoriser_exception("instituer", "auteur", $id_auteur, false);
autoriser_exception('modifier', 'auteur', $id_auteur, false);
autoriser_exception('instituer', 'auteur', $id_auteur, false);
return array('message_ok' => _T('form_forum_email_deja_enregistre'), 'id_auteur' => $id_auteur);
}
@ -148,7 +197,7 @@ function formulaires_inscription_traiter_dist($mode = '', $id = 0, $redirect =''
$mail_destination = sql_getfetsel('email','spip_auteurs',"id_auteur=" . lire_config('balint/id_contact'));
$inscrire_auteur = charger_fonction('inscrire_auteur', 'action');
$desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id' => $id));
$desc = $inscrire_auteur($mode, $mail_complet, $nom, $options);
// AJOUT GAMUZA - BALINT
$msg = "Une personne vient de s'inscrire sur le site de l'AIPB :
@ -195,7 +244,16 @@ function formulaires_inscription_traiter_dist($mode = '', $id = 0, $redirect =''
return array('message_erreur' => $desc);
} // OK
else {
return array('redirect' => $redirect, 'message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']);
}
$retours = array(
'message_ok' => _T('form_forum_identifiant_mail'),
'id_auteur' => $desc['id_auteur'],
);
// Si on demande à rediriger juste après validation du formulaire
if ($retour) {
$retours['redirect'] = $retour;
}
return $retours;
}
}