Schwerwiegender PHP-Fehler: Aufruf einer Mitgliedsfunktion setData () für ein Nichtobjekt in Permissions / BlockController.php in Zeile 113 - Nach dem Anwenden von SUPEE-6788

7

Schwerwiegender PHP-Fehler nach dem Anwenden von SUPEE-6788:

Rufen Sie eine Mitgliedsfunktion setData () für ein Nicht-Objekt in app / code / core / Mage / Adminhtml / controller / Permissions / BlockController.php in Zeile 113 auf

Erstens kann ich den Patch nicht anwenden SUPEE-6788. Es sagte

-e FEHLER: Patch kann nicht erfolgreich angewendet / zurückgesetzt werden

Befolgen Sie die Schritte unter Link " Warum scheint PATCH_SUPEE-6788 keine Auswirkungen auf eine 1.7.0.2-Installation zu haben? ", Und dann konnte ich den Patch anwenden.

Auf der Startseite fehlen jedoch einige Magento-Blöcke. Nach einer langen Suche in Google stellte ich fest, dass wir unter Blöcke erstellen müssenSystem > Permissions > Blocks

Ich kann jedoch nicht darauf zugreifen, da einige Tabellen nicht erstellt werden ( permission_block and permission_variable )

Dieses Problem wurde durch die folgende Prozedur gelöst ( Tabellen Permission_block und Permission_Variable wurden nach SUPEE-6788 nicht erstellt )

Aber jetzt kann ich keinen Block unter Berechtigungen bearbeiten oder erstellen. Nur Listenansicht sichtbar. Den oben genannten Fehler erhalten

Joseph Asir Raja
quelle
hast du das gelöst ?? Ich habe das gleiche Problem
Nein noch nicht. Haben Sie eine Lösung gefunden?
Joseph Asir Raja

Antworten:

7

app / design / adminhtml / default / default / layout / admin.xml

Dieser Fehler wird generiert, wenn der Layout-Cache nicht aktualisiert wurde oder in admin.xml der folgende Code fehlt.

<!-- admin permissions block edit page -->
<adminhtml_permissions_block_edit>
    <reference name="content">
        <block type="adminhtml/permissions_block_edit" name="adminhtml.permissions.block.edit"/>
    </reference>
</adminhtml_permissions_block_edit>
<!-- admin permissions variable edit page -->
elfling
quelle
Überprüfen Sie auch mit adminhtml_permissions_role_editrole in keiner anderen XML-Datei. Wenn es dort vorhanden ist, muss es ebenfalls aktualisiert werden.
Mukesh
1

Man kann die Einträge in der Datenbank manuell hinzufügen / bearbeiten / entfernen. Die Tabelle permission_blockenthält die Spalten, in block_id, block_name, is_alloweddenen Sie der Whitelist einfach einen Block hinzufügen können, indem Sie den Namen und die Einstellung is_allowedauf eingeben 1.

Nicht gerade eine Antwort / Lösung, sondern eine Problemumgehung ....

Geschwister
quelle
1

Die folgende Lösung hat bei mir funktioniert: Replcae unter dem Code:

$this->getLayout()->getBlock('adminhtml.permissions.block.edit')
            ->setData('action', $this->getUrl('*/permissions_block/save'));

mit

$this->getLayout()->createBlock('adminhtml/permissions_block_edit')
            ->setData('action', $this->getUrl('*/permissions_block/save'));

Machen Sie VariableController.phpdasselbe für dieselbe Zeile 113 .

Ankur Jain
quelle