Annonce

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

Gotcha
2009-11-24 18:16:51

Ne cherchez plus, j'ai trouvé :D
Merci à ddtddt qui était le plus proche :-)

Gotcha
2009-11-24 17:14:22

J'ai besoin d'un bon coup mains sur une variable.

Pour les besoins de mon premier plugin extension:324 je cherche à obtenir la même chose que la variable {$U_UP} dans un template. Auparavant, je parvenais donc à mes fins via {$U_UP} mais pour mon plugin, en PHP, je sèche.

Allé allé ! Après ça je suis en mesure de livrer ma Release Canditate !!!
Merci pour l'aide.

:-)

Gotcha
2009-11-22 18:00:53

Je change un peu de sujet mais je reste dans le PHP.

C'est ma dernière barrière avant d'obtenir une bonne modification du plugin de Rub (DotClearEasy) destiné à proposer des liens comme par exemple chez imageshack.
Je recherche un moyen de récupérer la catégorie dans laquelle se trouve une image.
Concrètement, je suis en train de me balader dans ma galerie et je visualise une photo. Je viens d'une seule catégorie. C'est cette dernière qui m'intéresse !

Avec un template-extension de picture_content.tpl je pouvais le faire via {U_UP} mais en php je n'en sais rien du tout.
Je précise quand même que c'est lors de l'ouverture d'une pop-up que j'ai besoin de ce chemin.

Je vais dire de grosses âneries mais j'ai cherché dans les directions suivantes :

Code:

      duplicate_picture_url(
            array(
              'section' => 'categories'
              ));

Code:

      duplicate_picture_url(
            array(
              'image_category' => $row['category_id'],
        ));

Si vous voyez ce que je veux dire, je suis tout ouïe.
Merci

Gotcha
2009-11-20 23:05:24

J'ai l'impression que c'est le morceau :

Code:

realpath(PHPWG_ROOT_PATH.$image_path)
nicolas
2009-11-20 22:52:51

Où ? Je ne vois pas ce que tu cherches à faire.

Si tu as ta commande dans la variable $commande et que t veux mettre des guillemets tu peux par exemple faire :

Code:

$commande = sprintf('"%s"', $commande);
Gotcha
2009-11-20 21:24:44

ok Nicolas, c'est intégré.

Bon, maintenant, je cherche à rajouter des guillemets sur le chemin d'accès des photos. Car à moins de ne travail qu'avec des sous répertoires sans espaces, bah ça coince.
A mon avis, dans [u]db_export_image_metadata_class.php[/i] ca doit venir du pavé :

Code:

  private function write_exifCmd($exifCmd, $image_path, $has_high, $fp)
  {
  $exifCmdN = $exifCmd ." ";
  $exifCmdN .= $this->isTest ? $image_path : realpath(PHPWG_ROOT_PATH.$image_path);
  $writeOK = fwrite($fp, $exifCmdN.$this->eol) !== FALSE;
  if ($writeOK)  $this->nbfiles++;

  if ($has_high)
  {
    $imageHigh = dirname($image_path) . "/pwg_high/" . basename($image_path);
    if (file_exists($imageHigh)) 
    {   $this->write_exifCmd($exifCmd, $imageHigh, false, $fp);  }
  }
  }

J'ai essayé plusieurs combines sans résultats.

Une fois que ce dernier point sera réglé, il ne me restera plus qu'à revoir l'interface de l'administrateur.

nicolas
2009-11-20 15:27:01

Non c'est plutôt :

Code:

foreach ($tags as $tag) {
   $s .= '-IPTC:Keywords="'.$tag.'" ';
}
Gotcha
2009-11-20 15:15:47

EUREKA !

Nicolas MERCI !
Tu avais vu juste avec ton code :

Code:

$tags =  explode(',', "ardèche,nuit,lavoir,bsa,bourg saint andéol");
$s = '';

foreach ($tags as $tag) {
   $s .= '-IPTC:Keywords="'.$tags.'" ';
}

Tu avais juste fais une petite faute. C'est ($tags as $tags) Il manquait juste un "s"
J'ai simplement remplacé ardèche,nuit,lavoir,bsa,bourg saint andéol par $tags et ça semble rouler correctement.

Je poursuis mes tests.

Encore Merci Nicolas.

Gotcha
2009-11-20 12:58:46

Haa...

extension:103
extension:292

Je jurerai avoir pris l'extension de Eric B mais je constate que les fichiers ne correspondent pas. Je repars donc de zero.

Je viens d'éditer mon premier message pour plus de clarté.

