Annonce

  •  » Plugins
  •  » [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

#31 2011-01-25 13:54:49

LucMorizur
Membre
Vienne (Isère, 38)
2009-03-01
1969

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

cljosse a écrit:

arno a écrit:

pourquoi la 1ere ligne, si je l'enleve, ca fonctionne quand meme ?
pourquoi la vie est apparue sur terre ?
)

A) $content a été initialisé avec "picture_content.tpl" dans picture.php
Et effectivement dans mon exemple il est inutile de le réaffecté.

B) je pense que luc est assez explicite.

;-)

Hors ligne

#32 2011-01-25 19:36:11

arno
Membre
2011-01-14
64

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

@LucMorizor : quelle jolie génèse version 2.0 !

@cljosse:
ok, merci pour les explications, ca va fenir par devenir presque limpide tout ça !
Maintenant, si tu rajoutes ensuite des complications ..!

Alors:
moi naivement, je fais comme on m'a dit, j'ajoute les lignes :

Code:

function dynamic_resize_picture_content($content, $element_info){
 global $template;
 $srcimg = $template->get_template_vars('SRC_IMG');
 $srcimg = '/plugins/dynamicResize/resize.php?picture_url='.$srcimg;
 echo  DYN_ROOT . '/dynamic_resize.tpl';

 $template->set_filenames(array('dynamicresize' => DYN_ROOT . '/dynamic_resize.tpl'));
 $template->assign('DYN_ROOT', DYN_ROOT);
 $template->assign('ROOT_URL', ROOT_URL);

$template->assign('SRC_IMG', $srcimg);

return $template->parse('default_content',true);
}

avec :
http://piwigo.cumulodata.com/plugins/dy … resize.tpl

Mais rien de spécial ne se passe, il fait comme si il avait tout simplement ignoré mes lignes, pas de /scripts/xhrpic.js dans mon code source.
Il ne crache pas de message d'erreur, smarty ?

PS: on peut voir en haut de http://piwigo.cumulodata.com/picture.ph … category/5
que les variables semblent bien positionnées  (c'est le theme qui change la casse, cf code source)

- Arno

Dernière modification par arno (2011-01-25 19:44:04)

Hors ligne

#33 2011-01-26 09:05:03

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Bonjour.
Ca vient petit a petit loiseau fait son nid.

Code:

function dynamic_resize_picture_content($content, $element_info){
 global $template;
 $srcimg = $template->get_template_vars('SRC_IMG');
 $srcimg = DYN_ROOT.'resize.php?picture_url='.$srcimg;

  $my_path = dirname(__FILE__).'/';
 $template->set_filenames(array('dynamicresize' => $my_path . 'dynamic_resize.tpl'));
 $template->assign(array('DYN_ROOT' => DYN_ROOT ,
                         'ROOT_URL' => ROOT_URL
                         ));
  $template->parse('dynamicresize',false); 

  $template->assign('SRC_IMG', $srcimg);

return $template->parse('default_content',true);


D'après mes essais:
1°) Il faut le chemin du fichier template en absolu et non en relatif, d'ou la variable $mypath
2°) Juste pour la beauté du code pour assigner plusieurs variables utilise   Array dans l'assignation.
3°) Ne pas oublier de dire a smarty de compiler le fichier (  $template->parse('dynamicresize',false);
)

Ton programme devrait te faire un petit coucou.

A+

Dernière modification par cljosse (2011-01-26 09:05:37)

Hors ligne

#34 2011-01-26 10:58:19

arno
Membre
2011-01-14
64

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Merci, on touche effectivement au but !!

le template se charge, le fichier js aussi.
Il etait chargé par contre avant jquery , mais ca marche quand meme.
dans le doute , j'ai remplacé 'now=1' par 'now=0', et c'est repassé en dessous.

par contre, c'est bizzare, ton event ne déclenche pas mon listner ..
au debbuger js, on voit que , dans l'ordre:
- le listener est bien chargé
- l'event est bien lancé
- mais rien ne le recoit en face

j'ai tourné ca dans tous les sens, la syntaxe semble bonne, mais je ne vois pas.
J'ai pensé au nom de l'event 'ON' qui ne pourrait pas etre apprécié, mais je vois que tu l'utilises partout.
j'ai essayé de remplacer 'live' par 'bind', mais pareil.
une idée ?
view-source: http://piwigo.cumulodata.com/picture.ph … category/5

- Arnaud

Hors ligne

#35 2011-01-26 12:04:48

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

???

<script src="./plugins/dynamicResize/scripts/xhrpic.jstype="text/javascript"" ></script>
<script src="themes/stripped/js/jquery-1.4.2.min.js" type="text/javascript"" ></script>

