↑ Zurück zu WordPress-Plugins

NextGEN Gallery Voting Tutorial und Demo

Go to the English version of the tutorial here.

Das WordPress.org-Plugin „NextGEN Gallery Voting“ ermöglicht Besuchern der Webseite, einzelne Bilder zu bewerten. Das ist recht nützlich, wenn man als Webseiten-Betreiber wissen möchte, welche Bilder den Besuchern besonders gut gefallen und welche weniger gut ankommen. Man kann auch Foto-Wettbewerbe veranstalten. Leider hat die aktuelle Version noch einige Schwächen, die man beseitigen muss, damit das Programm gut läuft. Hier beschreibe ich, wie ihr eure Version von nggvoting anpassen müsst.

Wichtig: Ich habe NextGEN Gallery Voting ausgeschaltet, weil ich eine bessere Möglichkeit gefunden habe, Feedback von meinen Kunden zu bekommen: TTG CE3 Client Response Gallery.

Hier gibt es eine Demo davon.

1.0 Einrichtung

NextGEN Gallery Voting ist ein Addon für das Plugin „NextGEN Gallery“. Ohne funktioniert es nicht. Nach der Installation von „NextGEN Gallery Voting“ über das WordPress-Backend (oder über FTP-Zugriff) erscheint ein zusätzliches Menü im Backend: „NGG Voting Defaults“. Hier kann man die Grundeinstellungen für NEUE Galerien einstellen. Das sieht bei mir so aus.

Nachteil ist, dass diese Einstellungen nur für NEUE Galerien gelten. Also beeinflussen diese Einstellungen die bisher bestehenden Bilder und Galerien nicht. Man muss also zunächst ein paar Fotos und Galerien manuell für das Voting freigeben. Das funktioniert für Galerien ohne weitere Probleme. Sobald man eine Galerie zum Voting freigegeben hat erscheinen unter dem letzten Vorschaubild der Galerie die Sterne zum Bewerten.

DIE HIER BESCHRIEBENE EINRICHTUNGS-PROZEDUR GILT NUR FÜR ÄLTERE VERSIONEN VON NGG

Das Voting für einzelne Bilder funktioniert jedoch NICHT so einfach. Damit es klappt, muss man zunächst noch etwas an der Datei

wp-content/plugins/nextgen-gallery/view/gallery.php

ändern. Und zwar muss man den die Zeile „<?php echo nggv_imageVoteForm($image->pid); ?>“ hinzufügen. Die fertige Datei sieht bei mir so aus: (klickt auf das Bild, dann wird es groß)

ngg-voting

Danach funktioniert es. Wenn es bei euch danach doof aussieht, schreibt die Zeile einfach mal woanders hin. Vielleicht klappt es danach besser. Einfach mal ausprobieren hilft hier am besten. Es funktioniert bei euch nicht? Schreibt einen Kommentar hier unten und ich helfe Euch!

1.1 Ins Deutsche übersetzen

Ihr müsst in der ngg-voting.php nach den beiden Zeilen (es gibt zwei!)
$out .= '<input type="submit" value="Rate" />';
suchen und ersetzen durch:
$out .= '<input type="submit" value="Bewertung abgeben!" />';

oder was auch immer Ihr da stehen haben möchtet.

Ihr könnt auch die „Dankesmeldung“ übersetzen:

Sucht nach den nach den beiden Zeilen (es gibt zwei!)

$bufferInner .= 'Thank you for casting your vote!';
und ersetzt sie durch
$bufferInner .= 'Ihre Stimme für das &#8593 Bild wurde gezählt';

2. Abstimmung für alle Bilder aktivieren (auch die alten)

Das kann man mit 3 Klicks pro Bild manuell machen. Bei meinen über 1000 Bildern müsste ich demnach sehr oft klicken und Häkchen setzen. Das wollte ich mir natürlich sparen. Stattdessen habe ich auf meine SQL-Datenbank zugegriffen und folgende SQL-Befehle ausgeführt:

Ihr wisst nicht, wie ihr da hinkommt? In diesen beiden Bildern ist es erklärt: (klickt auf die Bilder, dann werden sie groß)

sql1

sql2

UPDATE  `Datenbank_name`.`wp_nggv_settings` SET  `enable` =  '1',
`force_once` =  '1',
`voting_type` =  '2' WHERE  `wp_nggv_settings`.`pid` >0

Der selbe Befehl jedoch mit enable=0 deaktiviert das Voting für alle Bilder.

3. Abstimmung für alle Galerien aktivieren (auch die alten)

UPDATE  `Datenbank_name`.`wp_nggv_settings` SET  `enable` =  '1',
`force_once` =  '1',
`voting_type` =  '2' WHERE  `wp_nggv_settings`.`pid` =0

Der selbe Befehl jedoch mit enable=0 deaktiviert das Voting für alle Galerien.

4. Bots vom Bilder-Bewerten ausschließen

Bei mir sind etwa 80 % der abgegebenen Stimmen von Bots. Nur 20 %  der Stimmen sind von menschlichen Besuchern der Seite. Bots sind Maschinen, die das Internet durchsuchen und fleißig auf alle Links klicken, die sie finden. Meistens sind diese Bots im Auftrag von Suchmaschinen unterwegs. Manchmal sind es aber auch böse Bots, die zum Beispiel nach E-Mail-Adressen suchen, denen sie Spam schicken können.

Wenn man bei nggvoting als Voting-Art „Star-Rating“ ausgewählt hat, dann erscheinen unter den Bildern Sterne. Weil jeder der Sterne ein Link ist, klickt ein Bot, wenn er auf der Seite ist, fleißig überall drauf. Auch bei den anderen Voting-Types werden die meisten Stimmen von Bots abgegeben. Das ist natürlich doof. Ich möchte durch das Voting herausfinden. welche Bilder meinen Besuchern gefallen. Ich möchte jedoch NICHT das Bots dieses Voting verfälschen.

Ich habe eine Gegenmaßnahme ergriffen: Die robots.txt. Die verbietet den Bots der Suchmaschinen, die Rating-Links anzuklicken. Hoffe ich jedenfalls (Update 06.06.2012: Die robots.txt hilft nur, die Suchmaschinen-Bots von den Links fernzuhalten. Alle Bots, die die robots.txt ignorieren (und das sind sehr viele) klicken weiter munter auf die voting-links. Ihr solltet also noch andere Maßnahmen ergreifen, beispielsweise  das Voting nur noch für registrierte Benutzer freigeben oder das Voting nur auf Seiten veranstalten, auf die die Bots keinen Zugriff haben, etwa wegen Passwortschutz).

Hier ist der Teil meiner robots.txt, in dem den Suchmaschinen-Bots das Klicken auf die Links verboten wird:

User-agent: *
Sitemap: http://c-schaefer-foto.de/sitemap.xml

#für google-Sucher unwichtige Teile der Seite blockiert:
Disallow: /piwik/
Disallow: /author/
Disallow: /feed/

