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)

websigns
2012-02-23 14:49:45

Bonjour je me permet de rebondir sur cet exemple. et notamment sur ce passage du script de Flop25 :
"//petite pirouette pour ajouter la balise et le code : pour qu'un fichier js soit cobiné, je n'ai pas trouvé d'autre alternative en php. Il est donc chargé depuis du code tpl via la balise  {combine_script ..}"


Je cherche en effet s'il a été prévue l'équivalent de "combine_script" ou de "func_combine_script()" mais qui permettrais de tout éditer dans le même fichier via LocalFiles Editor ?
Dit autrement au lieu d'insérer le javascript en chargeant un .js externe, dont l'édition n'est pas prévue online, serait il possible de combiner un script écrit en ligne comme avec la fonction "append()" ?

flop25
2011-11-24 15:00:53

là je dirais de faire un plugin perso qui surchargerais le js par défaut
Par exemple, voici ce que j'ai fait dans Image_preview : http://piwigo.org/dev/browser/extension … nc.php#L25

Code:

/** thumbnails.tpl **/
add_event_handler('loc_end_index_thumbnails', 'imgpreview_thumbnails');
function imgpreview_thumbnails($tpl_thumbnails_var)
{
  global $template;

  $template->set_prefilter('index_thumbnails', 'imgpreview_prefilter_thumbnails');
  $template->set_prefilter('stuffs', 'imgpreview_prefilter_thumbnails');
  $dir=dirname(__FILE__).'/css_js.tpl';//on va charger un fichier tpl ; celui-ci http://piwigo.org/dev/browser/extensions/imgpreview/css_js.tpl qui contient le js
  $template->set_filenames(array( 
    'imgpreview_css_js' => realpath($dir),
    )  );
  $template->assign_var_from_handle('IMGPREVIEW', 'imgpreview_css_js');//petite pirouette pour ajouter la balise et le code : pour qu'un fichier js soit cobiné, je n'ai pas trouvé d'autre alternative en php. Il est donc chargé depuis du code tpl via la balise  {combine_script ..}
  return $tpl_thumbnails_var;
}

function imgpreview_prefilter_thumbnails($content, &$smarty)
{
  $content='{$IMGPREVIEW}'.$content;
  return $content;
}
?>

et dans le fichier tpl tu mets juste {combine_script id='jquery.monscript' load='header' require='jquery' path='plugins/monplugin/dossier/fichier.js'}

ps: par contre les images c'est pourquoi faire ?

scialomy
2011-11-24 14:36:52

Bonjour à tous, et merci pour vos réponses.

jp.harand a écrit:

De ces deux défauts, il y en a surement un qui peut être corrigé.

Non, les crèmes anti-rides, c'est de l'arnaque xD.

ddtddt a écrit:

Si tu fais des plugin pour personnaliser certaine chose cela te permet de le réutiliser facilement (également de le désactiver).

Ce n'est pas une mauvaise idée, il faudrait que je me penche sur la création de plugin (j'ai vu que c'était bien documenté, et j'aime les docs :)


flop25 a écrit:

Si tu as modifié les thèmes faire un thèe enfant sera facile
Par contre, modifier les plugins...

Pour le thème enfant, tu as complètement raison. Je vais faire ça. Pour la modification du plugin ... j'aimerais bien que tu m'en dises un peu plus s'il-te-plaît.

Voici la modification apportée à lightbox :

Code:

diff -urN portfolio.test//plugins/lightbox/js/jquery.colorbox.js portfolio.bak//plugins/lightbox/js/jquery.colorbox.js
--- portfolio.test//plugins/lightbox/js/jquery.colorbox.js  2011-04-02 12:53:02.000000000 +0200
+++ portfolio.bak//plugins/lightbox/js/jquery.colorbox.js  2011-11-23 18:03:48.568201696 +0100
@@ -87,6 +87,9 @@
   $next,
   $prev,
   $close,
+  $permalink, // YSC
+  $hd,   // YSC
+  $info,   // YSC
   $groupControls,
 
   // Variables for cached values or use across multiple functions
@@ -101,6 +104,7 @@
   open,
   active,
   closing = false,
+  pictureTitle = '', // YSC
   
   publicMethod,
   boxElement = prefix + 'Element';
@@ -325,6 +329,9 @@
       $next = $div("Next"),
       $prev = $div("Previous"),
       $slideshow = $div("Slideshow").bind(event_open, slideshow),
