#1 2009-07-17 15:45:14

Anthony
Membre
2009-07-17
11

Automatisation de tâches

Bonjour,
J'utilise Piwigo depuis peu et j'aimerai automatiser certaines tâches.
J'ai un dossier style DropBox sur mon serveur où je dépose toutes mes photos, ensuite j'ai fait un script PHP qui déplace les photos dans les bons dossiers en fonction des données IPTC.
Je cherche maintenant un moyen de créer automatiquement les thumbnails et de lancer la synchronisation, tout cela sans passer par l'interface d'administration mais simplement en lançant mon script.
Donc ma question est: est-il possible d'ajouter ces fonctionnalités à mon script? si oui, comment?
Merci d'avance

Anthony

Hors ligne

#2 2009-07-17 15:49:15

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Automatisation de tâches

Hors ligne

#3 2009-07-20 11:05:27

Anthony
Membre
2009-07-17
11

Re: Automatisation de tâches

Bonjour,
Je n'ai pas trouvé ce que je cherchais dans les Webservices.
En revanche j'ai trouvé la fonction "RatioResizeImg" dans "admin/thumbnail.php" qui doit créer la miniature si j'ai bien compris.
J'inclus donc "thumbnail.php" au début de mon script mais j'obtiens une erreur : "Fatal error: Call to undefined function check_status() in C:\wamp\***\***\piwigo\admin\thumbnail.php on line 30".
Dois-je inclure d'autres fichiers ou bien cette méthode ne peut pas fonctionner?
Merci

Anthony

Hors ligne

#4 2009-07-20 11:50:30

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Automatisation de tâches

Attention à ne pas solliciter des fonctions d'administration (accessibles à partir de l'administration uniquement en théorie) à partir de modules de la partie publique.
Le risque étant de créer des failles de sécurité sur son site.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#5 2009-07-20 11:57:40

Anthony
Membre
2009-07-17
11

Re: Automatisation de tâches

@VDigital, Piwigo est sur un intranet donc je ne me préoccupe pas vraiment des questions de sécurité mais merci quand même c'est toujours intéressant à savoir ;-)

Hors ligne

#6 2009-07-20 15:24:02

Anthony
Membre
2009-07-17
11

Re: Automatisation de tâches

Bon j'ai finalement créé mes miniatures avec les fonctions PHP que je ne connaissais pas, c'est pas bien compliqué.
Il me reste maintenant à trouver comment faire une synchronisation rapide à la fin de mon script. Si quelqu'un a une idée je suis preneur car j'avoue ne pas du tout voir comment faire.
Merci d'avance.

Anthony

Hors ligne

#7 2009-07-20 19:58:02

grum
Former Piwigo Team
50% Nantes - 50% Paris
2007-09-10
2502

Re: Automatisation de tâches

Pour ma part, je fait appel à imagemagick via la commande exec().

ci-après ma fonction de conversion, qui nécessitera que tu l'adaptes car :
1/ elle est bien orientée à mon environnement de travail
2/ expoite d'autres fonctions dont le code n'est pas reporté ici
çà te donne une base de travail

