Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst]Node update simulieren

Eingetragen von dennis605 (138)
am 07.12.2010 - 04:18 Uhr in
  • Allgemeines zu Drupal

Hallo liebe Drupla,

mal folgende Frage:

Ich habe 2 Inhaltstypen:
1. Artikel
2. Bewertung

Jetzt möchte ich, wenn eine Bewertung abgeben wurde, ein Node update bei Artikel gemacht wird, damit Benutzer über Watcher informiert werden.
Ich möchte aber, daß Artikel von Bewertung beeinflusst wird. Den "field_link" kenn ich, aber wie kann ich quasi ein Node update bei Artikel simulieren?

Vielen Dank

Dennis605

‹ [gelöst] CCK+CCK Fieldgroup Tabs --> Tabs links, vertikal darstellen? [erledigt] Der Dateiupload ist fehlgeschlagen. - imagefield ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Fragen

Eingetragen von stBorchert (6003)
am 07.12.2010 - 09:13 Uhr

Hallo.
Magst Du die Frage nochmal neu und verständlich formulieren?

Danke,

 Stefan

PS: evtl. [do:rules Rules]

  • Anmelden oder Registrieren um Kommentare zu schreiben

Gerne, sorry wenn es

Eingetragen von dennis605 (138)
am 07.12.2010 - 13:09 Uhr

Gerne, sorry wenn es unverständlich war.

Ich habe 2 Inhaltstypen : Bewertungen und Artikel.

Jetzt sollen Besucher Bewertungen für Artikel abgeben können.
Mittels "Watcher" lasse ich dann die Abonenten über dieses neue Ereignis informieren.

Mein Wunsch ist es, daß wenn eine neue Bewertung abgeben wurde, eine Veränderung im bewerteten Artikel statt findet, damit Watcher diese Veränderung (update) registiert, und eine Benachrichtigung abschickt.

Ich schreib es mal als Pseudo-Code:

function helper_module_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
$temp = $node;
$temp_ref = node_load($node->reviewed_nid);
$time = time();
  switch ($op) {

    case 'update':
     if($node->type == 'review') {
//dpm($node);
      $node = node_load($temp_ref->nid);
      //
     $node->changed = time();   -------------------------                           Ich möchte ich in dem bewerteten Artikel eine Veränderung durchführen, damit Watcher diese registriert
node_save($node);

 
break;
  }

Hoffe jetzt wird es klarer.
Danke für dein Feedback. Wusste nicht, daß es so unverständlich formuliert war.

dennis605

  • Anmelden oder Registrieren um Kommentare zu schreiben

Warum verwendest du nicht

Eingetragen von Tobias Bähr (4019)
am 07.12.2010 - 13:17 Uhr

Warum verwendest du nicht Fivestars?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Rules

Eingetragen von stBorchert (6003)
am 07.12.2010 - 13:19 Uhr

Wie ich bereits vermutet habe, lässt sich hier etwas mit [do:rules Rules] machen.
Beim Update einer Node lässt Du über Rules ("execute custom PHP code") _watcher_email_notify_node_update($node) ausführen, wodurch die Benachrichtigung versendet werden sollte.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würde das PS. von Stefan

Eingetragen von md (3717)
am 07.12.2010 - 13:22 Uhr

Ich würde das PS. von Stefan beachten. Könnte ein Fall für Rules sein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Tobias Bähr: Das verwende

Eingetragen von dennis605 (138)
am 07.12.2010 - 13:55 Uhr

@Tobias Bähr: Das verwende ich doch. Ich möchte wie oben erwähnt nicht eine Benachrichtigung auf die Bewertung, sondern auf den Artikel. dewegen muss ich es an meine Wünsche ein wenig anpassen. Das macht aber Fivestars von Natur aus.

@stBorchert: Genau nach so etwas habe ich gesucht. Hoffe es funktioniert. Vielen Dank. Melde mich noch einmal wenn es geklappt hat, oder auch nicht.

vg
dennis605

  • Anmelden oder Registrieren um Kommentare zu schreiben

funktioniert leider über

Eingetragen von dennis605 (138)
am 07.12.2010 - 20:01 Uhr

funktioniert leider über Rules nicht.

Habe es dann so versucht,über ein Modul zu realisieren:

function myhelp_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
  switch ($op) {

    case 'insert':                       -----------------------------------------> soll ja nach dem Erstellen ausgeführt werden.
     if($node->type == 'review') {
$node_temp = node_load($node->reviewed_nid);
      _watcher_email_notify_node_update(&$node_temp); ------------------------------------------------> Hier übergebe ich die Referenz
   
break;
  }

}
}

