•  » Plugins
  •  » [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

#1 2011-04-10 11:56:37

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

[Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

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

#2 2011-04-10 11:59:33

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

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.


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#3 2011-04-10 12:20:43

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

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

#4 2011-04-10 13:06:37

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

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

#5 2011-04-10 14:07:11

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

Code du main.inc.php:

Code:

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:

Code:

{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>

P@t

Hors ligne

#6 2011-04-10 15:28:56

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

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

#7 2011-04-10 23:43:37

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

Je vais le publier, car ça fait un très bon exemple de plugin pour ajouter une action au batch manager.


P@t

Hors ligne

#8 2011-04-11 00:04:53

Zaphod
Former Piwigo Team
Toulouse
2006-11-13
2422

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

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

#9 2011-04-11 00:23:39

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

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


P@t

Hors ligne

#10 2011-04-13 15:54:08

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?


P@t

Hors ligne

  •  » Plugins
  •  » [Résolu] Modifier la date d'ajout dans le gestionnaire par lot ?

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2025 · Contact