Merci Nicolas.
(Je m'explique toujours pas la différence de fichiers...)

nicolas
2009-11-20 11:41:47

Je ne trouve pas la même version du plugin que toi. J'imagine que c'est celui-ci :
extension:292

Gotcha
2009-11-19 16:44:23

nicolas a écrit:

Quel est le contexte ?

D'où vient -IPTC:Keywords="ardèche,nuit,lavoir,bsa,bourg saint andéol" ?
Si la variable de base contient l'ensemble des mots clés c'est facile et si c'est un tableau c'est encore plus facile. Quel est le cas ?

Le plugin Tags2Files récupère les données contenues dans la BDD pour ensuite écrire un fichier batch.
Dans ce fichier batch, en fonction des informations que l'on a transmises via le panneau d'administration du plugin, récupère donc certaines données stockées dans la BDD en fonction de l'ID de la photo.
Il ne reste donc plus qu'a exécuter le fichier batch avec un double clic et le script s'occupe du reste.

Les tages "ardèche,nuit,lavoir,bsa,bourg saint andéol" sont là pour illustrer mais aussi parceque je teste le plugin sur une seule photo.

nicolas a écrit:

Code:

$tags =  explode(',', "ardèche,nuit,lavoir,bsa,bourg saint andéol");
$s = '';

foreach ($tags as $tag) {
   $s .= '-IPTC:Keywords="'.$tags.'" ';
}
Gotcha
2009-11-19 15:57:21

Bonjour à tous,

Comme vous le savez, je ne suis pas du tout un codeur. J'ai déjà en chantier une autre demande d'aide pour du code mais là, je pense que ça ne demandera pas beaucoup d'efforts pour vous autre programmeurs.
Je vous explique ma petite demande.

Je reprend l'installation de extension:292
Déjà premier soucis, via l'installation automatique, le nom du répertoire est "extension_292"
Ce qui fait que lors de l'exécution du plugin, j'obtiens une page blanche avec Invalid URL - plugin Tags2File not active. L'url est la suivante : //127.0.0.1/julien-moreau.fr/galerie/admin.php?page=plugin&section=Tags2File%2Fdb_export_image_metadata.php
Il faut donc renommer le nom du répertoire en Tags2File.

Coté administration, j'opère comme suit :
http://img524.imageshack.us/img524/3204/capture11202009122018.th.png
L'ID 655 correspondant à une photo, cette dernière se trouve donc dans mon répertoire C:\Sortie

J'exécute le plugin.
Ca me donne un fichier .cmd qui a le contenu :

chcp 1252
"C:\exiftool.exe" -IPTC:CodedCharacterSet=UTF8 -overwrite_original -IPTC:Caption-Abstract-= -IPTC:Caption-Abstract="Lavoir de nuit de Bourg Saint Andéol (07)" -IPTC:Writer-Editor-= -IPTC:Writer-Editor="MOREAU Julien" -IPTC:Keywords="ardèche,nuit,lavoir,bsa,bourg saint andéol" _MG_3018.jpg

Comme expliqué précèdement, le problème intervient au niveau des mots clés (keywords).
Les mots clés sont insérés dans l'image comme si il ne fait qu'un. Qu'un bloc et non plusieurs mots clés.
http://img94.imageshack.us/img94/7051/iptc1.th.png

Si je modifie à la main le fichier .cmd pour l'écrire comme suit :

chcp 1252
"C:\exiftool.exe" -IPTC:CodedCharacterSet=UTF8 -overwrite_original -IPTC:Caption-Abstract-= -IPTC:Caption-Abstract="Lavoir de nuit de Bourg Saint Andéol (07)" -IPTC:Writer-Editor-= -IPTC:Writer-Editor="MOREAU Julien" -IPTC:Keywords="ardèche" -IPTC:Keywords="nuit" -IPTC:Keywords="lavoir" -IPTC:Keywords="bsa" -IPTC:Keywords="bourg saint andéol" _MG_3018.jpg

Là maintenant les mots clés sont écris correctement.
http://img340.imageshack.us/img340/2356/iptc2.th.png

Dans le fichier db_export_image_metadata_class.php ligne 224 je trouve le code suivant :

Code:

$exiftoolCmd .= " -IPTC:Keywords=\"".$tags."\"";

Ca serait cette ligne qui concatène les tags. Le but étant donc de la travailler pour que tous les tags soient précédés de la mention -IPTC:Keywords=

La variable $tags semble obtenu avec à la ligne 204 le code :

Code:

$tags = $this->cutString($this->decode_html_string_to_unicode($row[4], false), 64);

Toujours dans db_export_image_metadata_class.php à partir de la ligne 309 j'observe le pavé :

Code:

  // data access
  private function get_image_properties() 
  {
  $query_path = $this->isTest ? 'img.file' : 'img.path';
  $query_restriction = $this->isTest ? 'AND (img.id = '.$this->test_img_id.'))' : ')';
  // get direct properties and tags, even if no tags, with either name, comment or tags not null
  // restritive query with image.ID for tests with copied images with file instead of path
  $img_query = 'SELECT img.name, img.comment, img.author, img.date_creation, GROUP_CONCAT(tags.name), '.$query_path.', has_high
    FROM '.IMAGES_TABLE.' AS img
    LEFT OUTER JOIN '.IMAGE_TAG_TABLE.' AS img_tag ON img_tag.image_id = img.id
    LEFT OUTER JOIN '.TAGS_TABLE.' AS tags ON tags.id = img_tag.tag_id
    WHERE ( ( LENGTH(img.name) > 0 OR LENGTH(img.comment) > 0 OR LENGTH(img.author) > 0 OR LENGTH(tags.name) > 0 ) '.$query_restriction.'
    GROUP BY img.id, img.name, img.comment, img.author, '.$query_path.', has_high
    ORDER BY img.id ASC; ';
  
  return pwg_query($img_query);
  }

Est-ce que ce pavé est en cause ou est-ce plutôt un problème de concaténation ?...

Pied de page des forums

Propulsé par FluxBB

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