+      $permalink = $div("Permalink"),
+      $hd = $div("Hd"),
+      $info = $div("Info"),
       $close = $div("Close")
     );
     $wrap.append( // The 3x3 Grid that makes up ColorBox
@@ -375,6 +382,53 @@
                 $close.click(function () {
                         publicMethod.close();
                 });
+                /*
+                 * useful method (YSC)
+                 ********************/
+                var getPictureData = function() {
+                  var elem = publicMethod.element();
+                  var id = elem.attr('id').replace('img-', '');
+                  var category = location.search.replace(/^.*\/category\/([0-9]+)\/?.*$/,'$1');
+                  return [id,category];
+                };
+                /*
+                 *  permalink (YSC)
+                 ********************/
+                var host = location.protocol + '//' + location.host;
+                $permalink.click(function() {
+                  if($title.html().indexOf('<') == -1) {
+                     var data = getPictureData();
+                     var link = host + '/?c=' + data[1] + '&p=' + data[0];
+                     $title.html(
+                        '<form><input id="permalink" size="'
+                        + (link.length)
+                        + '" type="text" value="' + link + '" /></form>'
+                     );
+                     $('#permalink').select();
+                  } else  {
+                     $title.text(settings.title);
+                  }
+                });
+                /*
+                 *  HD (YSC)
+                 ********************/
+                $hd.click(function() {
+                  var host = location.protocol + '//' + location.host;
+                  var data = getPictureData();
+                  var link = host + '/?c=' + data[1] + '&p=' + data[0] + '&hd';
+                  $(location).attr('href',link);
+                });
+                /*
+                 *  Info (YSC)
+                 ********************/
+                $info.click(function() {
+                  var host = location.protocol + '//' + location.host;
+                  var data = getPictureData();
+                  var link = host + '/?c=' + data[1] + '&p=' + data[0] + '&info';
+                  $(location).attr('href',link);
+                });
+                
+                
     
     $groupControls = $next.add($prev).add($current).add($slideshow);
     
@@ -398,7 +452,7 @@
     
     // Set Navigation Key Bindings
     $(document).bind('keydown.' + prefix, function (e) {
-                        var key = e.keyCode;
+         var key = e.keyCode;
       if (open && settings.escKey && key === 27) {
         e.preventDefault();
         publicMethod.close();
@@ -413,6 +467,16 @@
         }
       }
     });
+      
+      // YSC : if picture variable is set, popup the selectionned picture
+      var url = location.search;
+      if(url.match(/\/picture\//)) {
+         var id = url.replace(/^.*\/picture\/([0-9]+)\/?.*$/,"$1");
+         var anchor = $('a#img-'+id);
+         $('a[rel="colorbox0"]').ready(function() {
+            anchor.trigger('click');
+         });
+      }
   };
   
   publicMethod.remove = function () {
@@ -811,4 +875,4 @@
   // Initializes ColorBox when the DOM has loaded
   $(publicMethod.init);
 
-}(jQuery, document, this));

Ainsi que trois fichiers images. Comme tu peux le constater, il s'agit surtout d'ajouts, pas ou peu de modifications. Alors, après expertise ?


Merci encore,
Yankel.

flop25
2011-11-24 13:47:33

Si tu as modifié les thèmes faire un thèe enfant sera facile
Par contre, modifier les plugins... déjà les plugins sortent des nouvelles versions plus souvent que piwigo en moyenne, donc là le risque de pertes est plus important. Mais après pour rendre pérenne vos ajouts, c'est délicat : à mon avis, il y a pu de chance qu'il soit possible de faire un plugin qui modifie les plugins, donc il faudrait soit faire un fork des plugins soit rester au système actuel et changer à chaque maj. Ce sera selon le type de modification que vous avez faites

ddtddt
2011-11-24 13:23:51

C'est ta galerie donc tu fait bien comme tu veux ;-)

L'avantage de ne pas modifier les fichiers de base et de pouvoir profiter très rapidement des nouvelle version sans mauvaise surprise.

Si tu fais des plugin pour personnaliser certaine chose cela te permet de le réutiliser facilement (également de le désactiver).

Maintenant l'important c'est que tu prennes plaisir à regarder ton site ;-)

jp.harand
2011-11-24 12:52:47

scialomy a écrit:

Étant un vieux con ....

De ces deux défauts, il y en a surement un qui peut être corrigé.
Non ?

Yannick45
2011-11-24 10:08:22

Pour l'avant dernière question j'ai la réponse ;)
Pas pour les autres

scialomy
2011-11-24 03:50:48

Bonjour à tous,
j'apprécie beaucoup Piwigo, et je me suis permis de le modifier légèrement afin de le rendre plus compatible avec mes goûts. Mais voila, pour l'instant j'ai modifié directement les fichiers de Piwigo, de ses thèmes et de ses plugins.

Et ce matin je tombe sur <http://fr.piwigo.org/doc/doku.php?id=pwg23:apprendre:personnalisation> :
« Mise en garde
Ne modifiez jamais manuellement des fichiers qui sont livrés lors de l'installation de votre galerie Piwigo. [...] ».
Autant dire que je suis en flippe total là.

Étant un vieux con qui code sous emacs, je me suis contenté de faire un fichier patch (diff -urN) des fichiers modifiés, et je prévoyais d'appliquer ce patch à chaque nouvelle version.

D'où ma(mes) question(s) : ais-je intérêt à laisser tomber les trucs de vieux gnous et tout faire sous Local File Editor ? Cela va-t-il faciliter les mises à jour ? L'éditeur fournit est-il correct (j'aime emacs, mais un gedit-like fera l'affaire) ? Combien font six fois sept ? Avez-vous des conseils particulier à me donner ?

Cordialement,
Yankel.

Pied de page des forums

Propulsé par FluxBB

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