Ich habe Magento CE 1.9.2.4 zusammen mit Patches installiert (5377,1533,4788 usw. fast alle Patches).
Diese Frage enthüllt auch Probleme, die in jedem benutzerdefinierten Modul auftreten können, bei dem Bild-Uploads in ihren benutzerdefinierten Abschnitten durchgeführt werden, und nicht nur Kernprobleme mit Magento.
- Nachdem ich den neuesten Patch 8788 über die Befehlszeile installiert habe, kann ich die Seite "Hinzufügen / Bearbeiten" meines benutzerdefinierten Moduls nicht öffnen, was vor der Installation von 8788 einwandfrei funktioniert hat.
Beim Versuch, die Seite "Neues Banner hinzufügen" meines Moduls zu öffnen, wird folgende Fehlermeldung angezeigt:
Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion setUrl () für ein Nichtobjekt in /home/site_user/public_html/app/code/community/My/Module/Block/Adminhtml/Banner/Add/Tab/Image.php in Zeile 57
Die Täterlinie ist wie folgt:
$this->getUploader()->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/image'))
- Außerdem kann ich bereits hochgeladene Produktbilder im Admin-
Catalog > Manage Products > Any product > Images
Bereich nicht sehen .
Unten ist die Kernklasse Mage_Adminhtml_Block_Media_Uploader
, die aufgerufen wird.
<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magento.com for more information.
*
* @category Mage
* @package Mage_Adminhtml
* @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
/**
* Adminhtml media library uploader
*
* @category Mage
* @package Mage_Adminhtml
* @author Magento Core Team <[email protected]>
*/
/**
* @deprecated
* Class Mage_Adminhtml_Block_Media_Uploader
*/
class Mage_Adminhtml_Block_Media_Uploader extends Mage_Uploader_Block_Multiple
{
/**
* Constructor for uploader block
*/
public function __construct()
{
parent::__construct();
$this->getUploaderConfig()->setTarget(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/upload'));
$this->getUploaderConfig()->setFileParameterName('file');
}
}
Jeder ließ mich wissen, wie dies mit möglichst geringen Codeänderungen behoben werden kann.
quelle
getUploader
bitte den Inhalt der Methode posten ?Antworten:
Mage_Adminhtml_Block_Media_Uploader
ist nach SUPEE-8788 (und 1.9.3) veraltet. Daher gibt es mehrere Änderungen der Abwärtsinkompatibilität, die das Modul mithilfe des Uploaders beschädigen.Ich dachte zuerst, eine kleine Änderung würde das Problem beheben, aber es gibt tatsächlich noch viel mehr zu tun.
Machen Sie ein Modul mit der Galerie kompatibel mit 1.9.2 und 1.9.3
Wenn Sie also ein Modulanbieter sind, möchten Sie nicht zwei verschiedene Versionen Ihres Moduls für 1.9.2 und 1.9.3 haben. So machen Sie Ihren Code mit beiden kompatibel:
In Ihrer Blockmethode
_prepareLayout
müssen Sie Folgendes tun:Ersetzen:
Mit:
Wie Sie sehen
class_exists
, überprüfe ich mit , ob SUPEE-8788 oder Magento 1.9.3 angewendet wird.Dann müssen Sie in Ihrem
gallery.phtml
ersetzen:Mit:
Dann können Sie für die Layoutdatei Folgendes tun:
Ersetzen Sie
module
durch Ihre Helferklassen-ID undData.php
fügen Sie in Ihrem Modulhelfer Folgendes hinzu:quelle
setUrl
ändern mitsetTarget
.Wenn Sie die @ Raphael-Antwort hinzufügen, müssen Sie drei Korrekturen hinzufügen
erste Lösung
Spacename_Moduelname_Block_Adminhtml_Modulename_Edit_Tab_Images.php
Zweites Update in adminhtml / default / default / Modulname / gallery.phtml Datei
drittens das js part layout / module.xml reparieren
Dateien, um Loaction zu beheben
Fix zuerst app / code / core / Mage / Adminhtml / Block / Katalog / Produkt / Helfer / Formular / Galerie / Content.php
zweite Korrektur app / design / adminhtml / default / default / template / catalog / product / helper / gallery.phtml
quelle
Behoben - Image Upload Problem nach PATCH 8788 Installation von Magento Version CE 1.7.0.2 - 1.9.2.4.
quelle
Ich hatte denselben Problemfall 2. In meinem Fall wurde dies dadurch verursacht, dass diese Datei von einem benutzerdefinierten Modul überschrieben wurde:
app / design / adminhtml / default / default / template / catalog / product / helper / gallery.phtml
Ich würde vorschlagen, dass Sie überprüfen, ob eine ähnliche Vorlage die Vorlage für diesen Block überschreibt.
Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
Wenn dies der Fall ist, wenden Sie denSupee-8788
Patch auf die Überschreibungsdatei an.quelle