von pichel » Di 27. Mai 2025, 19:22
Hallo Marin,
ich habe gerade getestet, ob ich im Laufe der Versionen die Plugin-Funktionalität kaputt gemacht habe, aber für mich sieht es so aus, als ob die Info im Manual immer noch richtig ist.
Attached habe ich die beiden Files, die ich ins plugins-Verzeichnis gelegt habe. Die eigentliche Plugin-Klasse hat diesen Inhalt:
Code: Alles auswählen
<?php
namespace Plugin;
class MyClass {
public static function createBill($pdo) {
// Place content here!
error_log("This is a hello from the plugin");
$sql = "INSERT INTO pos_log (date,component,message) VALUES(NOW(),?,?)";
$stmt = $pdo->prepare($sql);
$stmt->execute(array('MyComponent','Hello!'));
}
}
Erstelle ich nun eine Rechnung, wird ins Apache-Log diese Meldung geschrieben:
Code: Alles auswählen
[Tue May 27 19:13:58.710522 2025] [php7:notice] [pid 17031] [client 127.0.0.1:48168] This is a hello from the plugin, referer: http://localhost/ordersprinter/core/paydesk.html?t=107&v={VERSION}
Und in der Log-Tabelle ist dieser Eintrag:
Code: Alles auswählen
MariaDB [db]> select * from pos_log where message like '%ello%';
+----------+---------------------+-------------+---------+
| id | date | component | message |
+----------+---------------------+-------------+---------+
| 21881539 | 2025-05-27 19:13:58 | MyComponent | Hello! |
+----------+---------------------+-------------+---------+
In meinem Beispiel habe ich es mir allerdings einfach gemacht und es komplett ohne Nutzung des OrderSprinter-Codes geschrieben, d.h. ich muss dann auch den Tabellenpräfix hardcodiert angeben. Besser wäre es natürlich wenn ich CommonUtils::execSql verwenden würde und die Tabelle als %log% angebe, damit der Name durch den geprefixten Namen ersetzt wird. Das sollte aber einfach anzupassen sein,
Aber vielleicht magst du dein Beispiel-Plugin hier einfügen, so dass wir mal einen Blick drauf werfen können und vielleicht die Fehlerursache erkennen?
Gruß,
Stefan
- Dateianhänge
-
- plugins-files.zip
- (636 Bytes) 8-mal heruntergeladen
Hallo Marin,
ich habe gerade getestet, ob ich im Laufe der Versionen die Plugin-Funktionalität kaputt gemacht habe, aber für mich sieht es so aus, als ob die Info im Manual immer noch richtig ist.
Attached habe ich die beiden Files, die ich ins plugins-Verzeichnis gelegt habe. Die eigentliche Plugin-Klasse hat diesen Inhalt:
[code]<?php
namespace Plugin;
class MyClass {
public static function createBill($pdo) {
// Place content here!
error_log("This is a hello from the plugin");
$sql = "INSERT INTO pos_log (date,component,message) VALUES(NOW(),?,?)";
$stmt = $pdo->prepare($sql);
$stmt->execute(array('MyComponent','Hello!'));
}
}
[/code]
Erstelle ich nun eine Rechnung, wird ins Apache-Log diese Meldung geschrieben:
[code][Tue May 27 19:13:58.710522 2025] [php7:notice] [pid 17031] [client 127.0.0.1:48168] This is a hello from the plugin, referer: http://localhost/ordersprinter/core/paydesk.html?t=107&v={VERSION}[/code]
Und in der Log-Tabelle ist dieser Eintrag:
[code]MariaDB [db]> select * from pos_log where message like '%ello%';
+----------+---------------------+-------------+---------+
| id | date | component | message |
+----------+---------------------+-------------+---------+
| 21881539 | 2025-05-27 19:13:58 | MyComponent | Hello! |
+----------+---------------------+-------------+---------+[/code]
In meinem Beispiel habe ich es mir allerdings einfach gemacht und es komplett ohne Nutzung des OrderSprinter-Codes geschrieben, d.h. ich muss dann auch den Tabellenpräfix hardcodiert angeben. Besser wäre es natürlich wenn ich CommonUtils::execSql verwenden würde und die Tabelle als %log% angebe, damit der Name durch den geprefixten Namen ersetzt wird. Das sollte aber einfach anzupassen sein,
Aber vielleicht magst du dein Beispiel-Plugin hier einfügen, so dass wir mal einen Blick drauf werfen können und vielleicht die Fehlerursache erkennen?
Gruß,
Stefan