У меня установлен Magento CE 1.9.2.4 вместе с патчами (5377,1533,4788 и т. Д. Почти все патчи).
Этот вопрос также показывает проблемы, которые могут / обязательно возникать в любом пользовательском модуле, включающем загрузку изображений в их пользовательские разделы, а не только основные проблемы magento.
- Теперь, после того как я установил последний патч 8788 через командную строку, я не могу открыть страницу «Добавить / Редактировать» моего пользовательского модуля, которая до установки 8788 работала нормально.
При попытке открыть страницу «Добавить новый баннер» моего модуля появляется сообщение об ошибке ниже:
Неустранимая ошибка: вызов функции-члена setUrl () для необъекта в /home/site_user/public_html/app/code/community/My/Module/Block/Adminhtml/Banner/Add/Tab/Image.php в строке 57
Линии виновника, как показано ниже:
$this->getUploader()->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/image'))
- Также я не вижу уже загруженные изображения продуктов в
Catalog > Manage Products > Any product > Images
разделе администратора .
Ниже приведён базовый Mage_Adminhtml_Block_Media_Uploader
класс.
<?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 license@magento.com 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 <core@magentocommerce.com>
*/
/**
* @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');
}
}
Кто-нибудь, дайте мне знать, как это исправить с наименьшим количеством возможных изменений кода.
источник
getUploader
метода, пожалуйста?Ответы:
Mage_Adminhtml_Block_Media_Uploader
устарела после SUPEE-8788 (и 1.9.3). Таким образом, существует несколько изменений обратной несовместимости, которые нарушают работу модуля, использующего загрузчик.Сначала я подумал, что небольшое изменение исправит это, но на самом деле есть еще много чего сделать.
Сделайте модуль с помощью галереи совместимым с 1.9.2 и 1.9.3
Поэтому, если вы являетесь поставщиком модулей, вы не хотите иметь две разные версии вашего модуля для 1.9.2 и 1.9.3. Вот как сделать ваш код совместимым с обоими:
В вашем блочном
_prepareLayout
методе вам нужно сделать следующее:Заменить:
С:
Как вы видите, я использую,
class_exists
чтобы проверить, применяется ли SUPEE-8788 или Magento 1.9.3.Тогда по вашему
gallery.phtml
нужно заменить:С:
Затем для файла макета вы можете сделать это так:
Замените его
module
идентификатором вспомогательного класса, а вData.php
вспомогательном модуле добавьте следующее:источник
setUrl
изменить сsetTarget
.добавив в ответ @Raphael вам нужно добавить три исправления
первое исправление
Spacename_Moduelname_Block_Adminhtml_Modulename_Edit_Tab_Images.php
Второе исправление в adminhtml / по умолчанию / по умолчанию / имя_модуль / gallery.phtml файла
третье исправление компоновки части js / module.xml
файлы для исправления ошибок
приложение первого исправления / код / ядро / Mage / Adminhtml / блок / каталог / продукт / помощник / форма / галерея / Content.php
второе исправление app / design / adminhtml / default / default / template / catalog / product / helper / gallery.phtml
источник
Исправлено - проблема с загрузкой изображений после установки PATCH 8788 в Magento версии CE 1.7.0.2 - 1.9.2.4.
источник
Я сталкивался с той же проблемой 2. В моем случае это было вызвано перезаписью этого файла пользовательским модулем:
приложение / дизайн / adminhtml / по умолчанию / по умолчанию / шаблон / Каталог / продукта / помощник / gallery.phtml
Я бы посоветовал вам проверить, есть ли у вас аналогичный шаблон, перезаписывающий шаблон для этого блока,
Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
и если это так, применитеSupee-8788
патч к файлу перезаписи.источник