Drupal Änderung nach PHP Skript nicht korrekt
am 25.01.2012 - 15:43 Uhr in
Hallo,
ich habe folgendes Problem:
Ich betreibe die Webseite www.tkvkh.de.(Gemeinnütziger Sportverein)
Dort habe ich einen Bereich "Trainingszeiten" ein PHP Skript, welches Datenbankabfragen übernimmt und die Ergebnisse als HTML Tabelle darstellt.
Parallel dazu habe ich mir ein Frontend gebastelt (PHP), wo ich genau angeben, welches Training mit welchem Trainer stattfindet.
Dieses Frontend Skript aktualisiert zudem auch die Drupal Seite (node) mit dem aktuellen Timestamp der Änderung, damit diese auch auf der Startseite angezeigt wird.
Alles funktioniert reibungslos mit einer Ausnahme.
Die Änderungen sind nicht auf der Trainingsseite sichtbar. Wenn ich mich auf Drupal mit meinem Admin Account anmelde, dann sehe ich die Aktualisierung auf der Startseite und die geänderten Trainingszeiten im entsprechenden node.
Wenn ich mich nun wieder von Drupal abmelde, dann stehen wieder die alten Daten im node und das Aktualisierungsdatum stimmt auch nicht.
Workaraound: Ich logge mich ein, gehe auf die Seite (node) mit den Trainingszeiten, klicke auf bearbeiten und auf speichern, ohne eine Änderung vorzunehmen.
Wenn ich mich dann abmelde, ist alles korrekt.
Hat einer eine Idee, was die Ursache hierfür ist?
MfG
Torsten
- Anmelden oder Registrieren um Kommentare zu schreiben

Das klingt so, als ob den
am 25.01.2012 - 16:52 Uhr
Das klingt so, als ob den anonymen Usern eine Version aus dem Cache gezeigt wird. Müsstest mal mit den Drupal-Cache-Einstellungen herumspielen.
Benutzt du auch die
am 25.01.2012 - 16:56 Uhr
Benutzt du auch die Api-Funktionen vom Node-Modul? In diesem Fall node_save() ?
Hi Exterior, wo genau finde
am 27.01.2012 - 13:59 Uhr
Hi Exterior,
wo genau finde ich diese Cache Einstellungen in Drupal?
Bei den Berechtigungen finde ich auch nichts.
Gruß
Torsten
Hallo Tobias,also, um deine
am 27.01.2012 - 14:18 Uhr
Hallo Tobias,
also, um deine Frage zu beantworten, nein.
Das intergrierte PHP Skript ruft die Datenbanktabellen ab und soll die Inhalte anzeigen.
Ich wüsste auch nicht, wie ich die API richtig nutzen könnte.
Das Frotend für die Anpassung der Trainingszeiten, ist ein PHP Skript, welches nicht über Drupal auf gerufen werden kann.
Insofern würde im PHP Code "node_save(&11)" nichts bringen, oder muss ich zuvor eine php Api Klasse "include" setzen, dann ein Objekt mit meiner Drupalinstallation kreiieren, um auf dieses Objekt node_save anwenden zu können?
Wo finde ich dann die Klasse?
Derzeit aktualisiere ich den node mit folgender SQL Anweisung. ($time = aktueller Timestamp)
$sql="UPDATE node set changed='".$time."' where nid='11'";
Oder habe ich dich falsch verstanden?
Gruß
Torsten
node_save() sollte global
am 27.01.2012 - 17:41 Uhr
[api:node_save] sollte global verfügbar sein, weil nur dadurch wird dann auch der Cache geleert, durch direktes SQL bekommt Drupal ja so nicht mit, dass es sein cache für diese Node etc. löschen muss.
Hi Tobias, mir ist noch nicht
am 30.01.2012 - 08:18 Uhr
Hi Tobias,
mir ist noch nicht ganz klar, wie ich diese Funktion einbaunen bzw. aufrufen soll.
Ich habe 2 Dinge ausprobiert:
1) Aufruf der Funktion node_save(11); im PHP Skript für die Datenbankspeicherung (11= Nr. des Nodes mit der Anzeige der Trainingszeiten)
Dann bekomme ich folgende Fehlermeldung:
Fatal error: Call to undefined function node_save() in /is/htdocs/.../edit.php on line 89
2) Wenn ich die Funktion in HTML aufrufe,
dann paasiert gar nichts. Es wird dann nur im Browser der Test "node_save(11)" ausgegeben.
Was mache ich falsch?
Nachtrag zur Lösung
am 30.01.2012 - 09:20 Uhr
Das Einbinden von
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
ermöglicht die Nutzung von node_load & node_save
Syntax;
$node = node_load(11);
node_save($node);
Damit funktioniert es wunderbar.
Bislang ist es mir nicht gelungen, die "edit.php" in einen Unterordner von Drupal zu schieben. Ich bekomme dann immer Fehlermeldungen, dass der Pfad nicht stimmt.
require_once '../includes/bootstrap.inc';
funktioniert wohl nicht.
Hat noch jemand hierzu eine Idee?
Gruß
Torsten
Zitat: Hat noch jemand hierzu
am 30.01.2012 - 10:01 Uhr
Hat noch jemand hierzu eine Idee?
Deine edit.php zerlegen und die Funktionalität in ein eigenes Drupal-Modul übertragen wäre wohl das beste.
Wenn Du eigene PHP-Skripte in
am 30.01.2012 - 10:02 Uhr
Wenn Du eigene PHP-Skripte in Drupal integrieren willst, geht das nur über ein eigenes Modul. Du solltest Dich also mit dem Modul schreiben etwas näher befassen. Dokumentation dazu findest Du auf drupal.org.
Beste Grüße
Werner