Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

Anthony
2009-07-30 08:51:44

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

Anthony
2009-07-21 09:36:20

@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

grum
2009-07-20 19:58:02

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)
Anthony
2009-07-20 15:24:02

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

Anthony
2009-07-20 11:57:40

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

VDigital
2009-07-20 11:50:30

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.

Anthony
2009-07-20 11:05:27

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

mistic100
2009-07-17 15:49:15
Anthony
2009-07-17 15:45:14

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

Pied de page des forums

Propulsé par FluxBB

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