und mit

function myhelp_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
  switch ($op) {

    case 'insert':                       -----------------------------------------> soll ja nach dem Erstellen ausgeführt werden.
     if($node->type == 'review') {
$node_temp = node_load($node->reviewed_nid);
      _watcher_email_notify_node_update($node_temp); ------------------------------------------------> Hier übergebe ich den Node
   
break;
  }

}
}

Weis jmd. was ich hier falsch mache?
Von der Logik passt es doch, oder?

Vielen Dank schon mal für eure Bemühungen.

dennis605

  • Anmelden oder Registrieren um Kommentare zu schreiben

Rules

Eingetragen von stBorchert (6003)
am 08.12.2010 - 08:58 Uhr
dennis605 schrieb

funktioniert leider über Rules nicht.

Wie genau äußert sich das?
Welche Einstellungen hast Du verwendet?

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Stefan, das äußert

Eingetragen von dennis605 (138)
am 08.12.2010 - 12:07 Uhr

Hallo Stefan,

das äußert sich, indem gar nicht passiert.
Ich habe es zwar dann wieder verworfen, aber meine Einstellungen waren:
ON event Nach dem Speichern von neuem Inhalt
IF
conditionInhalt erstellt hat den Typ Artikel
DO
PHP-Code ausführen:

$node = node_load($node->reviewed_nid);
_watcher_email_notify_node_update($node);

Das war mein letzter Versuch, habe es aber auch auf zig andere Varianten probiert.

So hat es aber dann funktioniert:

function my_helper_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {

  switch ($op) {

    case 'insert':
     if($node->type == artikel') {
$node_temp = $node;
$node = node_load($node->reviewed_nid);

     $op = 'update';
_watcher_email_notify_node_update($node);
$node = $node_temp;

   
break;
  }
 

}
}

danke und vlg

dennis605

  • Anmelden oder Registrieren um Kommentare zu schreiben

Argumente

Eingetragen von stBorchert (6003)
am 08.12.2010 - 13:02 Uhr
dennis605 schrieb

<?php
$node
= node_load($node->reviewed_nid);
_watcher_email_notify_node_update($node);
?>

Das ist ganz gefährlich, da $node ein Parameter ist, bei dem Veränderungen automatisch gespeichert werden.
Wenn Du jetzt also den Inhalt des Arguments (in diesem Falle der neu erstellte Beitrag) mit einem anderen Beitrag überschreibst, kannst Du damit richtig tolle Effekte erzielen.

Wenn, dann lieber über die Aktion "load a node" (oder so ähnlich) den anderen Beitrag laden, als Argument zur Verfügung stellen und in der PHP-Aktion verwenden. Dann sieht man auch, ob das Laden überhaupt funktioniert.
Zum Testen solltest Du dann natürlich noch "Debug rules evaluation" in den Einstellungen von Rules aktivieren.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Und wie findest du diese

Eingetragen von dennis605 (138)
am 08.12.2010 - 13:27 Uhr

Und wie findest du diese Lösung, die jetzt funktioniert hat:

Ich speicher ja in $node_temp den "Ursprungsnode" und gebe ihn nach "_watcher_email_notify_node_update($node);" wieder als $node zurück.
So wie es aussieht bist du aber sehr auf die Lösung mit "Rules" fixiert; Hat aber bei mir kein Ereignis ausgelöst.
Kannst du mir sagen warum?

function my_helper_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {

  switch ($op) {

    case 'insert':
     if($node->type == artikel') {
$node_temp = $node;
$node = node_load($node->reviewed_nid);

     $op = 'update';
_watcher_email_notify_node_update($node);
$node = $node_temp;

  
break;
  }


}
}

Danke

dennis605

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn ich den Code sehen

Eingetragen von Tobias Bähr (4019)
am 08.12.2010 - 13:54 Uhr

Wenn ich den Code sehen würde, wäre das ein Grund für eine Fristlose Kündigung :D. Es wird doch sicherlich eine Rule geben, die getriggert wird, wenn ein Benutzer die Node bewertet über Fivestars.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Fivestar stellt leider kein

Eingetragen von md (3717)
am 08.12.2010 - 15:25 Uhr

Fivestar stellt leider kein Event für Rules zur Verfügung.
Dies hier wäre eine Möglichkeit: http://drupal.org/project/voting_rules

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 7 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 8 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 30 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association