La fonction alert('entering js'); est lancé avant que jQuery ne soit chargé.

Hors ligne

#36 2011-01-26 13:24:30

arno
Membre
2011-01-14
64

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Oui, c'etait le parametre 'now=1' que j'avais oublié de repasser à 'now=0'
(je ne comprend pas bien ce que c'est , mais j'ai testéça  ca par intuition !)

du coup
=>
<script type="text/javascript" src="themes/stripped/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="./plugins/dynamicResize/scripts/xhrpic.js"></script>

, mais pour autant le probleme évoqué dans le poste précédent reste entier

Hors ligne

#37 2011-01-26 14:53:28

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

J'ai fai une mise à jour du plugins autosize vers 1.4.41
Il y avait un bug dans Wait_Affichage()

//   if (nu_img > 1) return;
Et j'ai modifié le trigger de ret_autosize.
Je passe en variable les infos.
Pour récupérer les variables:

Ce serait mieux d'encapsuler la fonction live de facon a être sur que la fenetre est chargée.

avec

jQuery(document).ready(
    function (jQuery) {
        jQuery(window).load(function () {
              jQuery("#ret_autosize").live('ON', function (e, a) {   
/*
a.width= largeur de l'image
a.height= hauteur de l'image
a.theImage=  l'objet image
a.src_img=  url de l'image
*/
......
               au lieu d'écrire:    $("div.theimg > img").attr("src", js_imgsrc);
                            écrire:    a.theImage.src = js_imgsrc;


                                              })
     })
})

