Mam zainstalowany Magento CE 1.9.2.4 wraz z łatkami (5377,1533,4788 itd. Prawie wszystkie łatki).
To pytanie ujawnia również problemy, które mogą / z pewnością wystąpić w dowolnym niestandardowym module obejmującym przesyłanie obrazów w niestandardowych sekcjach, a nie tylko podstawowe problemy z Magento.
- Teraz po zainstalowaniu najnowszej poprawki 8788 za pomocą wiersza polecenia nie mogę otworzyć strony „Dodaj / edytuj” mojego modułu niestandardowego, który działał dobrze przed instalacją 8788.
Podczas próby otwarcia strony „Dodaj nowy baner” mojego modułu pojawia się błąd:
Błąd krytyczny: wywołanie funkcji składowej setUrl () na obiekcie niebędącym obiektem w /home/site_user/public_html/app/code/community/My/Module/Block/Adminhtml/Banner/Add/Tab/Image.php w linii 57
Linia winowajcy jest następująca:
$this->getUploader()->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/image'))
- Nie widzę również przesłanych zdjęć produktów w
Catalog > Manage Products > Any product > Images
sekcji administratora .
Poniżej jest Mage_Adminhtml_Block_Media_Uploader
nazywana klasa podstawowa .
<?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');
}
}
Daj mi znać, jak to naprawić, wprowadzając jak najmniej zmian kodu.
źródło
getUploader
metody?Odpowiedzi:
Mage_Adminhtml_Block_Media_Uploader
jest przestarzałe po SUPEE-8788 (i 1.9.3). Tak więc istnieje kilka wstecznych niezgodności, które psują moduł za pomocą programu do przesyłania.Najpierw pomyślałem, że mała zmiana to naprawi, ale tak naprawdę jest jeszcze wiele do zrobienia.
Zrób moduł za pomocą galerii kompatybilny z 1.9.2 i 1.9.3
Jeśli więc jesteś dostawcą modułów, nie chcesz mieć dwóch różnych wersji modułu dla wersji 1.9.2 i 1.9.3. Oto jak uczynić kod kompatybilnym z obydwoma:
W
_prepareLayout
metodzie blokowej musisz wykonać następujące czynności:Zastąpić:
Z:
Jak widać używam
class_exists
do sprawdzenia, czy zastosowano SUPEE-8788 lub Magento 1.9.3.Następnie w swoim
gallery.phtml
musisz wymienić:Z:
Następnie dla pliku układu możesz to zrobić w następujący sposób:
Zamień na
module
swój identyfikator klasy pomocnika, awData.php
pomocniku modułu dodaj:źródło
setUrl
zmienić również za pomocąsetTarget
.dodając odpowiedź @Raphael, musisz dodać trzy poprawki
pierwsza poprawka
Spacename_Moduelname_Block_Adminhtml_Modulename_Edit_Tab_Images.php
Druga poprawka w adminhtml / default / default / modulename / gallery.phtml pliku
po trzecie napraw układ strony js / module.xml
pliki do naprawy luki
pierwsza poprawka app / code / core / Mage / Adminhtml / Block / Catalog / Product / Helper / Form / Gallery / Content.php
druga poprawka app / design / adminhtml / default / default / template / catalog / product / helper / gallery.phtml
źródło
Naprawiono - problem z przesyłaniem obrazu po instalacji PATCH 8788 wersji Magento CE 1.7.0.2 - 1.9.2.4.
źródło
Wystąpił ten sam przypadek problemu 2. W moim przypadku przyczyną był nadpisanie tego pliku przez moduł niestandardowy:
app / design / adminhtml / default / default / template / catalog / product / helper / gallery.phtml
Sugeruję sprawdzenie, czy masz podobny szablon zastępujący szablon dla tego bloku,
Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
a jeśli tak, zastosujSupee-8788
łatkę do pliku zastępującego.źródło