CCK Vergleich und dann E-Mail

am 15.02.2011 - 18:10 Uhr in
Hallo,
ich habe 2 Inhaltstypen, der eine für "Redakteure" der andere für "Leser".
Ein Leser registriert sich auf der Seite und gibt in unterschiedlichen CCK-Feldern seine Interessen an.
Der Redakteur erstellt einen Inhalt, der über CCK-Felder (z.B. Taxonomie) deklariert wird.
Stimmt jetzt eine CCK-Feld von Leser und Redakteur überein, soll der Leser automatisch eine E-Mail mit Link zum Inhalt des Redakteurs erhalten.
Kann mir jemand einen Tipp geben wie ich das Realisiere?
Gruß Silvia
- Anmelden oder Registrieren um Kommentare zu schreiben
Wo genau befinden sich die
am 15.02.2011 - 23:59 Uhr
Wo genau befinden sich die CCK-Felder in denen der Leser seine Interessen angibt? Content Profile?
Was meinst Du mit "der Inhalt wird über CCK-Felder (z.B. Taxonomie) deklariert"? Content Taxonomy?
Wahrscheinlich läuft es auf eine Umsetzung mit Rules hinaus. (http://drupal.org/project/rules)
Aber ein paar genauere Infos wären schon hilfreich.
Exakt so, wie Du es
am 16.02.2011 - 01:35 Uhr
Exakt so, wie Du es geschrieben hast :) Sorry.
Beide Gruppen laufen über jeweilige Content Profile, beide haben auch Content Taxonomie Felder und normale CCK-Auswahllisten und Ankreuzfelder. Wobei aber erst mal nur die Content Taxonomie Felder verwendet werden sollen.
Bei Rules komme ich leider nicht weiter. Ich habe eine Regel erstellt mit: "Nach dem Speichern von neuem Inhalt", danach "Das Feld ‚field_thema‘ von Inhalt erstellt enthält einen Wert" nun soll ich das "Gewünschte Thema" auswählen. Aber hierüber läuft ja das CKK Content Taxonomie mit einer großen Auswahl an Themen. Muss ich dann jedes Mal ein "Das Feld ‚field_thema‘ von Inhalt erstellt enthält einen Wert" mit dem jeweiligen Begriff erstellen?
Oder doch lieber "Rules: Text-Vergleich", aber wie dann weiter?
Tja, bei Rules müsste ja nach
am 16.02.2011 - 15:44 Uhr
Tja, bei Rules müsste ja nach jedem neuen Inhalt die gesamte Userbase auf Übereinstimmung durchforstet werden.
Vielleicht ist es dann sinnvoller einen View zu bauen, der als Argument das Interessengebiet des Users einfüttert und so eben nur die relevanten neuen Inhalte anzeigt. Dazu noch ein Link zur Email des jeweiligen Redakteurs und gut ist. Oder aber die Benutzer abonnieren per Simplenews automatisch den entsprechenden Term der in ihrem Profil ausgewählt wurde?
Ich weiß nicht, ob ich Deinen Use-Case so ganz verstanden habe, aber es klingt schon nach einer ernsten Aufgabe.
Könnte man allerdings über
am 16.02.2011 - 16:20 Uhr
Könnte man allerdings über ein eigenes Modul machen, denke ich.
hook_nodeapi implementieren, nach dem Speichern die entsprechenden Felder auslesen und das ganze mit einer MySQL-Abfrage prüfen.
(allerdings könnte man die Abfrage evtl. auch in Rules machen, indem man den PHP-Modus verwenden)
Dann noch die Mail senden, fertig.
Noch einmal zu meinen
am 17.02.2011 - 00:31 Uhr
Noch einmal zu meinen Vorstellungen, vielleicht merk ich selbst beim Schreiben, ob dies der richtige Weg ist.
Ein "Leser" registriert sich und füllt über Content Profil in verschiedenen CCK-Feldern sein Profil.
Felder:
2x Content Taxonomie mit Auswahl der Begriffe, wobei mehrere Begriffe mittels Autocomplete und Active Tags gesetzt werden können.
Erstes CT-Feld: z.B. Kunst, Politik, Umwelt
Zweites CT-Feld: z.B. Berlin, Hamburg, München
Ein "Redakteur" erstellt ein Node, in einem gesonderten Inhaltstyp, und vergibt auch wiederum in CT-Feldern das Thema und den Ort.
Erstes CT-Feld: z.B. Umwelt
Zweites CT-Feld: z.B. Hamburg
Nun würde ich gerne, das bei Zustimmung eines Newsletters vorausgesetzt, der "Leser" automatisch über diesen neuen Inhalt per E-Mail informiert wird. Da Inhalt von Redakteur und Interessen von Leser übereinstimmen. Wenn nicht dann nicht.
Habe jetzt Notification und CCK Notification getestet, finde aber die Zuordnung von den CCK-Feldern nicht. Simplenews ausprobiert, kann hierbei leider nur eine Kategorie vergeben. Bei beiden scheitert es auch bei Auswahl von mehreren Begriffen in einer Kategorie.
Rules, scheitert auch bei Auswahl von mehreren Begriffen in einer Kategorie. Oder mir fehlt einfach das Wissen.
Eine Lösung wäre hier noch, wie schon beschrieben, Views. Bräuchte aber eine Ansatzpunkte wie ich dort vorgehen soll. Und mit hook_nodeapi und MySQL scheitert es bei mir am Wissen. Komme aus der Grafikecke :) oder in diesen Fall :(
Ich komme auch aus der
am 17.02.2011 - 12:26 Uhr
Ich komme auch aus der Grafikecke, bin also auch nicht firm im Programmieren.
Die Verwendung von Content Profile macht es wieder recht tricky. Für das normale Profil kannst Du im View ein Argument der Taxonomie verwenden, ein Standardargument mit PHP zur Verfügung stellen und als Code
global $user;
$account=$user;
profile_load_profile($account);
return $account->profile_INTERESSEN;
Damit würden schonmal alle Inhalte gefiltert, die dem Interesse des Lesers entsprechen. Das ganze kann dann natürlich mehrfach verwendet werden um auch noch nach Städten, Farben oder sonstwas zu filtern.
Dann müsste nur noch ein Link zu diesem View quasi als Newsletter verschickt werden.
Wie gesagt ist die Verwendung von CP recht schwierig. Du müsstest den code eben auf CP anpassen. Vielleicht bringt Dich das hier weiter: http://drupal.org/node/562270
Viel Erfolg!
Der Link hat geholfen. Habe
am 19.02.2011 - 19:20 Uhr
Der Link hat geholfen. Habe jetzt ein Block, auf den Userseite der die passenden Inhalte filtert.
Stellt sich jetzt nur die Frage, wie ich diese auch per E-Mail automatisch verschicken kann.
Folgenden View nutze ich jetzt:
<?php
global $user;
$account = $user;
$node = content_profile_load('your_content_type', $account->uid);
if ($node && $node->taxonomy) {
foreach($node->taxonomy as $term) {
$terms[] = $term->tid;
}
return implode('+', $terms);
} else {
return;
}
?>
Dieser bezieht sich aber auf keinen User, wenn ich das richtig verstanden habe. Nur gibt es keinen Token für den E-Mail Empfänger der abgleicht ob der View auf der Userseite angezeigt wird. Ich bin verwirrt :(
Ich denke Views-Mail oder Views-Send in Kombination mit VBO könnte dies lösen. Komme hier aber nicht weiter.
Gruß Silvia