Altes Plugin - erweiterter Tiny - mag kein PHP8

Moin

vor Jahren hatte @Heiner_Lohaus mal ein Plugin für den „erweiterten Tiny“ (noch für SW 3.5) hier verlinkt. Das habe ich auch unter 5.7.17 noch im Einsatz, damit ich z.B. im HTML auch direkt Video-Tags einbinden kann.

Nur leider sorgt das Plugin nun (PHP 8?) dafür, dass das Backend unter „Einstellungen“ nicht mehr laden kann und absemmelt.

In HTML-Feldern hingegen funktioniert es noch - nur das Laden von Einstellungen knallt.

Im Errorlog habe ich so einen Eintrag dazu:

[24-Apr-2023 16:25:36 Europe/Berlin] PHP Fatal error:  Uncaught TypeError: Unsupported operand types: string / string in /.../shopware/sw52023/var/cache/production_202303281109/templates/backend_de_DE_5e10e/3e/93/56/3e935620ebd820214c6e5adf9aca9ea2e5d118eb.snippet.tiny_mce.js.php:701
Stack trace:
#0 /.../shopware/sw52023/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(180): content_644691606cc284_82317084(Object(Enlight_Template_Default))
#1 /.../shopware/sw52023/engine/Library/Enlight/View/Default.php(286): Smarty_Internal_TemplateBase->fetch()
#2 /.../shopware/sw52023/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(180): Enlight_View_Default->render(Object(Enlight_Template_Default))
#3 /.../shopware/sw52023/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(207): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->renderTemplate(Object(Enlight_Template_Default))
#4 /.../shopware/sw52023/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(124): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->render()
#5 /.../shopware/sw52023/engine/Library/Enlight/Event/Handler/Default.php(90): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->onPostDispatch(Object(Enlight_Controller_ActionEventArgs))
#6 /.../shopware/sw52023/engine/Library/Enlight/Event/EventManager.php(207): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#7 /.../shopware/sw52023/engine/Library/Enlight/Controller/Action.php(229): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#8 /.../shopware/sw52023/engine/Library/Enlight/Controller/Dispatcher/Default.php(467): Enlight_Controller_Action->dispatch('loadAction')
#9 /.../shopware/sw52023/engine/Library/Enlight/Controller/Front.php(226): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#10 /.../shopware/sw52023/engine/Shopware/Kernel.php(197): Enlight_Controller_Front->dispatch()
#11 /.../shopware/sw52023/vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(85): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#12 /.../shopware/sw52023/vendor/symfony/http-kernel/HttpCache/HttpCache.php(479): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(Object(Shopware\Kernel), Object(Symfony\Component\HttpFoundation\Request), 1, true)
#13 /.../shopware/sw52023/engine/Shopware/Components/HttpCache/AppCache.php(270): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#14 /.../shopware/sw52023/vendor/symfony/http-kernel/HttpCache/HttpCache.php(269): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#15 /.../shopware/sw52023/engine/Shopware/Components/HttpCache/AppCache.php(106): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#16 /.../shopware/sw52023/shopware.php(122): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#17 {main}
  thrown in /.../shopware/sw52023/var/cache/production_

Kann damit wer was anfangen?

Das zip zum Plugin hätte ich auch noch :wink:

String / String

In früheren Versionen wurde das vermutlich zu Integer oder Float gecastet. Einfach an entsprechender Stelle den Typ ändern, damit / geteilt durch rechnen kann.

Moin,

„Frontend“ bastel ich ja gerne rum, aber Backend ist für mich ein „Buch mit sieben Siegeln“. Soviel Code hat das ja nicht, und ich glaube auch nicht, dass wirklich gerechnet wird.

Muss ich doch Zeile für Zeile durch.
Es wird offensichtlich beim Erstellen des Formulars (Backendfehlermeldung) abgebrochen, sobald ich eine Einstellung-Seite (z.B. Shop - aber auch jede andere) aufrufe.

„.snippet.tiny_mce.js.php“ deutet darauf hin, dass smarty beim Parsen ein Problem hat.

Dann geh ich mal weiter suchen :slight_smile:

Falls das Problem noch besteht, kannst du es mir gerne mal zukommen lassen als Zip + deine Shopware Version. Dann schau ichs mir mal an.

Grüße

Ist ein bischen seltsam.
Das Plugin wurde von @Heiner_Lohaus damals bereitgestellt.
Das Plugin-Zip war „SwagAdvancedTinyMce.zip“ - später lief Heiner wohl unter „she“ - was auch im Store noch in der Url zu erkennen ist.
„?number=she4439287947287m“
Das ehemalige „swag“-Plugin dürfte 1:1 das sein: Erweiterter TinyMCE | Shopware Store - die Masken etc. sind jedenfalls identisch - vermutlich wird DAS Plugin laufen.

Finde ich schon seltsam, dass hier erst etwas unter „swag“ veröffentlicht wird, und später von einer „gmbh“ als kostenpflichtiges Plugin angeboten wird, und der alte freie Download nirgends mehr verfügbar ist.

Bin mir nicht so ganz sicher, ob ich das „alte“ zip noch hier verlinken darf.

Hi,

kannst es mir ja einfach mal per PN zukommen lassen.
Wenn die License passt :wink:

Grüße

Anpassungen für das alte Plugin:

in der Datei Views/backend/tiny_mce.js gibt es ein paar Snippets/Textbausteine. Dort muss der Wert von name jeweils in Anführungsstriche gesetzt werden. Beispiel:

{s name="tinymce/config/title"}Settings{/s}

Siehe: Shopware 5 upgrade guide

Und in der Datei Controllers/Backend/TinyMce.php in der Funktion getTemplateListAction queryBy mit findBy ersetzen.

Siehe: https://github.com/shopware5/shopware/blob/5.7/UPGRADE-5.7.md#removals-5

Das beseitigt zumindest die offensichtlichen Fehler unter SW5.7 / PHP8.x und meine freigegebenen Tags werden gespeichert.

@sonic Hoffe das hilft 3 Monate später noch :face_with_peeking_eye: