Hallo,
versuche mich gerade an Plugins, habe die Dateien wie im Handbuch beschrieben bei der aktuellen Version im Plugins Verzeichnis erstellt, aber bekomme nur eine Fehler. Hat sich hier was geändert was noch nicht im Handbuch beschrieben ist?
error.log
php:error] [pid 263625:tid 263625] [client 192.168.11.1:53274] PHP Fatal error: Uncaught TypeError: array_key_exists(): Argument #2 ($array) must be of type array, stdClass given in /var/www/os1/php/commonutils.php:553\nStack trace:\n#0 /var/www/os1/php/queuecontent.php(2641): CommonUtils::callPlugin()\n#1 /var/www/os1/php/queuecontent.php(168): QueueContent->declarePaidCreateBillReturnBillId()\n#2 /var/www/os1/php/contenthandler.php(75): QueueContent->handleCommand()\n#3 {main}\n thrown in /var/www/os1/php/commonutils.php on line 553
evtl. kann hier jemand mit einem Plugin example licht ins dunkle bringen
vielen Dank
LG
Plugins
-
- Administrator
- Beiträge: 1379
- Registriert: So 13. Sep 2015, 19:48
- Wohnort: Hamburg
- Kontaktdaten:
Re: Plugins
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:
Erstelle ich nun eine Rechnung, wird ins Apache-Log diese Meldung geschrieben:
Und in der Log-Tabelle ist dieser Eintrag:
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
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!'));
}
}
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}
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! |
+----------+---------------------+-------------+---------+
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
Stefan Pichel
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
-
- Beiträge: 8
- Registriert: Fr 16. Aug 2024, 14:17
Re: Plugins
Hallo Stefan,
zu erst mal vielen Dank für deine schnelle Hilfe.
Leider hat dein Code bei mir auch nicht funktioniert, konnte aber so herausfinden an was es gelegen hat.
Das Problem ist array_key_exists() in commonutils.php in Verbindung ab php8. Habe auf 7.4 umgestellt und nun wird das Plugin auch ausgeführt.
Bin auch nicht ganz schlau aus der Beschreibung geworden, kann man nur die 2 Funktionen createBill und createClosing mit Plugins verändern / erweitern oder auch viele anderen Funktionen mit Plugins erweitern?
LG
Martin
zu erst mal vielen Dank für deine schnelle Hilfe.
Leider hat dein Code bei mir auch nicht funktioniert, konnte aber so herausfinden an was es gelegen hat.
Das Problem ist array_key_exists() in commonutils.php in Verbindung ab php8. Habe auf 7.4 umgestellt und nun wird das Plugin auch ausgeführt.
Bin auch nicht ganz schlau aus der Beschreibung geworden, kann man nur die 2 Funktionen createBill und createClosing mit Plugins verändern / erweitern oder auch viele anderen Funktionen mit Plugins erweitern?
LG
Martin
-
- Administrator
- Beiträge: 1379
- Registriert: So 13. Sep 2015, 19:48
- Wohnort: Hamburg
- Kontaktdaten:
Re: Plugins
Hallo Martin,
magst du mir die Stelle in commonutils nennen, an der es mit Php 8 crasht?
Aktuell sind die Erweiterungsmöglichkeiten durch Plugins noch sehr beschränkt und waren damals ein Angebot an die österreichischen Entwickler, Rksv-Funktionalität in OS einzubauen, die auch Updates überlebt.
Ich bin aber gerne bereit, das zu erweitern, wenn es Bedarf gibt.
Viele Grüße,
Stefan
magst du mir die Stelle in commonutils nennen, an der es mit Php 8 crasht?
Aktuell sind die Erweiterungsmöglichkeiten durch Plugins noch sehr beschränkt und waren damals ein Angebot an die österreichischen Entwickler, Rksv-Funktionalität in OS einzubauen, die auch Updates überlebt.
Ich bin aber gerne bereit, das zu erweitern, wenn es Bedarf gibt.
Viele Grüße,
Stefan
Stefan Pichel
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
-
- Beiträge: 8
- Registriert: Fr 16. Aug 2024, 14:17
Re: Plugins
Hallo Stefan,
sorry das ich erst jetzt hier reinschaue, war zwischendurch Urlaub und da ist die Zeit gerne mal knapp.
der Fehler mit Plugins mit php8 ist in commonutils.php Zeile 553 so war es bei der Version 2.8.21.
Mögliche Plugins gibts im Gedanken schon, aber noch nicht konkretes, werde aber drauf zurück kommen.
LG Martin
sorry das ich erst jetzt hier reinschaue, war zwischendurch Urlaub und da ist die Zeit gerne mal knapp.
der Fehler mit Plugins mit php8 ist in commonutils.php Zeile 553 so war es bei der Version 2.8.21.
Mögliche Plugins gibts im Gedanken schon, aber noch nicht konkretes, werde aber drauf zurück kommen.
LG Martin