Valider a2134193 rédigé par paidge's avatar paidge
Parcourir les fichiers

ajout d'une saisie pour l'upload de l'icône + amélioration de la mise en page

parent cc93bd52
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+3 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<div id="formulaire_#FORM"" class="formulaire_spip formulaire_configurer formulaire_#FORM">
	<div class="box__header">
		<h3><:tarteaucitron:cfg_titre_ajouter_services:></h3>
	</div>
	<div>
		<ol class="explication">
			<:tarteaucitron:cfg_explication:>
+0 −13
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -12,19 +12,6 @@
				<p class="explication"><:tarteaucitron:cfg_btn_showIcon_explication:></p>
				<div class="editer-groupe">
					#GENERER_SAISIES{#ENV{_saisies}}

					#SET{name,upload_icon}
					#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
					<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur] afficher_si_visible" data-afficher_si="afficher_si({&quot;champ&quot;:&quot;ouverture&quot;,&quot;total&quot;:&quot;&quot;,&quot;operateur&quot;:&quot;==&quot;,&quot;valeur&quot;:&quot;image&quot;})">
						<label for="#GET{name}"><:tarteaucitron:cfg_icon:></label>
						[(#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)
							<div class="explication"><:tarteaucitron:cfg_icon_explication:></div>
							[<span class='erreur_message'>(#GET{erreurs})</span>]
							<input type="file" name="#GET{name}" class="file bigup" accept="image/png" />
						]
					</div>
				</div>
			</fieldset>
			<p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
+54 −44
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php
if (!defined('_ECRIRE_INC_VERSION')) return;
 
// Nécessaire pour bigup
/**
 * @param array $args
 * @param \Spip\Bigup\Formulaire $formulaire
 * @return \Spip\Bigup\Formulaire
 */
// Nécessaire pour bigup
function inc_bigup_medias_formulaire_configurer_tarteaucitron_ouverture_dist($args, $formulaire) {
	$formulaire->preparer_input_class(
		'bigup',
@@ -15,30 +15,14 @@ function inc_bigup_medias_formulaire_configurer_tarteaucitron_ouverture_dist($ar
	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']),
        'iconPosition' => lire_config('tarteaucitron/iconPosition', 'BottomRight'),
        '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;

@@ -56,29 +40,23 @@ function formulaires_configurer_tarteaucitron_ouverture_verifier_dist(){
        $erreurs['iconPosition'] = _T('avis_1_erreur_saisie');
    }

    if (_request("supprimer_icon")) {
    if (_request("supprimer_upload_icon")) {
		// rien à vérifier
	} elseif (!empty($_FILES['upload_icon'])) {
        $file = $_FILES['upload_icon'];
        $chemin = $file['tmp_name'];
        $infos_image = @getImageSize($chemin);
        $tmp_chemin = $file['tmp_name'];
        $infos_image = @getImageSize($tmp_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'])) {
        if (!$infos_image) {
            $erreurs['upload_icon'] = _T('erreur_type_fichier');
        } elseif (($largeur != 50) && ($hauteur != 50)) {
			$erreurs['upload_icon'] = _T('tarteaucitron:erreur_taille_icone', array('name' => $file['name']));
        }

        if (array_key_exists('upload_icon',$erreurs)) {
		    @unlink($file['tmp_name']);
		    @unlink($tmp_chemin);
        }
    }

@@ -86,34 +64,54 @@ function formulaires_configurer_tarteaucitron_ouverture_verifier_dist(){
}

function formulaires_configurer_tarteaucitron_ouverture_traiter_dist(){
    include_spip('inc/cvt_configurer');

    $retours = [
		'message_ok' => _T('config_info_enregistree'),
		'editable' => true,
	];

    $data = formulaires_configurer_tarteaucitron_ouverture_data();
    $dest = $data['icon'];
	// On garde en mémoire l'existant (l'API vide sinon)
	if ($icone_actuelle = lire_config('tarteaucitron/icon')) {
		set_request('icon', $icone_actuelle);
	}
	
	// On enregistre la nouvelle configuration
	$trace = cvtconf_formulaires_configurer_enregistre('configurer_tarteaucitron_ouverture', array());

    if (_request("supprimer_icon")) {
    // On vérifie si on supprime l'image existante
    if (_request("supprimer_upload_icon")) {
        ecrire_config('tarteaucitron/icon', '');
		@unlink($dest);
        if ($icone_actuelle) {
		    @unlink($icone_actuelle);
        }
    // On vérifie si on envoie une nouvelle image
	} elseif (!empty($_FILES['upload_icon'])) {
		include_spip('action/ajouter_documents');

		$file = $_FILES['upload_icon'];
		$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
		$extension = corriger_extension(strtolower($extension));
        $dest_name = 'tarteaucitron_icon.' . $extension;
        $dest =  _DIR_IMG . $dest_name;

		include_spip('inc/documents');
		deplacer_fichier_upload($file['tmp_name'], $dest);
        if ($chemin = deplacer_fichier_upload($file['tmp_name'],$dest)) {
            if ($icone_actuelle != $dest) {
                @unlink($icone_actuelle);
            }
            ecrire_config('tarteaucitron/icon', $dest);
        } else {
            $retours['message_ok'] = '';
            $retours['message_erreur'] = _T('texte_inc_meta_1', array('fichier' => $dest_name)) . ' ' .
                                         _T('texte_inc_meta_2') . ' ' .
                                         _T('texte_inc_meta_3', array('repertoire' => _DIR_IMG));
        }
	}

    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;
}

@@ -147,6 +145,18 @@ function formulaires_configurer_tarteaucitron_ouverture_saisies_dist(){
                'afficher_si' => '@ouverture@ == "image"'
            )
        ),
        array(
            'saisie' => 'tac_upload',
            'options' => array(
                'nom' => 'upload_icon',
                'accept' => 'image/*',
                'class' => 'bigup',
                'label' => '<:tarteaucitron:cfg_icon:>',
                'explication' => '<:tarteaucitron:cfg_icon_explication:>',
                'afficher_si' => '@ouverture@ == "image"',
                'src_img' => lire_config('tarteaucitron/icon')
            )
        ),
        array(
            'saisie' => 'checkbox',
            'options' => array(
+16 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<div id="formulaire_#FORM"" class="formulaire_spip formulaire_configurer formulaire_#FORM">
    <div class="box__header">
		<h3><:tarteaucitron:cfg_titre_activation_services:></h3>
	</div>
    [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
	<form method="post" action="#ENV{action}">
        <div>
			#ACTION_FORMULAIRE{#ENV{action}}
            <div class="editer-groupe">
                #GENERER_SAISIES{#ENV{_saisies}}
            </div>
	        <p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
        </div>
    </form>
</div>
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -51,7 +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_icon_explication' => 'Choisissez une image carrée de 50px de côté',
	'cfg_iconposition' => 'Positionner le bouton',
	'cfg_image' => 'Image',
	'cfg_installer' => 'Activer',
Chargement en cours