Code:

 // ----------------------------------------------------------------------------------------------------------------
 // écrit le $nouveaufichier à partir de $fichier
 // retour:  0=ok
 //         -1=ko
 // $mode = "conv"  : conversion
 //        = "thumb" : thumbnail
 // $fichier : fichier à convertir
 // $nouveaufichier : le fichier convertit
 // $hauteur : hauteur/largeur maximale de la photo
 // $qualité : de 1 à 100 (100 = qualité maxi)
 // $ecrase : écraser le fichier en sortie s'il existe déjà
 // $convertapp : ligne de commande du binaire imagemagick
 function traite_jpeg($fichier, $nouveaufichier, $hauteur, $qualite, $ecrase, $convertapp, $mode="conv", $nfo="", $interlace="")
 {
  if(!$ecrase&&file_exists($nouveaufichier)) {
    echo " <$fichier> existe déjà\n";
    return(0);
  } else
  {
    echo "----------------------------------------------------------------------------\nFichier : ".$fichier."\n";
    if($nfo!="")
    {echo "          ".$nfo."\n";}


  echo "          ".formatoctet(filesize($fichier),"A"," ",2,true);
    creer_arborescence($nouveaufichier);
  if($mode=="conv")
  { 
    $cmd=$convertapp." \"".$fichier."\" -resize x".$hauteur." -quality ".$qualite." -profile AdobeRGB1998.icc -profile GenRGB.icc  ";
    if($interlace!="") 
    { $cmd.=" -interlace ".$interlace." "; }
    $cmd.="\"".$nouveaufichier."\""; 
  }
  else
    { 
    $cmd=$convertapp." \"".$fichier."\" -thumbnail ".$hauteur."x".$hauteur." -quality ".$qualite." \"".$nouveaufichier."\""; 
  }

  exec($cmd, $output);
  echo " => ".formatoctet(filesize($nouveaufichier),"A"," ",2,true)."\n";
    for($i=0;$i<count($output);$i++) {
    echo $output[$i]."\n";
    }
    return(1);
  }

 } //function traite_jpeg($fichier, $nouveaufichier, $hauteur, $qualite, $ecrase)

Mes photos avec Piwigo évidemment !
[ www.grum.fr ] [ photos.grum.fr ]

Hors ligne

#8 2009-07-21 09:36:20

Anthony
Membre
2009-07-17
11

Re: Automatisation de tâches

@grum,
Si j'ai bien compris ton code, il permet de créer les miniatures?
Comme dis plus haut j'ai régler mon problème de miniature. Je cherche maintenant à effectuer une synchronisation rapide sans passer par l'interface d'admin.
J'ai pensé à 2 solutions :
-Appeler le fichier .php de piwigo qui s'occupe de faire la synchronisation rapide.
-Recopier le bon morceau de code dans mon script.
Est-ce qu'une de ces 2 solutions est réalisable? si oui, comment?
S'il vous manque des informations pour m'apporter une réponse n'hésitez pas à me le faire savoir.
Merci d'avance

Anthony

Hors ligne

#9 2009-07-30 08:51:44

Anthony
Membre
2009-07-17
11

Re: Automatisation de tâches

Bonjour,
J'ai abandonné l'idée de faire une synchronisation automatique pour que l'admin garde un contrôle là-dessus.
J'aimerai maintenant qu'un lien "Synchronisation rapide" soit disponible dans la partie identification du menu.
J'ai donc fait un template-extension pour le fichier menubar_identification.tpl en ajoutant ceci :

Code:

{if isset($U_ADMIN)}
  <li><a href="{$U_ADMIN}" title="{'hint_admin'|@translate}">{'admin'|@translate}</a></li>
  <li><a href="javascript:document.QuickSynchro.submit();">Synchronisation rapide</a></li>
  <form name="QuickSynchro" action="./admin.php?page=site_update&amp;site=1" method="post" id="QuickSynchro" style="display: block; text-align:right;">
  <div>
  <input type="hidden" name="sync" value="files" checked="checked" />
  <input type="hidden" name="display_info" value="1" checked="checked" />
  <input type="hidden" name="add_to_caddie" value="1" checked="checked" />
  <input type="hidden" name="privacy_level" value="0" checked="checked" />
  <input type="hidden" name="sync_meta" checked="checked"/>
  <input type="hidden" name="simulate" value="0" />
  <input type="hidden" name="subcats-included" value="1" checked="checked"/>
  </div>
  </form>
  {/if}

Cela fait comme-ci on cliquait sur "Synchroniser" du menu "Catégorie" mais cela n'exécute en aucun cas une synchronisation rapide.
Quelqu'un peut-il me dire ce qui ne va pas?
Merci d'avance

Anthony

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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