NextGEN Gallery 1.7.3 vs. XHTML 1.1

OK, jetzt reicht es. Gerade vor ein paar Tagen habe ich darüber geschrieben, dass ich endlich auch die NextGEN Gallery für WordPress dahingehend korrigiert habe, dass sie jetzt XHTML 1.1-valide ist. Heute gab es das Update auf Version 1.7.3, das ich selbstverständlich sogleich installiert habe – und meine Befürchtung bewahrheitete sich: Der alte Fehler ist wieder da. Der W3C-Validator sagt folgendes:

Line 1395, Column 407: ID „ngg-next-2″ already defined
…nggpage=10″>10<a id=“ngg-next-2″ href=“/fotos/?nggpage=2“>&#9…

An „id“ is a unique identifier. Each time this attribute is used in a document it must have a different value. If you are using this attribute as a hook for style sheets it may be more appropriate to use classes (which group elements) than id (which are used to identify exactly one element).

Dazu passend die Ursache für den Fehler:

Line 746, Column 405: ID „ngg-next-2″ first defined here
…/?nggpage=9″>9</a><a id=“ngg-next-2″ href=“/fotos/?nggpage=2“>&#9…

Da in einem validen HTML-Dokument jede ID höchstens einmal vorkommen darf, wird ein Fehler für jede weitere Galerie erkannt, die sich auf derselben Seite befindet wie die erste Galerie. In meinem Fall derzeit acht Galerien, ergo sieben Fehler. Das Problem ist: Für mehrere Galerien pro Seite liefert die NextGEN-Gallery von Herrn Alex Rabe (die ansonsten eigentlich makellos ist) keinen validen Code.

Wie ich bereits erwähnte, ist dem Autor bekannt, dass ein Fehler vorliegt. Er scheint nur zu faul zu sein, das zu fixen. Oder vergesslich. Ich dachte mir, wenn ich den Fehler schon wieder sporadisch flicken muss, dann kann ich ja eigentlich auch andere daran teilhaben lassen. Vielleicht stört sich ja außer mir noch jemand daran.

Geöffnet werden muss die Datei /wp-content/plugins/nextgen-gallery/lib/navigation.php. Sucht in der Datei nach folgendem Abschnitt:

if ( ( $page ) * $maxElement < $total || -1 == $total ) {
    $args[’nggpage‘] = $page + 1;
    $this->next = $nggRewrite->get_permalink ( $args );
    $r .= ‚<a id=“ngg-next-‚ . $args[’nggpage‘] . ‚“ href=“‚ . $this->next . ‚“>&#9658;</a>‘;
}

Entfernt werden muss in der vierten Zeile alles ab (einschließlich) id= bis vor href=. Also folgendermaßen:

    $r .= ‚<a href=“‚ . $this->next . ‚“>&#9658;</a>‘;

Speichern, hochladen, fertig. Diese Lösung ist nicht besonders intelligent, aber sie funktioniert und stellt den Validator zufrieden.

3 Gedanken zu „NextGEN Gallery 1.7.3 vs. XHTML 1.1

  1. Conti

    Das ist leider nur eine kleine Lösung eines noch viel größeren Problems. Die Pagination erzeugt durch die angehängten IDs permanent Duplicate Content, d.h. für jede Gallerie Seite wird der gesamte Content nocheinmal gespiegelt.

    Wenn man das für 10 bis 15 Gallerien macht, hat man ein ordentliches Problem auf seiner Seite… Eine inteligente Lösung wäre die Pagination in der navigation.php auf noindex zu setzen, die Links dahin aber follow zu lassen, damit die Bilder, deren Quelle als Link im Quellcode integriert sein sollte, indexiert werden können.

    Antworten

Schreibe einen Kommentar

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