[fast gelöst] Abstimmungstool/-modul

am 10.07.2013 - 09:47 Uhr in
Hallo Community,
nach ewig langem Googlen und foreninternen Suchen stehe ich kurz vor der Verzweiflung. Ich bin auf der Suche nach einem Abstimmungstool, welches ein paar Kriterien erfüllen sollte und hoffe, Ihr könnt mir weiterhelfen.
Und zwar haben wir fünf Kategorien mit jeweils drei Nominierten, die zur Abstimmung stehen. Abgestimmt wird durch Webseiten-Gäste, die aber nur einmal in 24 Stunden abstimmen dürfen sollen und auch pro Kategorie nur für einen Nominierten abstimmen dürfen. Die Ergebnisse sollen nur für Administratoren einsehbar sein. Niemals sollen sie öffentlich zugänglich sein.
Habt ihr hierzu einen Vorschlag für mich? Ich finde einfach kein ordentliches Abstimmungsmodul.
Jeder Nominierte bekommt momentan eine eigene Node mit allen Informationen und zur Abstimmung wollte ich die Nominierten auf einer Seite aggregieren (mit Bild, 2 Infosätzen und einem weiterführenden Link). Dies hätte ich mit einer View umgesetzt und dann so designed wie ich das bräuchte. Aber in einer View kann man ja keine Abstimmung/Umfrage einbauen, oder?
Irgendwie stehe ich gerade total vor einer Wand und hab keine Ahnung, wie sich dies umsetzten lassen könnte. Über jede Hilfe und jeden Hinweis bin ich sehr dankbar!
Vielleicht gibt's für das Modul VotingAPI ein passendes Interface, mit welchem so etwas möglich ist?
Vielen Dank im Voraus und viele Grüße!
Jacqueline
- Anmelden oder Registrieren um Kommentare zu schreiben
Hast du dir schon mal fivestar
am 10.07.2013 - 20:03 Uhr
Hast du dir schon mal fivestar angeschaut? Das ist recht flexibel, es gibt auch Video-Tutorials dazu,
z.B. http://codekarate.com/daily-dose-of-drupal/drupal-7-fivestar-module
Schwierig könnte die Sache mit dem 1x pro 24 Stunden wählen werden. Vielleicht kannst du das über
https://drupal.org/project/voting_rules regeln.
Wenn du das kontrollieren willst, müssen auf jeden Fall die Wähler user sein und keine Gäste, sonst müsste die Identifizierung ja über die IP Adresse der Wähler erfolgen und das könnte man auch umgehen.
Du kannst auf jeden Fall eine view mit Entities nach fivestar Bewertungen sortieren lassen.
Beste Grüße
Marco
Bisher noch nicht ausprobiert
am 11.07.2013 - 09:14 Uhr
Hallo Marco,
danke für deinen Tipp! Ich hab das Modul bereits gesehen und durchgelesen, aber bisher noch nicht ausprobiert.
Momentan glaube ich nicht, dass es das kann, was ich brauche. Aber bevor ich gar nichts habe, werde ich es mir natürlich trotzdem mal ansehen :).
Auch bin ich am überlegen, ob eine Mischung aus Panels, Standard-Poll und CSS mich vielleicht weiterbringt. Eventuell kann ich ja in einer Panelansicht etwas zusammen bauen wie: View bestehend aus den drei Nominierten der ersten Kateogorie plus Standardumfrage und die dann per CSS umdesigned. Aber das muss ich wohl einfach ausprobieren. Ich glaube, an die Lösung komme ich vielleicht wirklich nur durch vieles herumprobieren ran.
Ich werde auch mal sehen, ob's es eine gute Anleitung gibt, wie man ein Modul programmiert. Vielleicht komme ich langsam an die Stelle, bei der das mal wichtig wird gerade.
Das mit dem 1x in 24 Stunden weiß ich auch noch nicht, wie ich das lösen soll. Ich glaube, die Benutzer würden sich nicht extra anmelden, um abzustimmen :(.
Vielleicht Cookies. Auch wenn das sehr einfach zu umgehen ist :(.
Dankeschön und viele Grüße,
Jacqueline
Ich würde dafür
am 11.07.2013 - 09:48 Uhr
Ich würde dafür wahrscheinlich entityform nehmen. Darin kannst du alle Drupal Feldtypen verbauen, auch Fivestar! Und es hat eine komplette views Integration.
Habe mir gerade deine Anforderungen nochmal durchgelesen und denke, du brauchst gar kein Voting-Modul dafür.
Du kannst mit Entityforms ein Abstimmungsformular bauen mit je 1 Auswahlliste den Nominierten der jeweiligen Kategorie. Oder du baust pro Kategorie 1 Abstimmungsformular.
Beste Grüße
Marco
Übrigens zur Info: Es ist
am 11.07.2013 - 09:59 Uhr
Übrigens zur Info: Es ist einfach, einen entityform formtyp so einzustellen, daß ihn jeder Abstimmende nur 1x nutzen darf. Das müsste auch für Gäste gehen, solange derjenige seine Cookies nicht löscht. Und du kannst mal gucken, welche Rules Optionen es für entityforms gibt.
jshoffmann schrieb Jeder
am 11.07.2013 - 10:12 Uhr
Jeder Nominierte bekommt momentan eine eigene Node mit allen Informationen und zur Abstimmung wollte ich die Nominierten auf einer Seite aggregieren (mit Bild, 2 Infosätzen und einem weiterführenden Link). Dies hätte ich mit einer View umgesetzt und dann so designed wie ich das bräuchte. Aber in einer View kann man ja keine Abstimmung/Umfrage einbauen, oder?
Wenn du Fivestar installierst, hast du in jedem Nodetyp einen Feldtyp "Fivestar Rating" zur Verfügung. Dieses Feld kannst du in der View ausgeben lassen, so dass User raten können. Kein Problem. Die minimalen Abstände von 24 Stunden sollten sich mit Rules, bzw. Rules Scheduler regeln lassen, wenn dir IP und Cookies zu unsicher sind. Bedenke, wenn du den Scheduler einsetzt, musst du zuerst eine Rules- Komponente erstellen. Am besten dazu mal die entsprechenden Videos zum Scheduler bei nodeone.se anschauen.
Modulentwicklung: Gute Tutorials gibt's meist nur zu speziellen Anwendungsfällen. Das Buch "Drupal 7 Module Development" ist für den Einstieg sehr empfehlenswert, da es viel Grundlagenwissen vermittelt. Als PDF Variante ist es auch frei erhältlich: http://it-ebooks.info/book/1455/
Viele Grüße
Kannte ich bisher gar nicht
am 11.07.2013 - 11:05 Uhr
@Marco
Oh wow, das Modul entityform kannte ich bisher gar nicht. Ja, das sieht eindeutig nach der richtigen Richtung aus!
Vielen Dank, damit werde ich mal eine ganze Zeitlang testen und probieren.
@glycid
Vielen Dank für die vielen Tipps! Fivestar scheint echt mehr zu können, als ich die ganze Zeit dachte. Das muss ich dringend wohl mal ausprobieren.
Das Buch werde ich mir auf jeden Fall mal ansehen!
Dankeee!
Jacqueline
Letztendlich kommt es
am 11.07.2013 - 17:12 Uhr
Letztendlich kommt es wahrscheinlich drauf an, wie du es ganau haben willst.
Soll das Abstimmen ganz einfach ohne Formular "mit 1 Klick" passieren, wärst du mit fivestar direkt in einem view richtig, wie von glycid beschrieben.
@glycid: Danke auch für den Buchtipp.
Geniale Sache!
am 12.07.2013 - 07:25 Uhr
Ich glaube, so langsam komme ich der Sache näher und näher :).
Ich hab' mir jetzt eine View gebaut, die alle Nominierten anzeigt. Per Entityform habe ich ein Abstimmungsformular gebaut, welches mit Entity Reference die Titel der Nominierten ausließt und hinter die Radiobuttons schreibt (so muss ich das nicht zwei Mal pflegen, falls sich etwas ändert). Mit der Views API habe ich dann beim Laden der Entityform die erstgenannte View gezogen, so dass ich beides auf einer Seite habe: Infos und Abstimmungsbuttons. Die Views mache ich jetzt 60% Seitenbreite mit CSS und floate die Abstimmung auf 40% Seitenbreite daneben, damit habe ich die Abstimmung direkt neben den Infos.
Jetzt fehlt mir nur noch das 1x abstimmen pro Tag. Mit Rules kann ich nach dem Absenden der Entityform PHP Code ausführen. Mit diesem werde ich versuchen ein Cookie zu setzen. Dieses sollte dann beim Laden der Entityforms ausgelesen werden und das erneute Senden verhinden. Aber diesen PHP Code muss ich jetzt erst noch schreiben und hoffen, dass es so klappt wie ich das gerne hätte.
Und für die Ergebnisse brauche ich auch noch eine View, aber das kommt dann zum Schluss :).
Danke für Eure Hilfe!
Freut mich, hört sich gut an.
am 12.07.2013 - 12:31 Uhr
Freut mich, hört sich gut an. Viel Erfolg.
Meinst du das hier? Geht über
am 12.07.2013 - 13:10 Uhr
Meinst du das hier? Geht über Voting API oder verstehe ich dich falsch?
Dort hast du die Auswahl anonyme User und darunter (verdeckt) für registered User...
Grüße Jenna
Ja cool! Das ist doch super
am 12.07.2013 - 18:56 Uhr
Ja cool! Das ist doch super geeignet, oder?
versuchen ein Cookie zu setzen
am 13.07.2013 - 01:11 Uhr
Jeder kann doch Cookies löschen.
Ich tue dies jedenfalls öfters.
Ich schon auch. Nur wissen in
am 13.07.2013 - 10:42 Uhr
Ich schon auch. Nur wissen in meiner Realität viele Leute gar nicht, dass sie damit sowas umgehen können, außerdem sehe ich für Gäste auch keine bessere Lösung.
Cookies
am 15.07.2013 - 07:50 Uhr
Ja, das mit den Cookies ist ein Problem. Aber ich kenne leider auch keine gute Alternative dazu :(.
Das mit dem Voting API sieht eigentlich klasse aus. Habe ich direkt mal installiert. Aber irgendwie finde ich die Schnittstelle nicht wirklich. Meine Entityforms bzw. die Rules wollen von sich aus nicht auf die Voting API zugreifen und ich hab jetzt mal in den Code der API reingeschaut, die scheint nicht wirklich eine eigene Cookie-Funktion mitzubringen.
Ich habe in der "Rule" dann versucht den PHP-Cookie-Code selbst auszuführen. Aber es scheint nichts zu passieren, das Cookie ist im Code anschließend nicht vorhanden. Bin noch am überlegen, was mir für Möglichkeiten bleiben und werde euch auf dem Laufenden halten.
Danke euch allen!!!
Ich nutze Voting API in
am 15.07.2013 - 11:42 Uhr
Ich nutze Voting API in Verbindung mit https://drupal.org/project/rate
Per Rate kannst du die Abstimmungstools bestimmten Inhaltstypen zuordnen, natürlich auch per Views ausgeben und eigene Sets (optisch) erstellen und z.b. angeben das eine Umfrage nur 2 oder 4 Wochen läuft.
Wenn du also deine Entity Felder per Inhaltstyp aufbaust kannst du zusätzlich https://drupal.org/project/node_limit einsetzen und als Beispiel die Regel erstellen, das alle User der Rolle X nur 1 x abstimmen dürfen, danach ist der Abstimmungslink weg, ebenfalls das registrierte User nicht für sich selbst abstimmen dürfen, z.B. bei Uservoting / Bilder....
Auch hier natürlich das Problem wenn ein Gastuser an einen anderen Rechner geht kann er das so umgehen, da fällt mir auch keine Lösung ein bzw. bin gar nicht sicher ob es die (ausser Cookies) geben kann?
Meine Abstimmungen sind aber auch nicht so wichtig, das es ein Problem wäre, wenn ein User sich die Mühe macht an einen anderen Rechner zu gehen, darf er ruhig 2 x abstimmen, aber mal ehrlich, wer tut das?
Grüße Jenna