Wie finde ich User, die den selben Content geflagged haben
am 21.06.2014 - 10:55 Uhr in
Hallo zusammen,
in einer Drupal 7 Installation gibt es einen eigenen Content-Type "tutorials". tutorials kann von registrierten Usern geflagged werden ("bearbeite ich").
User 1 hat folgende Tutorials geflagged
- tutorial 1
- tutorial 2
- tutorial 3
- tutorial 27
User 2 hat folgende Tutorials geflagged
- tutorial 1
- tutorial 2
- tutorial 3
- tutorial 45
Ich soll jetzt für jeden User einen Block erstellen, in dem andere Tutorial empfohlen werden, und zwar Tutorials von den anderen Usern, die mindestens drei gleich Tutorials geflagged haben.
In diesem Beispiel würde dem User 2 also tutorial 27 vorgeschlagen (weil user 1 dieselben tutorials 1-3 in seinr Liste hat).
Ich habe das recommendation module gefunden, aber das erscheint mir ein wenig wie mit Kanonen auf Spatzen schiessen. Hat jemand einen Tipp für mich wie ich das einfach und performant umsetzen kann?
Danke & Grüße
Rhodes
- Anmelden oder Registrieren um Kommentare zu schreiben

So müßte das gehen (nicht
am 23.06.2014 - 08:34 Uhr
So müßte das gehen (nicht getestet):
Es gibt ja eine View flag_bookmarks, die mit dem Modul flag mit geliefert wird.
Eine ähnliche View würde ich erstellen, die erst mal alle Flags holt für Tutorials, die der aktuelle User geflaggt hat.
Von denen würde ich eine Relation auf alle User machen, die eines der Tutorials geflaggt haben und die View auf "Use aggregation:Ja" setzen und das Userfeld auf Anzahl.
Als Filter würde ich auf die User filtern, die als Count mind. 3 haben.
Die View als Block ausgeben, der nur angezeigt wird, wenn mind. ein User mit mind. 3 übereinstimmenden Tutorials gefunden wurde.
Andernfalls kann man einen Text ausgeben lassen von der Block-View: Noch keine Empfehlungen vorhanden, oder auch leer lassen.
Wie performant sich das verhält, müßte man testen.
Da ja gleich von Anfang an die Abfrage auf vom betrachtenden User gesetzte Flags passiert, sollte die Anzahl an Datensätzen nicht so riesig sein.