Plugin livré:
extension:528
Zaphod a écrit:
Oui c'est beaucoup plus simple que regenerateThumbnails ;)
(qui m'avait totalement démotivé quand j'ai regardé comment c'était fait... c'est largement au-dessus de mes compétences)
Surtout que regenerateThumbnails n'utilise pas le trigger element_set_global_action pour gérer la soumission du formulaire car les miniatures sont régénérées en ajax (c'est le navigateur qui envoit les requêtes une par une au webservice, ce qui permet de traiter 10000 images sans risquer de provoquer de timeout sur le serveur).
Donc, non, regenerateThumbnails n'est pas un bon exemple du tout ;-)
Oui c'est beaucoup plus simple que regenerateThumbnails ;)
(qui m'avait totalement démotivé quand j'ai regardé comment c'était fait... c'est largement au-dessus de mes compétences)
Je vais le publier, car ça fait un très bon exemple de plugin pour ajouter une action au batch manager.
Ca a l'air de très bien fonctionner.
Merci !
Je me le suis installé en plugin, à voir après s'il faut le publier ou pas ?
Ca répond surement à un besoin très précis.
(moi dans l'absolu ça ne me dérange pas de le publier mais je n'en suis absolument pas l'auteur...)
Code du main.inc.php:
add_event_handler('loc_begin_element_set_global', 'change_date_element_set_template_data'); add_event_handler('element_set_global_action', 'change_date_element_action', 50, 2); function change_date_element_set_template_data() { global $template, $lang; $day = empty($_POST['date_available_day']) ? date('j') : $_POST['date_available_day']; $month = empty($_POST['date_available_month']) ? date('n') : $_POST['date_available_month']; $year = empty($_POST['date_available_year']) ? date('Y') : $_POST['date_available_year']; $month_list = $lang['month']; $month_list[0]='------------'; ksort($month_list); $template->assign(array( 'month_list' => $month_list, 'DATE_AVAILABLE_DAY' => (int)$day, 'DATE_AVAILABLE_MONTH'=> (int)$month, 'DATE_AVAILABLE_YEAR' => (int)$year, ) ); $template->set_filename('change_available_date', realpath(dirname(__FILE__).'/change_available_date.tpl')); $template->append('element_set_global_plugins_actions', array( 'ID' => 'date_available', 'NAME' => l10n('Change available date'), 'CONTENT' => $template->parse('change_available_date', true), ) ); } function change_date_element_action($action, $collection) { if ($action != 'date_available') { return; } $date_available = sprintf( '%u-%u-%u', $_POST['date_available_year'], $_POST['date_available_month'], $_POST['date_available_day'] ); $datas = array(); foreach ($collection as $image_id) { array_push( $datas, array( 'id' => $image_id, 'date_available' => $date_available ) ); } mass_updates( IMAGES_TABLE, array('primary' => array('id'), 'update' => array('date_available')), $datas ); }
Ensuite, il faut un fichier change_available_date.tpl:
{footer_script}{literal} pwg_initialization_datepicker("#date_available_day", "#date_available_month", "#date_available_year", "#date_available_linked_date", "#date_available_action_set"); {/literal}{/footer_script} <div id="set_date_available"> <select id="date_available_day" name="date_available_day"> <option value="0">--</option> {section name=day start=1 loop=32} <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$DATE_AVAILABLE_DAY}selected="selected"{/if}>{$smarty.section.day.index}</option> {/section} </select> <select id="date_available_month" name="date_available_month"> {html_options options=$month_list selected=$DATE_AVAILABLE_MONTH} </select> <input id="date_available_year" name="date_available_year" type="text" size="4" maxlength="4" value="{$DATE_AVAILABLE_YEAR}"> <input id="date_available_linked_date" name="date_available_linked_date" type="hidden" size="10" disabled="disabled"> </div>
J'ai réussi à bidouiller un truc qui marche "en dur" (j'ai juste un problème avec le datepicker mais ça n'est pas bien grave)
Mais ça reste une solution "en dur".
J'avais déja bricolé un truc pas beau avec l'ancien gestionnaire par lot (j'ai toujours eu ce besoin de changer les dates d'ajout).
Au final... un truc bricolé n'est pas super grave pour ce genre de modif ponctuelle.
Si j'arrive à comprendre comment ThumbnailRegeneration marche j'essaierai de faire un plugin...
A priori ça me semble faisaible...
Je vais commencer par regarder comment est foutu le nouveau gestionnaire par lot ainsi que le plugin ThumbnailRegeneration qui y ajoute une entrée.
[edit] mouais... j'ai l'impression que c'est un peu chaud à faire en fait...
J'ai la même problématique ! Etrange non ^^
Perso, c'est plus les commentaires qui me posent problèmes mais ça, c'est un autre sujet ;-)
En tous cas, +1 pour ton plugin.
Bonjour à tous,
Je suis en train de remettre à jour certaines photos de ma galerie (uploadées par FTP) par des photos uploadées via le plugin Lightroom.
Problème : du coup, mes photos apparaissent comme récentes alors qu'elles ne le sont pas.
Parallèlement, j'ai uploadées de vraies nouvelles photos que je veux faire apparaitre comme récentes.
Est-il possible d'imaginer un plugin qui qui ajoute une action dans le gestionnaire par lot ?
Est-ce facile à concevoir ?
(si ça ne semble pas trop dur... je pense que je vais m'y coller)