it-swarm.com.de

Einige SimpleCRM-Menüelemente schlagen mit Fehler fehl: Rufen Sie eine Mitgliedsfunktion getModel () auf null auf

Unmittelbar nach dem Upgrade meiner Joomla-Version von 3.9.1 auf 3.9.4 kann ich im Backend nicht mehr auf bestimmte Simple CRM-Untermenüs zugreifen.

(enter image description here

Der Link Buchungskreise funktioniert ordnungsgemäß.
(http://localhost/jdem02/administrator/index.php?option=com_gscrm&view=Codes)

Folgendes nicht:

  • Einfaches CRM
    (http://localhost/jdem02/administrator/index.php?option=com_gscm)

  • Benutzerverwaltung
    (http://localhost/jdem02/administrator/index.php?option=com_gscrm&view=Beads)

  • Benutzerregeln
    (http://localhost/jdem02/administrator/index.php?option=com_gscrm&view=Roles)

  • Währungen & Kurse
    (http://localhost/jdem02/administrator/index.php?option=com_gscrm&view=Currencies)

Sie alle erzeugen den gleichen Fehler:

0 Aufruf einer Mitgliedsfunktion getModel () auf null
C:\wamp64\www\jdem02\library\fof30\Form\Field\Numeric.php: 25

Also wer hat meinen Käse bewegt?

Wie behebe ich das?

p.s. Ich bin nicht interessiert an Senkung meiner Joomla-Version .


Aktualisieren:

Das ist mein administrator/components/com_gscrm/View Verzeichnisaufbau:

(enter image description here

Hier ist das Skript roles form.default.xml:

<?xml version="1.0" encoding="UTF-8"?>
<form type="browse" 
    show_header="1" 
        show_filters="1" 
            show_pagination="1" 
                norows_placeholder="COM_GSCRM_COMMON_NORECORDS">
  <headerset>
    <header name="gscrm_role_id" type="RowSelect" label="COM_GSCRM_ROLES_GSCRM_ROLE_ID_LABEL" />
    <header name="role_id" label="COM_GSCRM_ROLES_GSCRM_ROLE_ID_LABEL" description="COM_GSCRM_ROLES_GSCRM_ROLE_ID_DESC"/>         
    <header name="title" type="Searchable" label="COM_GSCRM_ROLES_TITLE_LABEL"/>
    <header name="parent" label="COM_GSCRM_ROLES_PARENT_LABEL" sortable="true"/>
    <header name="child" label="COM_GSCRM_ROLES_CHILD_LABEL" sortable="true"/>
    <header name="code" type="Searchable" label="COM_GSCRM_ROLES_CODE_LABEL" sortable="true"/>
    <header name="enabled" type="Published" label="COM_GSCRM_ROLES_ENABLED_LABEL" sortable="true"/>
    <header name="access" type="AccessLevel" label="COM_GSCRM_ROLES_ACCESS_LABEL" sortable="true"/>
  </headerset>

  <fieldset name="items">
    <field name="gscrm_role_id" type="SelectRow"/>
    <field name="gscrm_role_id" id="role_id" type="text"/>

    <field name="title" type="Sortable" url="index.php?option=com_gscrm&amp;view=Role&amp;id=[ITEM:ID]&amp;[TOKEN]=1"/>

    <field name="parent" type="Numeric"/>
    <field name="child" type="Numeric"/>

    <field name="code" type="ViewTemplate" emptylabel="1" 
                        source="admin:com_gscrm/Beads/Code_name" 
    />  
    <field name="enabled" type="Actions"/>
    <field name="access" type="AccessLevel"/>
  </fieldset>
</form>
1
mickmackusa

Diese Frage (Problem) wurde gestern erfolgreich und ziemlich schnell gelöst und arbeitete effektiv mit @Mick an der Lösung. Diese Frage ist sehr detailliert, gut beschrieben und enthält die genaue Fehlermeldung von Joomla. Sie ist also ein gutes Beispiel für eine gut aufgebaute Frage zu SE.

Die Lösung war relativ einfach: Wir mussten das Formularfeld des veralteten numerischen Typs in den Zahlentyp ändern Formularfeld in den XML-Dateien, in denen diese Felder in Joomla und auch in FOF definiert sind.

Bei Formularfelddefinitionen mit type=”number” anstatt type=”numeric” löste das Problem ganz einfach.

Kurze Beschreibung des Problems und der Lösung:

Die Fehlermeldung zeigte zwei wichtige Dinge an: 1. In welcher Datei ist der Fehler aufgetreten (in welcher Zeile genau) 2. Und es Außerdem wurde deutlich, dass die Komponente mit FOF (Framework on Framework) erstellt wurde, wobei die Klassen in der Bibliothek fof30 in Joomla 3 enthalten sind.

Wenn wir die in der Fehlermeldung festgestellte Datei bestimmte Datei öffnen, stellen wir fest, dass es in dieser Datei um das Erstellen eines Formularfelds geht, und wir können auch sofort feststellen, dass das Feld mit einer Meldung veraltet ist:

Abwärtskompatibilitätsfeld. NICHT VERWENDEN IN PHP 7.2 UND SPÄTER.

Und mit einem zusätzlichen Hinweis: @ veraltet 3.1

Wenn Sie dann die fof30-Bibliothek überprüfen, werden Sie feststellen, dass die fof-Versionsnummer jetzt lautet: 3.4.2.

Schließlich können wir dank des Erstellers von FOF auch eine sehr hilfreiche Nachricht in der Datei finden: “… Verwenden Sie stattdessen den Nummernfeldtyp.”

Daher kann das Feld in dieser numerischen Feldklasse nicht erstellt werden. Wenn Sie jedoch den Feldtyp des Formulars in number in den entsprechenden XML-Dateien ändern, in denen das Formular und Wenn Felder erstellt werden, sollte das Problem gelöst sein. Und es war tatsächlich so. Eine der problematischen XML-Dateien bezüglich der obigen Erklärung wurde auch von @Mick als Update der Frage aufgenommen.

1
Zollie