Magento Magic Scroll Pfeile nur bei BedarfLink zur Webentwicklung in Hamburg

Lösung gefunden für das Magic Scroll Modul - Pfeile nur da, wenn nötig

Beim Magento Magic Scroll Modul kann man vieles einstellen. Aber nicht, dass die Pfeile verschwinden, wenn sie nicht benötigt werden. Außerdem wird das Javascript, das man im Falle "zu wenig Bilder" / Zu wenig Thumbnails nicht mehr braucht für MagicScroll trotzdem geladen.

Das ist Ressourcenverschwendung und unnötige Platzverschwendung im Design und dafür habe ich eine Lösung gefunden:

Angenommen, man stellt ein, dass beim Scrollen 5 Thumbnails angezeigt werden sollen - also items = 5.

Weiter angenommen, dass man ohne die Pfeile links und rechts platz für 6 Thumbnails hätte.

Das würde bedeuten, dass man MagicScroll erst ab 7 Thumbs bräuchte und dafür gibt es eine ganz einfache Lösung.

In der Datei /app/code/local/MagicToolbox/MagicZoomPlus/core/magicscroll.module.core.class.php :

1.) Klassenvariable $activeMS hinzfügen:
   var $activeMS = true;

2.) Die Methode MagicScrollModuleCoreClass erweitern:
   function MagicScrollModuleCoreClass()
   {
      //lookup for count images and params counter set
      $ctr = 0;
      $prdct = Mage::registry('product');
      if(!empty($prdct)){
         $imgs = $prdct->getMediaGallery();
         foreach ($imgs['images'] as $img) {
            if (!$img['disabled']) {
               $ctr++;
            }
         }
      }
      if ($ctr <= ($this->params->params['items']['value'] + 1)) {
         $this->activeMS = false;
      }
...ab hier wie folgt original weiter

      // init params
      $this->params = new MagicToolboxParamsClass();
      $this->general = new MagicToolboxParamsClass();
      // load default params
      $this->_paramDefaults();
   }

In der Methode headers den Anfang Ändern, um die Ausgabe der JS Dateien zu steuern:
   if (!defined('MagicScrollModuleHeaders')) {
   if ($this->activeMS)
      define('MagicScrollModuleHeaders', true); else return '';
   } else {
      return '';
   }
...ab hier original weiter   

Sicherheitshalber in der Methode getPersonalOptions in der ersten und letzten if - Bedingung ein "$this->activeMS &&" vor setzen:
also if($this->activeMS && defined('MagicToolboxOptionsLoaded')) ...
und if ($this->activeMS && count($options)) .....

Dann in der Datei /app/code/local/MagicToolbox/MagicZoomPlus/core/magictoolbox.templatehelper.class.php den Anfang der Methode
prepareMagicScrollClass folgendermaßen anpassen:
static function prepareMagicScrollClass() {
   $ctr = 0;
   $prdct = Mage::registry('product');
   if(!empty($prdct)){
      $imgs = $prdct->getMediaGallery();
      foreach ($imgs['images'] as $img) {
         if (!$img['disabled']) {
            $ctr++;
         }
      }
   }
   $activeMS = true;
   if ($ctr <= (self::$options->getValue('items')+1)) {
      $activeMS = false;
   }
   $magicscroll = $activeMS && self::$options->checkValue('magicscroll', 'Yes') ? ' MagicScroll' : '';
...ab hier original weiter
Fertig !!

Have Phun!

 

Beauftrage mich!

 

Diese Seite entspricht den Spezifikationen für XHTML 1.0 und CSS nach W3C.



Valid XHTML 1.0 Transitional Valid CSS!

Ich werde relativ gut bei den Suchmaschinen gefunden, evtl. auch bei Ihrer Suche nach einer Antwort, die auf meiner Seite nicht oder nur ungenügend abgehandelt wird. Dies kommt daher, dass es oftähnliche Suchmaschinenanfragen gibt, die aber was ganz anderes meinen. Falls dies jetzt zutrifft, schreiben Sie mich einfach unter webentwicklung@tomislav.net an (oder "skypen" Sie mich an) und ich werde mich bemühen Ihre Frage soweit und so schnell ich kann zu beantworten.

tomislav kramarić    •    für webdesign-holder
web development    •    schulterblatt 75    •    20357 hamburg    •   Mail   •   Skype   •   0172 - 422 69 57