#1 2011-11-24 03:50:48

scialomy
Membre
2011-11-21
13

Local File Editor

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.

Hors ligne

#2 2011-11-24 10:08:22

Yannick45
Membre
Chécy, France
2011-08-13
77

Re: Local File Editor

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

Hors ligne

#3 2011-11-24 12:52:47

jp.harand
Membre
Dijon (21)
2010-10-15
247

Re: Local File Editor

scialomy a écrit:

Étant un vieux con ....

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


» Galeries : Galerie du bocage de BourgogneDécouvertes nature en Bourgogne
» Plugins : Tag To Keyword
» Thèmes : SylviaReseauBocagesBourgogne (en cours)

Hors ligne

#4 2011-11-24 13:23:51

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
14704

Re: Local File Editor

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


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#5 2011-11-24 13:47:33

flop25
Équipe Piwigo
2006-07-06
6475

Re: Local File Editor

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

Hors ligne

#6 2011-11-24 14:36:52

scialomy
Membre
2011-11-21
13

Re: Local File Editor

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.

Hors ligne

#7 2011-11-24 15:00:53

flop25
Équipe Piwigo
2006-07-06
6475

Re: Local File Editor

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 ?

Dernière modification par flop25 (2011-11-24 15:01:36)

Hors ligne

#8 2012-02-23 14:49:45

websigns
Membre
Montpellier
2010-05-27
66

Re: Local File Editor

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()" ?

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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