From 301fcde004892e3424472559da0118ffd4b8e596 Mon Sep 17 00:00:00 2001 From: paidge Date: Tue, 12 Oct 2021 09:15:28 +0200 Subject: [PATCH] =?UTF-8?q?Remplacement=20du=20s=C3=A9lecteur=20de=20docum?= =?UTF-8?q?ent=20par=20un=20input['file']?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configurer_tarteaucitron_ouverture.html | 18 ++- .../configurer_tarteaucitron_ouverture.php | 134 +++++++++++++++--- javascript/tarteaucitron_config.html | 4 +- lang/tarteaucitron_fr.php | 4 + paquet.xml | 1 + tarteaucitron_administrations.php | 4 + 6 files changed, 143 insertions(+), 22 deletions(-) diff --git a/formulaires/configurer_tarteaucitron_ouverture.html b/formulaires/configurer_tarteaucitron_ouverture.html index 765b24e..398e2cf 100644 --- a/formulaires/configurer_tarteaucitron_ouverture.html +++ b/formulaires/configurer_tarteaucitron_ouverture.html @@ -3,7 +3,7 @@ [

(#ENV*{message_ok})

] [

(#ENV*{message_erreur})

] -
+
#ACTION_FORMULAIRE{#ENV{action}} @@ -12,10 +12,22 @@

<:tarteaucitron:cfg_btn_showIcon_explication:>

#GENERER_SAISIES{#ENV{_saisies}} + + #SET{name,upload_icon} + #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
+ + [(#ENV{src_img}|oui) + [(#INCLURE{fond=formulaires/inc-apercu-logo,env,logo=#ENV{src_img},quoi=icon,editable,_options=#ARRAY{image_reduire,780}})] + ][(#ENV{src_img}|non) +
<:tarteaucitron:cfg_icon_explication:>
+ [(#GET{erreurs})] + + ] +
-

 

- + \ No newline at end of file diff --git a/formulaires/configurer_tarteaucitron_ouverture.php b/formulaires/configurer_tarteaucitron_ouverture.php index 8663231..c1b26ea 100644 --- a/formulaires/configurer_tarteaucitron_ouverture.php +++ b/formulaires/configurer_tarteaucitron_ouverture.php @@ -1,13 +1,125 @@ preparer_input_class( + 'bigup', + ['previsualiser' => true, 'editer_class' => ''] + ); + return $formulaire; +} + +// Déclaration des champs du formulaire et de leur valeur par défaut +function formulaires_configurer_tarteaucitron_ouverture_data() : array { + return [ + 'ouverture' => "", + 'iconPosition' => "BottomRight", + 'cookieslist' => "", // array("false") + 'icon' => _DIR_IMG . "tarteaucitron_icon.png", + ]; +} + +function formulaires_configurer_tarteaucitron_ouverture_charger_dist(){ + $data = formulaires_configurer_tarteaucitron_ouverture_data(); + + $valeurs = array( + 'ouverture' => lire_config('tarteaucitron/ouverture'), + 'iconPosition' => lire_config('tarteaucitron/iconPosition', $data['iconPosition']), + 'cookieslist' => lire_config('tarteaucitron/cookieslist'), + 'upload_icon' => '' + ); + + if (file_exists($data['icon'])) { + $valeurs["src_img"] = $data['icon']; + } + + // Nécessaire pour bigup + $valeurs['_bigup_rechercher_fichiers'] = true; + + return $valeurs; +} + +function formulaires_configurer_tarteaucitron_ouverture_verifier_dist(){ + $erreurs = array(); + + if (!in_array(_request("ouverture"),array('','image','alertSmall'))) { + $erreurs['ouverture'] = _T('avis_1_erreur_saisie'); + } + + if (!in_array(_request("iconPosition"),array('BottomRight','BottomLeft','TopRight','TopLeft'))) { + $erreurs['iconPosition'] = _T('avis_1_erreur_saisie'); + } + + if (_request("supprimer_icon")) { + // rien à vérifier + } elseif (!empty($_FILES['upload_icon'])) { + $file = $_FILES['upload_icon']; + $chemin = $file['tmp_name']; + $infos_image = @getImageSize($chemin); + $largeur = $infos_image[0]; + $hauteur = $infos_image[1]; + + if (($largeur != 50) && ($hauteur != 50)) { + $erreurs['upload_icon'] = _T('tarteaucitron:erreur_taille_icone', array('name' => $file['name'])); + } + + include_spip('action/ajouter_documents'); + $extension = pathinfo($file['name'], PATHINFO_EXTENSION); + $extension = corriger_extension(strtolower($extension)); + + if (!in_array($extension, ['png'])) { + $erreurs['upload_icon'] = _T('erreur_type_fichier'); + } + + if (array_key_exists('upload_icon',$erreurs)) { + @unlink($file['tmp_name']); + } + } + + return $erreurs; +} + +function formulaires_configurer_tarteaucitron_ouverture_traiter_dist(){ + $retours = [ + 'message_ok' => _T('config_info_enregistree'), + 'editable' => true, + ]; + + $data = formulaires_configurer_tarteaucitron_ouverture_data(); + $dest = $data['icon']; + + if (_request("supprimer_icon")) { + ecrire_config('tarteaucitron/icon', ''); + @unlink($dest); + } elseif (!empty($_FILES['upload_icon'])) { + $file = $_FILES['upload_icon']; + include_spip('inc/documents'); + deplacer_fichier_upload($file['tmp_name'], $dest); + ecrire_config('tarteaucitron/icon', $dest); + } + + include_spip('inc/invalideur'); + suivre_invalideur('1'); # tout effacer + + if ((!ecrire_config('tarteaucitron/ouverture',_request('ouverture'))) || + (!ecrire_config('tarteaucitron/iconPosition',_request('iconPosition'))) || + (!ecrire_config('tarteaucitron/cookieslist',_request('cookieslist')))) + { + $ret['message_erreur'] = _T('erreur_technique_enregistrement_impossible'); + } + + return $retours; +} + function formulaires_configurer_tarteaucitron_ouverture_saisies_dist(){ - // $saisies est un tableau décrivant les saisies à afficher dans le formulaire de configuration $saisies = array( array( 'saisie' => 'selection', @@ -26,9 +138,8 @@ function formulaires_configurer_tarteaucitron_ouverture_saisies_dist(){ 'saisie' => 'selection', 'options' => array( 'nom' => 'iconPosition', - 'option_intro' => '<:tarteaucitron:cfg_choose_option:>', 'label' => '<:tarteaucitron:cfg_iconposition:>', - 'defaut' => 'BottomRight', + 'cacher_option_intro' => 'oui', 'data' => array( 'BottomRight' => '<:tarteaucitron:cfg_position_bd:>', 'BottomLeft' => '<:tarteaucitron:cfg_position_bg:>', @@ -38,15 +149,6 @@ function formulaires_configurer_tarteaucitron_ouverture_saisies_dist(){ 'afficher_si' => '@ouverture@ == "image"' ) ), - array( - 'saisie' => 'selecteur_document', - 'options' => array( - 'nom' => 'icon', - 'label' => '<:tarteaucitron:cfg_icon:>', - 'media' => 'image', - 'afficher_si' => '@ouverture@ == "image"' - ) - ), array( 'saisie' => 'checkbox', 'options' => array( diff --git a/javascript/tarteaucitron_config.html b/javascript/tarteaucitron_config.html index efa754d..1f7d065 100644 --- a/javascript/tarteaucitron_config.html +++ b/javascript/tarteaucitron_config.html @@ -15,9 +15,7 @@ /* Gestion de la petite icone Cookie */ "showIcon": [(#CONFIG{tarteaucitron/ouverture}|=={'image'}|?{true,false})], /* Show cookie Icon or not */ - - "iconSrc" : "#URL_DOCUMENT", - + ["iconSrc" : "(#CONFIG{tarteaucitron/icon})",] "iconPosition": "#CONFIG{tarteaucitron/iconPosition, BottomRight}", /* BottomRight, BottomLeft, TopRight and TopLeft */ "adblocker": [(#CONFIG{tarteaucitron/adblocker}|table_valeur{0}|?{true,false})], /* Afficher un message si un adblocker est détecté */ diff --git a/lang/tarteaucitron_fr.php b/lang/tarteaucitron_fr.php index cb86886..4d33f51 100644 --- a/lang/tarteaucitron_fr.php +++ b/lang/tarteaucitron_fr.php @@ -51,6 +51,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'cfg_group_services' => 'Regrouper les services', 'cfg_group_services_explication' => 'Par type de service', 'cfg_icon' => 'Icône', + 'cfg_icon_explication' => 'Choisissez une image PNG de 50px de côté', 'cfg_iconposition' => 'Positionner le bouton', 'cfg_image' => 'Image', 'cfg_installer' => 'Activer', @@ -88,6 +89,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'cfg_titre_bandeau' => 'Affichage', 'cfg_titre_technique' => 'Technique', + // E + 'erreur_taille_icone' => 'Le fichier « @name@ » doit faire 50px de côté', + // I 'id_contenu' => 'Insérer l\'id de votre contenu :', diff --git a/paquet.xml b/paquet.xml index 7cf6ec6..8672006 100644 --- a/paquet.xml +++ b/paquet.xml @@ -19,6 +19,7 @@ Logo au format SVG par Philippe Guillot + diff --git a/tarteaucitron_administrations.php b/tarteaucitron_administrations.php index 064b213..e07afe7 100644 --- a/tarteaucitron_administrations.php +++ b/tarteaucitron_administrations.php @@ -53,6 +53,10 @@ function tarteaucitron_upgrade($nom_meta_base_version, $version_cible) { * @return void **/ function tarteaucitron_vider_tables($nom_meta_base_version) { + $icon = _DIR_IMG . "tarteaucitron_icon.png"; + if (file_exists($icon)) { + @unlink($icon); + } effacer_meta('tarteaucitron'); effacer_meta($nom_meta_base_version); }