Einsatzkomponente - Migration - Hilfe bei DB

  • Joomla Version
    5.x
    PHP Version
    PHP 8.3.x
    Hoster
    Hetzner Root

    Hallo erstmal :)

    Für unsere Vereinsseite setzen wir aktuell noch auf Joomla 3.10, weil wir von einer Komponente abhängig sind, die leider noch immer nicht final auf Joomla 4 bzw. Joomla 5 migriert wurde.

    Ich kenne mich ein bisschen mit Webentwicklungn/PHP aus, deswegen hab ich es jetzt als Projekt gesehen, die Komponente soweit unter Joomla 5 lauffähig zu kriegen.

    Im Moment läuft sie auch unter Joomla 5, alte Datensätze lassen sich wieder im frontend aufrufen und anzeigen. Nur im Backend lassen sich noch keine neuen Daten anlegen. Es gibt Fehler die auf die Datenbank zurückzuführen sind.


    Daher muss ich wohl die Datenbank aktualisieren. Das hab ich in einer Testinstanz probiert, aber ich erhalte noch immer Fehler wie:

    Die alte Struktur der DB sah so aus: https://github.com/veenmeyer/Eins….mysql.utf8.sql

    Gibt es hier Leute, die mir vlt. tatkräftig unterstützen können, dass ich die DB auf aktuellen Stand bringe und auch bisherige Datensätze migrieren kann? Ich würde mich riesig freuen und ich bin mir sicher, dass die Feuerwehrcommunity sich auch freuen würde, wenn die Einsatzkomponente endlich auf den aktuellen Joomla Versionen wieder uneingeschränkt lauffähig wird.


    Beste Grüße

  • Es werden übrigens bei der Einsatzkomponente sicherlich noch Helfer gesucht:

    Unterstützung bei Komponente

    Hast du auch die Dateien der weiterentwickelten 4.0.07 BETA der Einsatzkomponente dort gesehen:

    github.com/veenmeyer/Einsatzkomponente_J4/tree/beta

  • Es werden übrigens bei der Einsatzkomponente sicherlich noch Helfer gesucht:

    Unterstützung bei Komponente

    Hey :)

    ja, ich bin in dem Forum der EInsatzkomponente auch aktiv. Teisold hat sich anscheinend jetzt dort komplett zurück gezogen.


    Von dem eigentlichen Entwickler, Ralf, hat man längere Zeit, etwa 2 Jahre, kein Lebenszeichen gehört gehabt. Das hat die Community negativ aufgestoßen. Jetzt hat er sich vor 2 Monaten mal wieder gemeldet und gemeint, persönliche Probleme gehabt zu haben und so aber jetzt sich dem Projekt wieder widmen möchte, aber seitdem ist immer noch nichts neues passiert (und trotzdem wird noch groß geworben mit, unterstütze mich mit Paypal etc pp...) was ich in gewisser hinsicht eine Frechheit auch finde.

    Als Zwischenfrage, mit dem thema Lizenz bin ich nicht so bewandert, die Komponente nutzt GNU General Public License version 2 or later
    Inwiefern darf ich an der Komponente was verändern und wieder reveröffentlichen (zum Beispiel durch mich)? Und kann/darf ich ohne weiteres diese doofen internen Paypal-Paywallbanner ausbauen?

    Nichts desto trotz würde ich mich freuen, wenn ich jetzt erstmal mit der Datenbank weiter komme dass das auf aktuellen Stand ist. Ich muss auch sagen, die Struktur ist einfach mieserabel... Zellenbezeichnungen wie Date1, Date2, Date3... einfach nichts aussagen. Da hat man echt probleme, den Quellcode zu verstehen.
    Werde mich jetzt aber erstmal widmen, dass man wieder EInträge erzeugen kann im Backend und dann irgendwann, nach und nach, migrieren dass das auch mal eine gewisse ordnung hat.

  • Hast du auch die Dateien der weiterentwickelten 4.0.07 BETA der Einsatzkomponente dort gesehen:

    github.com/veenmeyer/Einsatzkomponente_J4/tree/beta

    ja, den Beta Build hab ich mir bereits heruntergeladen mit git und die xml angepasst und weitere änderungen (bzw. in meinem Fall "optimierungen") vorgenommen aber noch nicht gepusht.

    Aber viel hatte Ralf da definitiv nicht gemacht wenn ich ehrlich bin :D

    für die 4.0.07 hat er nur etwas an der Validierung geändert, dass die wieder funktioniert. Mehr nicht. Also dass (meine These) die Leute ja wieder uneingeschränkt Paypal-Spenden können

  • Von dem eigentlichen Entwickler, Ralf, hat man längere Zeit, etwa 2 Jahre, kein Lebenszeichen gehört gehabt. Das hat die Community negativ aufgestoßen. Jetzt hat er sich vor 2 Monaten mal wieder gemeldet und gemeint, persönliche Probleme gehabt zu haben und so aber jetzt sich dem Projekt wieder widmen möchte, aber seitdem ist immer noch nichts neues passiert (und trotzdem wird noch groß geworben mit, unterstütze mich mit Paypal etc pp...) was ich in gewisser hinsicht eine Frechheit auch finde.

    Ich weiß, ich habe nicht wirklich was zum Thema beizutragen, aber das finde ich immer bisschen "typisch Joomla!" (oder typisch deutsch?). Der Aufwand solch einer Erweiterung zu pflegen ist enorm, trotzdem wird von Entwicklern erwartet, dass sie erst mal Wünsche erfüllen und dann kann man ja überlegen ob man spendet (Spoiler: tun die wenigsten). Ich mein der Ralf hat doch sicher schon massiv an Entwicklung in die Erweiterung gesteckt und bietet sie kostenlos an. Ich denke, wenn jetzt da im Monat 500€+ Spenden zusammen kommen würden, würde das genug Luft schaffen, dass Ralf ca. 10h in die Komponente investieren kann. Sind die Spenden nicht da, muss man in seinem leben priorisieren, ob man für sein eigenes Überleben sorgt (= arbeiten geht) oder kostenlos die Erweiterung weiterentwickelt, damit andere davon profitieren. Plus er bekommt noch ein bisschen Hate in Foren wie hier, weil er nichts macht...

    Nur mal als Gedankenanreiz.

    Zum Problem: du hast ja sicher PHPMyAdmin. Repariere doch die Tabellen (mit der Joomla!-Funktion) und vergleiche die Struktur dann mit der Install-SQL.

  • Ich weiß, ich habe nicht wirklich was zum Thema beizutragen, aber das finde ich immer bisschen "typisch Joomla!" (oder typisch deutsch?). Der Aufwand solch einer Erweiterung zu pflegen ist enorm, trotzdem wird von Entwicklern erwartet, dass sie erst mal Wünsche erfüllen und dann kann man ja überlegen ob man spendet (Spoiler: tun die wenigsten). Ich mein der Ralf hat doch sicher schon massiv an Entwicklung in die Erweiterung gesteckt und bietet sie kostenlos an. Ich denke, wenn jetzt da im Monat 500€+ Spenden zusammen kommen würden, würde das genug Luft schaffen, dass Ralf ca. 10h in die Komponente investieren kann. Sind die Spenden nicht da, muss man in seinem leben priorisieren, ob man für sein eigenes Überleben sorgt (= arbeiten geht) oder kostenlos die Erweiterung weiterentwickelt, damit andere davon profitieren. Plus er bekommt noch ein bisschen Hate in Foren wie hier, weil er nichts macht...

    Nur mal als Gedankenanreiz.

    Zum Problem: du hast ja sicher PHPMyAdmin. Repariere doch die Tabellen (mit der Joomla!-Funktion) und vergleiche die Struktur dann mit der Install-SQL.

    naja, teisold war es glaub ich, der auch über die eigene wehr persönlichen kontakt zu ralf hatte und ihm auch vorschläge entgegen gebracht wie, das er einfach das projekt offiziell abgeben könne oder die community geld sammelt, um ggf. einen entwickler finanziell mit dem migrieren beauftragen hätte können. man war sich sicher, dass hier zahlreiche feuerwehrcommunitymitglieder ein paar euro gespendet hätten. aber soweit ich das mitbekommen habe, wollte man den vorschlag nicht annehmen oder so.

    aber gut, ich will hier jetzt nicht weiter über Ralf reden. Zumal man die genauen umstände und probleme nicht weiß.


    bembelimen du meinst hierüber?


    Das habe ich bereits probiert und erhalte die Meldung:
    You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' AND `null` = 'NO'' at line 1

    Ich kann leider aktuell nichts mit der Meldung anfangen

  • ich habe erstmal das update script entfernt und werde das später nochmal neu machen.


    jetzt hab ich erstmal eine frage für das install sql script was ich überarbeitet habe. Könnte jemand vlt mal drüber schauen ob das so passen würde? Ich möchte erstmal nur die DB j5 konform gestalten, wie die db aufgebaut ist mit den feldern ist erstmal nebensächlich und könnte ich mir irgendwann mal vorstellen, etwas aufzuräumen.

  • So beim Drüberschauen seh ich schon einige Aweichungen.
    Ich würde die Felder, die in Joomla Standard sind, so defnieren wie du sie in der Datei installation/sql/bysql/base.sql findest.

    zum Beispiel einfach int .. keine int(nn) mehr und TEXT können keine Default werte bekommen.

    Probiere doch einfach mal, diese Tabellen zu erzeugen, dann siehst du es.

  • So beim Drüberschauen seh ich schon einige Aweichungen.
    Ich würde die Felder, die in Joomla Standard sind, so defnieren wie du sie in der Datei installation/sql/bysql/base.sql findest.

    zum Beispiel einfach int .. keine int(nn) mehr und TEXT können keine Default werte bekommen.

    Probiere doch einfach mal, diese Tabellen zu erzeugen, dann siehst du es.

    fürs erste hab ich es jetzt lauffähig unter joomla 5 mit dem großteil des alten quellcodes. nicht schön aber im moment funktioniert es so.

    musste zum glück auch erstmal nur noch eine update-sql erzeugen mit:

    Code
    ALTER TABLE `#__eiko_einsatzberichte`
    MODIFY COLUMN `gmap_report_latitude` VARCHAR(255) NOT NULL DEFAULT '',
    MODIFY COLUMN `gmap_report_longitude` VARCHAR(255) NOT NULL DEFAULT '',
    MODIFY COLUMN `gmap` VARCHAR(255) NOT NULL DEFAULT '';
    
    ALTER TABLE `#__eiko_organisationen`
    MODIFY COLUMN `gmap_latitude` VARCHAR(255) NOT NULL DEFAULT '',
    MODIFY COLUMN `gmap_longitude` VARCHAR(255) NOT NULL DEFAULT '';

    weil vorher ließen sich im Backend keine Einsätze anlegen.

    Ich finde aber dass die DB allgemein keine schöne struktur hat. viele infos sollte man in eine seperate DB packen und aufeinander referenzieren und verständlichere datenbank-spaltennamen verwenden. date1, date2 und date3... darunter kann man sich nichts vorstellen. mittlerweile weiß ich, dass es Alarmierungszeit, Ausrückezeit und Einsatzende ist...


    Ich bin am überlegen, ob ich das alles als persönliches Projekt sehe und einfach ein eigenes neues Projekt daraus mache.
    firstlady gibt es irgendwie eine gute doku wo ich mich einlesen kann in die entwicklung von eigenen joomla komponenten?

    Ich habe früher, auch hobby mäßig, mit laravel mich rum probiert. da fand ich das mit den artisan befehlen echt schön, man konnte mittels artisan create view (oder so ähnlich) eine neue view erstellen und es wurden automatisch alle notwendigen models und so weiter angelegt. das gibt es in joomla nicht, oder?

    Ich bin auch auf 3 component builder aufmerksam geworden, aber der eine ist kostenpflichtig, macht aber generell einen guten eindruck, aber ist mir für ein non commercial projekt einfach nicht wert, zu bezahlen, CJK oder wie der builder hieß ist mir zu vollgestopft und wirkte auf mich total überfüllt und unübersichtlich und extengen was ich gefunden habe ist wohl auch noch in development, kann zu wenig und ich finde keine downloadable component die ich in joomla installieren kann.
    Und eine Doku die einen an die hand nimmt und schritt für schritt erklärt, was man machen muss hab ich bisher auch nicht gefunden.
    Und wenn ich was gefunden habe, war es noch für Joomla3...

    Da gab es für Laravel echt schöne Guides damals.

  • Ich finde es sehr gut, dass du dich da reinhängen willst.
    Und bin ein großer Fan von "just Joomla".
    In https://manual.joomla.org findest du das aktuellste was es an Dokumentation gibt, eine komplette Anleitung und auch eine Beispielkomponente. Und kannst dich auch selber beteiligen, das zu verbessern :)

    Ein Schritt-für-Schritt Buch könnte das sein:
    Developing Extensions for Joomla! 5 von Carlos Camara (ich habs nicht gelesen).

    Wenn du auf mattermost kommmst, triffst du auch Entwickler. https://docs.joomla.org/Mattermost und kannst dich auch wegen einer IDE austauschen.

  • Dankeschön für die Infos :)

    ich folge gerade diesem Guide: https://docs.joomla.org/J4.x:Developin…he_Site_Part/de - ich schreib jetzt einfach hier mal weiter, weil es ja doch irgendwie noch dazu gehört zum migrations prozess, auch wenn daraus am ende vlt. eine neue komponente entsteht.

    Jetzt fällt mir auf, meine IDE (VSC) zeigt mir an:

    Code
    $document = Factory::getDocument();

    Das ist deprecated und wird wohl in J6 nicht mehr existieren. Was ich gefunden habe ist, dass man es dann so machen soll:

    Code
            $app = Factory::getApplication();
            $document = $app->getDocument();

    Aber jetzt zeigt mir VSC (intelliphense), dass getDocument(); eine unknown method sei.

    Passt das jetzt so? Wie kann ich VSC fixen, dass die methode "richtig" für intelliphense ist?

  • Eventuell nützlich:

    https://joomla.stackexchange.com/questions/3034…t-is-deprecated

    Ich bin aber diesbezüglich nur Laie.

    ja genau, das hatte ich auch gefunden, da heißt es ja auch im letzten Thema:

    Zitat

    You may notice there's an "Undefined method" error in Intelephense despite it being defined and valid.

    Aber das ist ja jetzt auch schon über ein Jahr her, vlt gibts ja einen Fix für intelliphense, falls das jemand weiß? Ich mag keine "fehler" oder unter-leinte-striche sehen ;) :D

  • Wegen dem letzten posting im Thread hatte ich den Thread auch verlinkt.

    Eventuell nützlich:

    Zitat

    I was getting these warning even after adding appropriate use declarations. For me, I had to open the files where these types are declared from the vendor folder and then save the offending file. This somehow seems to trigger the intelephense type resolution mechanism and the warnings go away. Once intelephense recognizes them then you can safely close those files off of vendor folder. I tried closing the vs code and reopening it and still no warnings. Your mileage may vary.

    aus:

    https://stackoverflow.com/questions/64402030/how-to-define-an-undefined-function-in-intelephense-in-vscode

  • Eventuell nützlich die Solution dort:

    github.com/bmewburn/vscode-intelephense/issues/2135

    entsprechend abgewandelt verwenden.

    danke dir für die links. Ein erneutes Speichern der Datei, wo getDoucment() enthalten ist in der Factory von der Application hat leider nicht geholfen.

    Allerdings hat mit ChatGPT folgendes ausgespuckt:

    Zitat

    Lösung: Typen manuell angeben mit PHPDoc

    Du kannst Intelephense mit einem PHPDoc-Kommentar den richtigen Typ mitteilen:

    Code
    /** @var \Joomla\CMS\Application\CMSApplication $app */
    $app = \Joomla\CMS\Factory::getApplication();
    $document = $app->getDocument();

    Dadurch erkennt Intelephense korrekt, dass $app ein Objekt von CMSApplication ist und getDocument() zur Verfügung steht.

    Das hat soweit jetzt funktioniert (ich hoffe das passt so und bringt keine späteren ungereimtheiten mit sich)


    VSC Intelephense erkennt jetzt zumindest keinen Fehler mehr.

  • Wenn du nur $document und nicht auch noch $app benötigst ginge ja auch:

    Code
    $document = Factory::getApplication()->getDocument();

    Ob dann intelliphense keine unknown method sieht weiß ich aber nicht.

    Nützlich ist eventuell auch der Abschitt:

    There is more to Joomla than HTML output

    dort:

    https://www.dionysopoulos.me/common-mistake…la-plugins.html

    und sicherlich später auch noch nützlich ist übrigens auch:

    https://www.dionysopoulos.me/book/