From 755469387fb9197ebe19f3996ff5647706232563 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Fri, 1 Oct 2010 21:55:40 +0000 Subject: [PATCH] #FORMULAIRE_CONFIGURER_REDUCTEUR remplace configurer/reducteur a verifier dans IE7 qui gere mal les <button> --- .gitattributes | 3 +- ecrire/configuration/reducteur.php | 161 ------------------ prive/formulaires/configurer_reducteur.html | 102 +++++++++++ prive/formulaires/configurer_reducteur.php | 99 +++++++++++ .../contenu/page-configurer_avancees.html | 7 +- prive/style_prive.html | 8 +- 6 files changed, 211 insertions(+), 169 deletions(-) delete mode 100644 ecrire/configuration/reducteur.php create mode 100644 prive/formulaires/configurer_reducteur.html create mode 100644 prive/formulaires/configurer_reducteur.php diff --git a/.gitattributes b/.gitattributes index 796b1a7eec..44016637b4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -76,7 +76,6 @@ ecrire/configuration/avertisseur.php -text ecrire/configuration/index.php -text ecrire/configuration/moderniseur_html.php -text ecrire/configuration/previsualiseur.php -text -ecrire/configuration/reducteur.php -text ecrire/configuration/relayeur.php -text ecrire/core.xml -text ecrire/exec/403.php -text @@ -373,6 +372,8 @@ prive/formulaires/configurer_preferences.html -text prive/formulaires/configurer_preferences.php -text prive/formulaires/configurer_redacteurs.html -text prive/formulaires/configurer_redacteurs.php -text +prive/formulaires/configurer_reducteur.html -text +prive/formulaires/configurer_reducteur.php -text prive/formulaires/configurer_rubriques.html -text prive/formulaires/configurer_rubriques.php -text prive/formulaires/configurer_transcodeur.html -text diff --git a/ecrire/configuration/reducteur.php b/ecrire/configuration/reducteur.php deleted file mode 100644 index 9bfb94c9c0..0000000000 --- a/ecrire/configuration/reducteur.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php - -/***************************************************************************\ - * SPIP, Systeme de publication pour l'internet * - * * - * Copyright (c) 2001-2010 * - * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * - * * - * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * - * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * -\***************************************************************************/ - -if (!defined("_ECRIRE_INC_VERSION")) return; - -include_spip('inc/presentation'); -include_spip('inc/config'); - -function configuration_reducteur_dist() -{ - global $spip_lang_left, $spip_lang_right; - $image_process = _request('image_process'); - - // application du choix de vignette - if ($image_process) { - // mettre a jour les formats graphiques lisibles - switch ($image_process) { - case 'gd1': - case 'gd2': - $formats_graphiques = $GLOBALS['meta']['gd_formats_read']; - break; - case 'netpbm': - $formats_graphiques = $GLOBALS['meta']['netpbm_formats']; - break; - case 'convert': - case 'imagick': - $formats_graphiques = 'gif,jpg,png'; - break; - default: #debug - $formats_graphiques = ''; - $image_process = 'non'; - break; - } - ecrire_meta('formats_graphiques', $formats_graphiques,'non'); - ecrire_meta('image_process', $image_process,'non'); - } else $formats_graphiques = $GLOBALS['meta']["formats_graphiques"]; - - $nb_process = 0; - $res = ''; - - // Tester les formats - if ( /* GD disponible ? */ - function_exists('ImageGif') - OR function_exists('ImageJpeg') - OR function_exists('ImagePng') - ) { - $res .= afficher_choix_vignette($p = 'gd1'); - if (function_exists("ImageCreateTrueColor")) { - $res .= afficher_choix_vignette($p = 'gd2'); - } - } - - if (_PNMSCALE_COMMAND!='') { - $res .= afficher_choix_vignette($p = 'netpbm'); - } - - if (function_exists('imagick_readimage')) { - $res .=afficher_choix_vignette('imagick'); - } - - if (_CONVERT_COMMAND!='') { - $res .= afficher_choix_vignette($p = 'convert'); - } - - - $test_out = ""; - if ($GLOBALS['meta']['image_process']=='gd1' OR $GLOBALS['meta']['image_process']=='gd2') { - effacer_meta('max_taille_vignettes'); - $test_out .= "<p>"._T('info_taille_maximale_images')."</p>"; - $time = time(); - $url = generer_url_action("tester_taille", "arg=3000&time=$time"); - $test_out .= "<iframe style='border:0;height:3em;overflow:hidden;' src='$url'></iframe>"; - $test_out .= "<br style='clear:both;' />"; - } - else { - effacer_meta('max_taille_vignettes'); - } - - return ajax_action_greffe("configurer-reducteur", '', - debut_cadre_trait_couleur("image-24.gif", true, "", _T("info_image_process_titre")) - . "<p class='verdana2'>" - . _T('info_image_process') - . "</p>" - . $res - . "<br class='nettoyeur' />" - . _T('info_image_process2') - . $test_out - . (!$formats_graphiques ? '' : format_choisi()) - . fin_cadre_trait_couleur(true)); -} - -function format_choisi() -{ - global $spip_lang_left, $spip_lang_right; - - $creer_preview = $GLOBALS['meta']["creer_preview"]; - $taille_preview = $GLOBALS['meta']["taille_preview"]; - if ($taille_preview < 10) $taille_preview = 120; - - $res .= "<p class='verdana2'>"; - $res .= _T('info_ajout_image'); - $res .= "</p>\n"; - $res .= "<div class='verdana2'>"; - $res .= bouton_radio("creer_preview", "oui", _T('item_choix_generation_miniature'), $creer_preview == "oui", "changeVisible(this.checked, 'config-preview', 'block', 'none');"); - $res .= '</div>'; - - if ($creer_preview == "oui") $style = "block;"; else $style = "none;"; - - $res .= "<div id='config-preview' class='verdana2' style='display: $style margin-$spip_lang_left: 40px;'>" - . "<label for='taille_preview'>" - ._T('info_taille_maximale_vignette') - . "</label>" - . "<br /><input type='text' name='taille_preview' id='taille_preview' value='$taille_preview' class='fondl' size='5' />"; - $res .= " "._T('info_pixels'); - - $res .= '<br /><br />'; - $res .= "</div>"; - $res .= bouton_radio("creer_preview", "non", _T('item_choix_non_generation_miniature'), $creer_preview != "oui", "changeVisible(this.checked, 'config-preview', 'none', 'block');"); - - return - debut_cadre_relief("", true, "", _T('info_generation_miniatures_images')) - . ajax_action_post('configuration', 'reducteur', 'config_fonctions', '#configurer-reducteur', $res) - . fin_cadre_relief(true); -} - -// http://doc.spip.org/@afficher_choix_vignette -function afficher_choix_vignette($process) { - - //global $taille_preview; - $taille_preview = 120; - - // Ici on va tester les capacites de GD independamment des tests realises - // dans les images spip_image -- qui servent neanmoins pour la qualite - /* if (function_exists('imageformats')) { - - } */ - - - $class = ''; - if ($process == $GLOBALS['meta']['image_process']) { - $class = " selected"; - } - return "\n<div class='vignette_reducteur$class'" - . "><a href='" - . generer_url_ecrire("config_fonctions", "image_process=$process") - . "'><img src='" - . generer_url_action("tester", "arg=$process&time=".time()) - . "' alt='$process' /></a><span>$process</span></div>\n"; - -} - -?> diff --git a/prive/formulaires/configurer_reducteur.html b/prive/formulaires/configurer_reducteur.html new file mode 100644 index 0000000000..420423890e --- /dev/null +++ b/prive/formulaires/configurer_reducteur.html @@ -0,0 +1,102 @@ +<div class="formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}"> +<h3 class='titrem'><img src="#CHEMIN_IMAGE{image-24.png}" class="cadre-icone" /><:info_generation_miniatures_images:></h3> + [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] + [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] + [(#ENV{editable}) + <form method='post' action='#ENV{action}' enctype='multipart/form-data'><div> + [(#REM) declarer les hidden qui declencheront le service du formulaire + parametre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} + <input type='submit' class='submit' value='<:bouton_enregistrer:>' style="display:none;"/> + <ul> + #SET{name,image_process}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} + <li class="haut editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> + <label for="#GET{name}"><:info_image_process:>#AIDER{logoart}</label>[ + <span class='erreur_message'>(#GET{erreurs})</span> + ] + #SET{process,gd1} + [<button + type="submit" + class="vignette_reducteur[(#ENV{image_process}|=={#GET{process}}|oui)selected]" + style="background-image:url((#GET{process}|url_vignette_choix));" + name="image_process_#EVAL{chr(91)}[(#GET{process})]#EVAL{chr(93)}"> + [(#GET{process}|strtoupper)] + </button>] + #SET{process,gd2} + [<button + type="submit" + class="vignette_reducteur[(#ENV{image_process}|=={#GET{process}}|oui)selected]" + style="background-image:url((#GET{process}|url_vignette_choix));" + name="image_process_#EVAL{chr(91)}[(#GET{process})]#EVAL{chr(93)}"> + [(#GET{process}|strtoupper)] + </button>] + #SET{process,netpbm} + [<button + type="submit" + class="vignette_reducteur[(#ENV{image_process}|=={#GET{process}}|oui)selected]" + style="background-image:url((#GET{process}|url_vignette_choix));" + name="image_process_#EVAL{chr(91)}[(#GET{process})]#EVAL{chr(93)}"> + [(#GET{process}|strtoupper)] + </button>] + #SET{process,imagick} + [<button + type="submit" + class="vignette_reducteur[(#ENV{image_process}|=={#GET{process}}|oui)selected]" + style="background-image:url((#GET{process}|url_vignette_choix));" + name="image_process_#EVAL{chr(91)}[(#GET{process})]#EVAL{chr(93)}"> + [(#GET{process}|strtoupper)] + </button>] + #SET{process,convert} + [<button + type="submit" + class="vignette_reducteur[(#ENV{image_process}|=={#GET{process}}|oui)selected]" + style="background-image:url((#GET{process}|url_vignette_choix));" + name="image_process_#EVAL{chr(91)}[(#GET{process})]#EVAL{chr(93)}"> + [(#GET{process}|strtoupper)] + </button>] + <p class="explication"><:info_image_process2:></p> + </li> + [(#ENV{image_process}|match{^(gd1|gd2)$}|oui) + #SET{name,max_taille_vignettes}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} + <li class="long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> + <label for="#GET{name}"><:info_taille_maximale_images:></label>[ + <span class='erreur_message'>(#GET{erreurs})</span> + ]<iframe style='border:0;height:3em;overflow:hidden;' src='[(#SELF|parametre_url{action,tester_taille}|parametre_url{arg,3000}||parametre_url{time,#EVAL{time()}})]'></iframe> + </li> + ][(#ENV{formats_graphiques}|oui) + <li class="fieldset"> + <fieldset><legend><:info_generation_miniatures_images:></legend> + <p><:info_ajout_image:></p> + <ul> + #SET{name,creer_preview}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} + <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"> + [ + <span class='erreur_message'>(#GET{erreurs})</span> + ]<div class="choix"> + <input type="radio" name="#GET{name}" id="#GET{name}_non" value="non" + onchange="if ($(this).attr('checked')) $('.editer_taille_preview').hide('fast');" + [(#ENV{#GET{name}}|=={oui}|non)checked="checked"] /><label for="#GET{name}_non"><:item_choix_non_generation_miniature:></label> + </div> + <div class="choix"> + <input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui" + onchange="if ($(this).attr('checked')) $('.editer_taille_preview').show('fast');" + [(#ENV{#GET{name}}|=={oui}|oui)checked="checked"] /><label for="#GET{name}_oui"><:item_choix_generation_miniature:></label> + </div> + </li> + #SET{name,taille_preview}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} + <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]"[(#ENV{creer_preview}|=={oui}|non)style='display:none;']> + <label for="#GET{name}"><:info_taille_maximale_vignette:></label>[ + <span class='erreur_message'>(#GET{erreurs})</span> + ]<input type='text' name='#GET{name}' id='#GET{name}' value='#ENV{#GET{name}}' /> + </li> + </ul> + </fieldset> + </li> + ] + </ul> + [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] + <!--extra--> + <p class='boutons'><span class='image_loading'> </span><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p> + </div></form> + ] +</div> \ No newline at end of file diff --git a/prive/formulaires/configurer_reducteur.php b/prive/formulaires/configurer_reducteur.php new file mode 100644 index 0000000000..bb1c0da712 --- /dev/null +++ b/prive/formulaires/configurer_reducteur.php @@ -0,0 +1,99 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2010 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + +function formulaires_configurer_reducteur_charger_dist(){ + foreach(array( + "image_process", + "formats_graphiques", + "creer_preview", + "taille_preview", + ) as $m) + $valeurs[$m] = $GLOBALS['meta'][$m]; + + $valeurs['taille_preview'] = intval($valeurs['taille_preview']); + if ($valeurs['taille_preview']<10) + $valeurs['taille_preview'] = 120; + return $valeurs; +} + + +function formulaires_configurer_reducteur_traiter_dist(){ + $res = array('editable'=>true); + + if (is_array($image_process = _request('image_process_'))) { + $image_process = array_keys($image_process); + $image_process = reset($image_process); + + // application du choix de vignette + if ($image_process) { + // mettre a jour les formats graphiques lisibles + switch ($image_process) { + case 'gd1': + case 'gd2': + $formats_graphiques = $GLOBALS['meta']['gd_formats_read']; + break; + case 'netpbm': + $formats_graphiques = $GLOBALS['meta']['netpbm_formats']; + break; + case 'convert': + case 'imagick': + $formats_graphiques = 'gif,jpg,png'; + break; + default: #debug + $formats_graphiques = ''; + $image_process = 'non'; + break; + } + ecrire_meta('formats_graphiques', $formats_graphiques,'non'); + ecrire_meta('image_process', $image_process,'non'); + } + } + + foreach(array( + "creer_preview", + "taille_preview", + ) as $m) + if (!is_null($v=_request($m))) + ecrire_meta($m, $v=='oui'?'oui':'non'); + + $res['message_ok'] = _T('config_info_enregistree'); + return $res; +} + +function url_vignette_choix($process){ + switch ($process){ + case 'gd2': + if (!function_exists("ImageCreateTrueColor")) + return ''; + case 'gd1': + if (!function_exists('ImageGif') + AND !function_exists('ImageJpeg') + AND !function_exists('ImagePng')) + return ''; + break; + case 'netpbm': + if (_PNMSCALE_COMMAND=='') + return ''; + break; + case 'imagick': + if (!function_exists('imagick_readimage')) + return ''; + break; + case 'convert': + if (_CONVERT_COMMAND=='') + return ''; + break; + } + return generer_url_action("tester", "arg=$process&time=".time()); +} diff --git a/prive/squelettes/contenu/page-configurer_avancees.html b/prive/squelettes/contenu/page-configurer_avancees.html index 06adb61928..3aa7719d32 100644 --- a/prive/squelettes/contenu/page-configurer_avancees.html +++ b/prive/squelettes/contenu/page-configurer_avancees.html @@ -1,10 +1,13 @@ [(#AUTORISER{configurer,interactions}|interdire_acces)] <h1><:onglet_fonctions_avances:></h1> +<div class="ajax"> + #FORMULAIRE_CONFIGURER_REDUCTEUR +</div> + <?php include_spip('inc/presentation'); - $reducteur = charger_fonction('reducteur', 'configuration'); $avertisseur = charger_fonction('avertisseur', 'configuration'); $previsualiseur = charger_fonction('previsualiseur', 'configuration'); $relayeur = charger_fonction('relayeur', 'configuration'); @@ -12,8 +15,6 @@ echo - $reducteur(), // Creation automatique de vignettes - $avertisseur(), // Notification de modification des articles $previsualiseur(), // Previsualisation sur le site public diff --git a/prive/style_prive.html b/prive/style_prive.html index 5916f7de6c..3b27db24f1 100644 --- a/prive/style_prive.html +++ b/prive/style_prive.html @@ -693,10 +693,10 @@ td.vu { background: #ccc; } .upload_message ol li {padding: 2px;} /* config/reducteur */ -.vignette_reducteur { text-align: center; vertical-align: middle; float: #GET{left}; padding:2px; border:2px solid #fff; width:150px; height:170px; } -.vignette_reducteur.selected { font-weight: bold; border:2px dotted #GET{claire}; } -.vignette_reducteur span { display: block; } - +.formulaire_configurer_reducteur .vignette_reducteur {text-align: center; float: #GET{left};padding:2px; border:2px solid #ddd; width:154px;padding-top:150px;margin:2px;background-position: top center;background-repeat: no-repeat;} +.formulaire_configurer_reducteur .vignette_reducteur:hover {border-color:#bbb;} +.formulaire_configurer_reducteur .vignette_reducteur.selected { font-weight: bold; border:2px dotted #GET{claire}; } +.formulaire_configurer_reducteur .vignette_reducteur.selected:hover {border-color:#GET{foncee};} /* pour les puces de changement rapide de statut ; NB: ca buggue car ca s'affiche en-dessous du cadre */ li .puce_statut { float: #GET{left}; padding-top: 5px; } -- GitLab