Pages: 1
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)
Hors ligne
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.
Hors ligne
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...
Dernière modification par Zaphod (2011-04-10 12:31:39)
Hors ligne
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...
Hors ligne
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>
Hors ligne
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...)
Hors ligne
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)
Hors ligne
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 ;-)
Hors ligne
Plugin livré:
[extension by P@t] Posted Date Changer
Hors ligne
Pages: 1