[PHP] NextGEN Gallery – Widget optimierung (Seitenverhältnis)

Hallo,

um so mehr ich mit meinem Blog arbeite um so mehr finde ich was mich stört. Heute war das NextGEN Widget an der Reihe. Also erst einmal bin ich ja wirklich begeistert von der Gallery. Sie ist echt gut aufgebaut und bietet vieles von dem was ich von einer Gallery erwarte. Trotzdem gibts hier und da noch ein paar Sachen die mich stören… wie heute das Widget.

Was genau? Ich benutze das normale Wigdet welches eine bestimmte Anzahl von Thumbnails statisch anzeigt. Leider wird auch hier vollkommen das Seitenverhältnis ignoriert. Ich kann die Größe angeben – z.B. 150px x 120px – und so wird dann das Vorschaubild auch angezeigt. Egal was es eigentlich für eine Größe hat. Auf gut deutsch… es wird so hingezerrt das es passt. Was natürlich nicht berauschend aussieht. Besonders fällt es bei Hochformatbildern auf.

Die Lösung:

Es ist wichtig schon beim Hochladen des Bildes die richtige Thumbnailgröße anzugeben (hier wird das Seitenverhältnis beachtet!). Das macht man im Administrationsbereich unter Optionen -> Thumbnails.
Wenn nun schon beim Hochladen das Vorschaubild in die richtige Größe gebracht wird, dann brauchen wir diese beim Anzeigen nur noch auslesen (wie das genau geht kannst du hier lesen). Fertig :)

Öffne dazu die Datei „./wp-content/plugins/nggallery/widgets/widgets.php“. Ca. in der Zeile 327 findest du eine Zeile die wie folgt anfängt:
$out .= '<img src="'.$image->thumbURL.'" width= ...
Diese Zeile ist teil einer „if“-Abfrage. Ändere diese Zeile(n) wie folgt:

...
if ( $instance['show'] == 'original' )
	$out .= '<img src="' . trailingslashit( home_url() ) . 'index.php?callback=image&pid='.$image->pid.'&width='.$instance['width'].'&height='.$instance['height']. '" title="'.$alttext.'" alt="'.$alttext.'" />';
else {	
	$ImgA = getimagesize($image->thumbURL);
	$out .= '<img src="'.$image->thumbURL.'" width="'.$ImgA[0].'" height="'.$ImgA[1].'" style="width:'.$ImgA[0].'px; height:'.$ImgA[1].'px; float:center;" title="'.$alttext.'" alt="'.$alttext.'" />';			
}				
...

Die kursiven Zeichen sind nur zur Verdeutlichung im Kontext. Speichern und wieder auf den Server kopieren.

Bitte auf jeden Fall beachten das wenn du ein Update des PlugIns machts, diese Änderungen wieder überschrieben werden… hatte ich heute erst das Problem.

Gruß
Gordon


Hinweis: Die Verwendung meiner Codeschnipsel erfolgt auf eigene Gefahr! Ich übernehme auch keine Garantie auf Funktionstüchtigkeit (jeder Server ist anders konfiguriert. Bei Problemen können Sie hier aber gern einen Kommentar schreiben und wir suchen eine Lösung. ;)

3 Antworten
  1. Felix
    Felix says:

    Wenn man die Thumbnail-Größe richtig einstellt, brauch man die Größen auch nicht mehr auslesen, sondern kann sie dann einfach beim Original belassen, sprich „width“ und „height“ löschen.
    So habe ich es gelöst…

    Antworten
  2. Silur
    Silur says:

    Hallo :-)

    könntest du dieses TUT. vlt auch an einer neueren version Zeigen? Konnte deine Schritte nämlich nicht nachvollziehen :-D

    lg
    Silur

    Antworten
    • Gordon
      Gordon says:

      Hallo Silur,

      ich habe das Tutorial mal auf den neusten Stand gebracht.
      Die Datei wurde eigentlich nur in den Unterordner „Widgets“ verschoben und die entsprechende Stelle ist jetzt etwas weiter oben.
      Im Grunde machst Du folgendes… Du liest mit getimagesize die Bildmaße aus und übergibst sie dem IMG-Tag. Das ist alles.

      Wenn Du noch Fragen hast dann keine Scheu :)

      Antworten

Hinterlassen Sie einen Kommentar

Wollen Sie an der Diskussion teilnehmen?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.


*