#blockiert alle URLs, die ein Fragezeichen
#enthalten (unter anderm die ngg-Voting-Links!):
Disallow: /*?

#blockiert expilizit die ngg-Voting-Links:
Disallow: /?ngg-pid=
Disallow: /*?ngg-pid=

#lässt alle URLs zu, die mit einem Fragezeichen
#enden, Beispiel: "http://c-schaefer-foto.de/wie-geht-das?"
Allow: /*?$

4.1 Votes, die von Bots abgegeben worden sind, löschen

Ich habe ein Makro für Excel geschrieben, das die Votes, die von Bots abgegeben worden sind, findet und löscht. Das Ganze ist jedoch nicht besonders komfortable und deshalb nur für Nutzer geeignet, die:

  • Zugriff auf die SQL Datenbank haben,
  • Zugriff auf ein Programm haben, das die IP´s der (menschlichen) Besucher protokolliert, zum Beispiel Piwik oder Google Analytics
  • Kenntnisse in Excel und SQL
  • Meinen VBA-Makros vertrauen. Wenn Ihr das nicht tut, könnt ihr den Code des Makros hier unten sehen. Ihr könnt ihn kopieren und eure eigenen Programme damit bauen. Sagt mir bitte Bescheid, wenn etwas brauchbares dabei herauskommt.
  • Regelmäßig Backups von ihren Daten machen. Ich hafte nicht für Daten, die durch das Programm irrtümlich gelöscht werden.

Ihr braucht dieses Programm. Es steht eigentlich alles, was ihr wissen müsst auf dem ersten Sheet. Wenn ihr Fragen habt, dann schreibt am besten einen Kommentar hier unten.

5. Weitere SQL-Kommandos

alle Benutzer müssen zum Voting eingeloggt sein:

UPDATE  `Datenbank_name`.`wp_nggv_settings` SET  `force_login` =  '1'

Zum Umschalten von „drop down“, „Star-Rating“ und „Like/Dislike“ die Werte 1, 2 oder 3 einsetzen

UPDATE  `Datenbank_name`.`wp_nggv_settings` SET  `voting_type` =  '1'

Jeder darf nur einmal abstimmen:

UPDATE  `Datenbank_name`.`wp_nggv_settings` SET  `force_once` =  '1'

Benutzer sehen das Ergebnis:

UPDATE  `Datenbank_name`.`wp_nggv_settings` SET  `user_results` =  '1'

6. Abgegebene Stimmen löschen/bearbeiten:

Das könnt ihr machen, indem ihr die Tabelle wp_nggv_votes bearbeitet. Ihr könnt einzelne Stimmen raussuchen und löschen oder ganze Gruppen raussuchen und löschen. Beispielsweise alle Einträge, die von einer bestimmten IP stammen oder die zu einem bestimmten Bild (pid) oder einer Galerie (gid) gehören.

———————————–

Ihr wollt etwas zu dem Thema sagen? Schreibt einen Kommentar!

Viele Grüße
Constantin Schäfer
Fotograf (oder doch Webdesigner?) aus Berlin
——————-
Euch hat der Artikel gefallen? Dann empfehlt ihn euren Freunden!

23 Kommentare

Zum Kommentar-Formular springen

  1. Thorsten

    Hallo,

    habe jetzt überall gesucht, wo findeich denn wp-content/plugins/nextgen-gallery/view/gallery.php? Ich bin absoluter Neuling und kann da überhaupt nichts mit anfangen.

    Gruß Thorsten

    1. Constantin

      Hallo Thorsten,

      sorry, dass ich nicht früher geantwortet habe. Ich hatte viel Arbeit in den letzten Tagen.

      Ich habe mir das Plugin NGG-Voting schon seit langer Zeit nicht mehr angesehen. Ich benutze es seit den letzten Versions-Updates auch nicht mehr. Die gallery.php befindet sich in den neuen Versionen des Programms an einer anderen Stelle. Ich kann Dir daher leider nicht helfen.

      Viele Grüße
      Constantin

  2. Thomas

    Hallo Constantin,

    vielen Dank für dieses Tutorial !!!
    Ich bin damit schon recht weit gekommen … es soll um die Bewertung von 2.300 Bildern durch eine Jury gehen.

    Und da habe ich im Moment noch 2 Fragen:

    – wo finde ich die Tabelle ‚wp_nggv_votes‘, um Votes zu löschen
    – gibt es eine Möglichkeit die 5 Sterne in 10 Sterne zu fächern, da ja die Bewertung selbst
    in 2er Schritten funktioniert … ich würde gern die Voting Bandbreite etwas breitziehen

    LG
    Thomas

    1. Constantin

      Hallo,

      Danke für deinen Kommentar.

      Die Tabelle ‚wp_nggv_votes‘ findest du in deiner SQL Datenbank.

      Wie du 10 Sterne anzeigen lassen kannst, weiß ich leider nicht, ist auch nicht ganz so einfach. Wenn du 10 Bewertungsschritte haben möchtest, könntest du das drop-down voting benutzen.

      Viele Grüße
      Constantin

      1. Thomas

        Hallo Constantin,

        vielen Dank für Deine Anworten!
        Thomas

        Viele Grüße

  3. Frank K.

    Hallo Constantin,

    danke für das Tutorial, es hat mir sehr geholfen und funktioniert jetzt sogar bei mir. Da Du Dich ja intensiv mit dem Plugin beschäftigt hast, kannst Du mir vielleicht noch eine Frage beantworten: Ist es möglich, den DislikeButton mit dazugehörigem Text zu deaktivieren?

    Hintergrund: Die Besucher sollen nur einmal ein Bild bewerten können, das beste Bild gewinnt dann, da macht der Dislikebutton für mich irgendwie keinen Sinn.

    1. Constantin

      Hallo Frank,

      da ich selber like/dislike nicht benutze, weiß ich das leider nicht. Was recht einfach geht, ist die Punkte für den Dislike-Button so zu ändern dass er zwar angezeigt wird, aber keine Funktion mehr hat.

      Um den Dislike-Button nicht mehr anzuzeigen, musst du das hier verstehen:
      http://wordpress.org/support/topic/plugin-nextgen-gallery-voting-change-like-dislike-to-like-only?replies=17

      Viele Grüße!

      1. Frank K.

        Okay danke,

        hatte mir schon gedacht, dass es nicht soo einfach per Hand geht aber das Voting Premium bietet ja genau das, was ich brauche. Und 5,- $ sind auch bezahlbar. Also danke.

        Grüße zurück 🙂

  4. Markus

    Hallo Constantin,

    ohne Deine Anleitung hätte ich das Plugin für das Voting nicht ans laufen bekommen.

    Jetzt habe ich aber doch noch eine Frage:

    Wie bekomme ich „Rate this image“ und auch den „Rate“ Button übersetzt?
    Plugin Codestyling Lokalisierung habe ich im Einsatz, aber dort bekomme ich nur die Sprachdatei vom Plugin NextGEN Gallery angezeigt, jedoch nicht vom Voting.

    Schon mal danke für Deine Hilfe.

    Gruss
    Markus

    1. Constantin

      Hallo Markus,

      es freut mich, dass dir meine Anleitung bei der Installation von “NextGEN Gallery Voting” geholfen hat.

      Du musst in der ngg-voting.php nach den beiden Zeilen (es gibt zwei!)
      "$out .= '';"
      suchen und ersetzen durch:
      "$out .= '';"

      oder was auch immer du da stehen haben möchtest.

      Super, der Browser zeigt nicht den Text des Codes an. Ich habe einfach mal den Artikel ergänzt. Du findest die Anleitung in Kapitel 1.1.

      Viele Grüße!

  5. Gretzschel

    Hallo Constantin,

    Deine Anleitung hat mir sehr geholfen aber nun habe ich doch noch ein Problem.

    Habe eine Galerie erstellt und möchte die einzelnen Bilder bewerten lassen.
    Siehe: http://comhard-blog.de/fotowettbewerb-2012-2/thema-tiere/

    Problem: Wenn ein zweites Bild gevotet werden soll, ist die Information zur Gesamtbewertung des, als erstes gevoteten Bildes wieder weg. Damit verliert man die Übersicht und weiß nicht mehr, welches Bild man schon gevotet hat.
    Was muss ich einstellen, dass die Information für alle gevoteten Bilder sichtbar bleibt?

    Danke und herzliche Grüße
    Ute

    1. Constantin

      Hallo Ute,

      erstmal Glückwunsch zu Deiner schönen Seite. Ich habe gerade mal testweise einige votes für die ersten beiden Bilder abgegeben und habe dein Problem verstanden (diese Votes solltest du vielleicht lieber löschen).

      Versuche doch mal, es so einzustellen, dass jeder Benutzer nur ein mal für jedes Bild voten darf. Ich hoffe, dass dann der Fehler verschwindet. Wenn das nicht hilft, dann benutze mal das „star voting“ anstelle von „drop down“.

      Viele Grüße
      Constantin

  6. Jonathan

    HI

    erstmal vielen Dank für deinen Post, genau das hat bei mir nicht geklappt.
    Jetzt habe ich aber eine Frage:
    Bei mir verschiebt es dann total die Formatierung, die Sterne/DropDown werden nicht unter/über den Fotos angezeigt, sondern mal bei den Fotos dann in einer Liste und dann kommen alle Fotos. Hast du eine Idee woran das Liegeliegen könnte?
    hier ein Beispiel
    http://foto-teufel.de/indonesien/?nggpage=2

    Viele grüße

    Jonathan

    1. Jonathan

      Hi

      ich habs hinbekommen… Besser ist es, wenn man das: pid); ?> noch mit in den Bildcontainer packt, zumindes bei mir, dann gibts keine Formatprobleme.

      1. Constantin

        Hallo Jonathan,

        je nachdem welches Theme, welche Einstellungen in der Next Gen Gallery und welchen Voting-Typ (Sterne, Drop down oder like/dislike ) man eingestellt hat, muss man das pid); ?> verschieben. Einfach mal ausprobieren ist hier wohl die beste Methode.

        Ich finde, es sieht bei dir jetzt recht gut aus. Bei dem voting mit den Sternen musst du darauf aufpassen, dass Bots, die auf deiner Seite landen, auch Stimmen abgeben. Sogar ziemlich viele.

        Viele Grüße
        Constantin

      2. Claudia Fischer

        Lieber Hr. Schäfer,

        Erst mal vielen dank für das Tutorial.

        ich versuche gerade das voting einzubinden, angezeigt wir es jetzt endlich, aber wir oben in dem post ist leider alles verrutscht. a ich ein absoluter neewbie bin kann ich mit dem Satz „das pid); ?> verschieben“ nicht viel Anfangen. Soll ich das innerhalb der wp-content/plugins/nextgen-gallery/view/gallery.php machen, oder welche Datei enthält den Bildconainer?
        Über eine Antwort würde ich mich sehr freuen.

        Liebe Grüße Claudia

      3. Constantin

        Hallo Claudia,

        ja, das „< ?php echo nggv_imageVoteForm($image->pid); ?>“ musst Du in die Datei wp-content/plugins/nextgen-gallery/view/gallery.php hineinschreiben.

        Die richtige Zeile dafür zu finden ist gar nicht so einfach. Am besten einfach mal ausprobieren.

        Viele Grüße
        Constantin

  7. Constantin

    ich muss das hier mal so einstellen, dass ich eine Mail bekomme, wenn jemand einen Kommentar schreibt. Ich habe deine Kommentare heute erst gelesen. Sorry.

  8. Frank

    Ich schon wieder, das mit dem Ausblenden von Galerien habe ich hinbekommen 🙂
    Mein bei FB geschildertes Problem ist aber noch existent.
    Du musst nur lange genug warten, dann bekomme ich es schon alleine hin 😉

    Ich wünsche dir noch einen schönen Restabend

    Gruß
    Frank

  9. Frank

    Ich habe schon einiges in Suchmaschinen gestöbert, aber so richtig fündig wurde ich nicht. Wie kann man eine einzelne Galerie in NextGen… nur für registrierte zugängig machen? Privat geht, aber da kommen nur User mit hohen Rechten ran. Passwort ist doof, da man diese dann ja publizieren muss. Vielleicht hast du ja mal Lust dich des Problems anzunehmen. Eine Frage hatte ich auch schon in FB gestellt…

    Gruß

    Frank

  10. Constantin

    immer her mit den Fragen. Ich helfe gerne.

  11. Frank G.

    Hallo Constantin,

    damit ist ja alles wissenswerte bereits geschrieben, da brauche ich deine Hilfe ja nicht mehr 😉
    Aber wenn du so gut und tief in der Materie steckst, dann werde ich wohl trotzdem mal die eine oder andere Frage an dich haben…

    es grüßt

    Frank

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.