Nota: éviter les raccourcis $( écrire jQuery( pour des raisons de compatibilité avec d'autres librairies.


A+

Dernière modification par cljosse (2011-01-26 14:54:11)

Hors ligne

#38 2011-01-26 19:35:12

arno
Membre
2011-01-14
64

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Ok,
merci bcp pour les optimisations et les conseils, ca commence à rentrer tout ça.
par contre, ca ne résolvait pas le pb : le 'fire' ne fonctionnait pas.

A force de bidouiller, j'ai fini par trouver: le handler n'etait attaché à rien !
et comme jquery autorise a déclarer des elements a posteriori du handler, tout est confirme, jquery ne rale pas.
En fait, tu inclus #ret_autosize dans ton template de debug, qui n'est affiché que lorsque la bonne case est activée dans l'admin de autosize ; Il faudrait plutôt le mettre dans le template principal, non ?

Bon, je termine demain, mais la mécanique est là, le reste va etre un peu plus simple, je pense.
A+

- Arnaud

Hors ligne

#39 2011-01-27 14:55:18

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

arno a écrit:

Ok,
merci bcp pour les optimisations et les conseils, ca commence à rentrer tout ça.
par contre, ca ne résolvait pas le pb : le 'fire' ne fonctionnait pas.

A force de bidouiller, j'ai fini par trouver: le handler n'etait attaché à rien !
et comme jquery autorise a déclarer des elements a posteriori du handler, tout est confirme, jquery ne rale pas.
En fait, tu inclus #ret_autosize dans ton template de debug, qui n'est affiché que lorsque la bonne case est activée dans l'admin de autosize ; Il faudrait plutôt le mettre dans le template principal, non ?

Bon, je termine demain, mais la mécanique est là, le reste va etre un peu plus simple, je pense.
A+

- Arnaud

Bien vu.

  C'est corrigé avec la nouvelle version.

  Un détail à ne pas négliger, le "fire" se fait à chaque changement de dimentions de la fenêtre.
    Il faut donc ne faire qu' un seul appel à ta fonction "resize" 
     De toute façon une fois que l'image est chargée c'est inutile de redemander au serveur une nouvelle image.

Hors ligne

#40 2011-01-27 22:38:53

arno
Membre
2011-01-14
64

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Bon, ça tourne, un grand merci pour ton aide !
http://piwigo.cumulodata.com/picture.ph … category/5

maintenant je ne suis pas completement enchanté du resultat, comme je le pensais c'est tres lent d'attendre que le dom soit completement chargé pour télécharger l'image.
je vais reflechir a tout ça,voir sil il n'est pas possible d'ameliorer le systeme d'une manière ou d'une autre.

Je vais aussi terminer de nettoyer le code pour pouvoir le publier !

- Arno

Hors ligne

#41 2011-02-01 10:06:44

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Bonjour.
Une petite idée pour masquer le temps de latence lors de l'affichage des photos:
Principe:
   Si c'est la première photo afficher une image transparente pendant le temps de chargement
    sinon réafficher la dernière photo qui se trouve en cache ce qui devrait être rapide. 
  Je ne sais pas si c'est à ça que tu pensais, mais c'est à ça que moi je pensais en mémorisant les infos dans les cookies.

Bonne journée.
A+

Hors ligne

#42 2011-02-13 12:52:21

arno
Membre
2011-01-14
64

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Hello cljosse,

après quelques jours d'absence, je me remet au charbon pour finir tout ça

Pour l'instant, je suis revenu sur un mode synchrone:
(mon but est d'afficher la photo le plus vite possible, et pour ça, après avoir torturé la timeline dans tous les sens, il n'y a pas photo (sic) :
il faut que le téléchargement puisse débuter le plus vite possible, sans attendre le chargement du DOM;
je n'aime pas trop l'idée de recharger la photo précédente qui n'a rien à voir, et d'avoir l'image qui "saute" tout à coup ..)

Du coup, je commence à obtenir des resultats corrects.
http://piwigo.cumulodata.com/picture.ph … category/5


Mais, le diable se cachant dans les details, imposible de retomber sur mes pieds au niveau taille de l'image.
Est tu sur que la valeur window_height / window_width que tu me renvoient sont les bonnes ?

Voilà ma petite enquete :
Sur la capture piwigo_plugin_dynamic_resize_chrome.png, je suis donc en mode synchrone, sur la 1ere photo. Donc , pas de redimmensionnement pour l'instant.

- La photo originale fait 1440x958. ok.
- Chrome la donne pour un affichage de 859x 573 . soit
- Les attributs de la photo sont 801x 553 . bon, il y a surement une subtilité css que je ne connais pas, mais je trouve ca etrange que ca ne soit pas les memes données que chrome.
- Tu me renvoie pour l'image des dimensions de 853x567. Une valeur entre les 2.
- Mais tu me dis que la taille maximale pour afficher la photo est 1120x577, soit une hauteur superieure.


Du coup, si 577 est la hauteur max, c'est à cette hauteur que je redimensionne ma prochaine image.

Ce qui donne, si je rafraichit la page : (capture piwigo_plugin_dynamic_resize_chrome_reload.png):
- La photo originale fait 867x577 , normal c'est la window_height du cookie.
- Google la donne pour un affichage de 859x 573 . Au moins, il est coherent, mais du coup ce n'est pas la bonne taille.
- Les attributs de la photo sont toujours  801x 553 , ca ne bouge pas.
- Tu me renvoie pour l'image des dimensions de 853x567, ca ne bouge pas.
- Mais tu me dis que la taille maximale pour afficher la photo est 1120x577, ca ne bouge pas.

Si je rafraichis plusieurs fois, chrome me donne parfois un affichage de 807x539.
(capture). Hm.


Parfois, ca me donne egalement un attribut 'height' bizzare , non arrondi (cf capture _bug).

Bon, je switche sous firefox pour continuer les tests
1) chargement initial
- La photo originale fait toujours 1440x958.
1 440px × 958px (redimensionné à 747px × 497px)
- Attributs de l'image : width: 747px; height: 496.962px; (!). A part la décimale, cohérent avec ce que dit Firefox.
info : returned by autosize are these a.width x a.height :747x497 (on est bon de nouveau)
info : returned by autosize are these a.window_width x a.window_height :1120x507 (aïe, 10 pixels de trop).


2) du coup au refresh:
762px × 507px (redimensionné à 747px × 497px)

Firefox a l'air plus robuste au niveau des dimensions que chrome ..

Mais du coup, le window.height est 10pixels trop haut sous firefox, et 4 sous chrome ..

J'espere que j'ai été clair ..

- Arno

Hors ligne

#43 2011-02-14 16:12:54

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Bonjour.
   Bien vu  les valeurs windows renvoyées n'étaient pas correcte avec le theme stripped.

Par contre les valeurs affichées dans le style ont l'air d' être les dernieres valeurs stockées lors du chargement de l'image.
  et ne sont pas raffraichies dynamiquement( lors de variation de la taille de la fenetre du navigateur).

   Lorque l'on fait un refresh ou suivant j'ai les dimensions réelles de l'image téléchargée(1440x958.).
            exemple:         style="width:1440px;height:958px)
Alors que sur la première image j'ai les dimensions à afficher.
  Je ne comprends pas trop...

    Les valeurs données par le tooltip sont les dimensions offsetWidth et offsetheight de l'élement d'ou une valeur différente en fonctions des marges.

- Une nouvelle version 1.4.47 corrigeant les valeurs cookies est en ligne.

La différence entre Firefox et chrome vient de nu numéro d'image "17/39" qui est exclu du menu si le nombre d'outils est important...

A+

Hors ligne

  •  » Plugins
  •  » [DynamicSize] Nouveau plugin, besoin d'un coup de main ..!

Pied de page des forums

Propulsé par FluxBB

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