SUPEE Yaması 8788 yüklemesinden sonra Yönetici Paneli'ndeki sorun


9

Ben Magento CE 1.9.2.4 ile birlikte yüklü (5377,1533,4788 vs neredeyse tüm yamalar) yamalar.

Bu soru aynı zamanda, temel magento sorunlarından ziyade, özel bölümlerinde Resim yüklemelerini içeren herhangi bir özel modülde / kesin olarak meydana gelebilecek sorunları ortaya çıkarır.

  1. Komut satırı üzerinden en son 8788 yamasını yükledikten sonra, 8788 kurulumundan önce iyi çalışan özel modülümün "Ekle / Düzenle" sayfasını açamıyorum.

Modülümün "Yeni Başlık Ekle" sayfasını açmaya çalıştığımda aşağıdaki hatayı alıyorum:

Önemli hata: 57. satırdaki /home/site_user/public_html/app/code/community/My/Module/Block/Adminhtml/Banner/Add/Tab/Image.php içindeki bir nesne üzerinde setUrl () işlevini çağırın

Suçlu hattı aşağıdaki gibidir:

$this->getUploader()->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/image'))
  1. Ayrıca önceden yüklenen ürün resimlerini yönetici Catalog > Manage Products > Any product > Imagesbölümünde göremiyorum .

Aşağıda çekirdek Mage_Adminhtml_Block_Media_Uploadersınıf denilmektedir.

<?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');
    }
}

Herkes bunu mümkün olan en az kod değişikliği ile nasıl düzeltebilirim.


getUploaderLütfen yöntemin içeriğini gönderebilir misiniz ?
Raphael, Dijital Piyanizm'de

Lütfen sorumu güncelleyin.
Vicky Dev


1
@TejabhagavanKollepara Lütfen aceleyle yinelenmeden işaretlemeden önce sorudaki her iki durumu da kontrol edin.
Vicky Dev

Yanıtlar:


17

Mage_Adminhtml_Block_Media_UploaderSUPEE-8788 (ve 1.9.3) sürümünden sonra kullanımdan kaldırılmıştır. Bu nedenle, yükleyiciyi kullanarak modülü kıran birkaç geriye dönük uyumsuzluk değişikliği vardır.

İlk önce küçük bir değişikliğin bunu düzelteceğini düşündüm ama daha yapılacak çok iş var.

1.9.2 ve 1.9.3 ile uyumlu galeriyi kullanarak bir modül oluşturun

Dolayısıyla, bir modül sağlayıcıysanız, 1.9.2 ve 1.9.3 için modülünüzün iki farklı sürümüne sahip olmak istemezsiniz. Kodunuzu her ikisiyle de uyumlu hale getirmek için:

Blok _prepareLayoutyönteminizde aşağıdakileri yapmanız gerekir:

Değiştir:

 $this->getUploader()->getConfig()
            ->setUrl($url)
            ->setFileField('image')
            ->setFilters(array(
                'images' => array(
                    'label' => Mage::helper('adminhtml')->__('Images (.gif, .jpg, .png)'),
                    'files' => array('*.gif', '*.jpg','*.jpeg', '*.png')
                )
            ));

İle:

    if (class_exists("Mage_Uploader_Block_Abstract")) {
        // PATCH SUPEE-8788 or Magento 1.9.3
        $this->getUploader()->getUploaderConfig()
            ->setFileParameterName('image')
            ->setTarget($url);

        $browseConfig = $this->getUploader()->getButtonConfig();
        $browseConfig
            ->setAttributes(
                array("accept"  =>  $browseConfig->getMimeTypesByExtensions('gif, png, jpeg, jpg'))
            );
    } else {
        $this->getUploader()->getConfig()
            ->setUrl($url)
            ->setFileField('image')
            ->setFilters(array(
                'images' => array(
                    'label' => Mage::helper('adminhtml')->__('Images (.gif, .jpg, .png)'),
                    'files' => array('*.gif', '*.jpg','*.jpeg', '*.png')
                )
            ));
    }

Gördüğünüz gibi class_existsSUPEE-8788 veya Magento 1.9.3'ün uygulanıp uygulanmadığını kontrol etmek için kullanıyorum .

Sonra sizin gallery.phtmldeğiştirmeniz gerekir:

var <?php echo $_block->getJsObjectName(); ?> = new Product.Gallery('<?php echo $_block->getHtmlId() ?>', <?php if ($_block->getElement()->getReadonly()):?>null<?php else:?><?php echo $_block->getUploader()->getJsObjectName() ?><?php endif;?>, <?php echo $_block->getImageTypesJson() ?>);

İle:

<?php if (class_exists("Mage_Uploader_Block_Abstract")): ?>
    var <?php echo $_block->getJsObjectName(); ?> = new Product.Gallery('<?php echo $_block->getHtmlId() ?>', <?php echo $_block->getImageTypesJson() ?>);
<?php else: ?>
    var <?php echo $_block->getJsObjectName(); ?> = new Product.Gallery('<?php echo $_block->getHtmlId() ?>', <?php if ($_block->getElement()->getReadonly()):?>null<?php else:?><?php echo $_block->getUploader()->getJsObjectName() ?><?php endif;?>, <?php echo $_block->getImageTypesJson() ?>);
<?php endif; ?>

Sonra düzen dosyası için, bunu şu şekilde yapabilirsiniz:

<reference name="head">
    <action method="addJs"><file helper="module/getFlowMin" /></action>
    <action method="addJs"><file helper="module/getFustyFlow" /></action>
    <action method="addJs"><file helper="module/getFustyFlowFactory" /></action>
    <action method="addJs"><file helper="module/getAdminhtmlUploaderInstance" /></action>
</reference>

moduleYardımcı sınıf tanımlayıcınızla değiştirin ve modül Data.phpyardımcısına aşağıdakileri ekleyin:

protected function _isNoFlashUploader()
{
    return class_exists("Mage_Uploader_Block_Abstract");
}

public function getFlowMin()
{
    return $this->_isNoFlashUploader() ? "lib/uploader/flow.min.js" : null;
}

public function getFustyFlow()
{
    return $this->_isNoFlashUploader() ? "lib/uploader/fusty-flow.js" : null;
}

public function getFustyFlowFactory()
{
    return $this->_isNoFlashUploader() ? "lib/uploader/fusty-flow-factory.js" : null;
}

public function getAdminhtmlUploaderInstance()
{
    return $this->_isNoFlashUploader() ? "mage/adminhtml/uploader/instance.js" : null;
}

1
ile de setUrldeğişir setTarget.
Qaisar Satti

Magento 1.9.3.8'de csv dosyası yükleme sorunu için çalışır. Harika!
Igor Revenko

3

@Rahael yanıtı ekleyerek üç düzeltme eklemeniz gerekiyor

ilk düzeltme

Spacename_Moduelname_Block_Adminhtml_Modulename_Edit_Tab_Images.php

protected $_uploaderType = 'uploader/multiple';
public function __construct()
{
    parent::__construct();
    $this->setTemplate('moduelname/gallery.phtml');
    ....
}
protected function _prepareLayout()
    {
 $this->setChild('uploader',
            $this->getLayout()->createBlock($this->_uploaderType)
        );

        $this->getUploader()->getUploaderConfig()
            ->setFileParameterName('image')
            ->setTarget(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/image'));

        $browseConfig = $this->getUploader()->getButtonConfig();
        $browseConfig
            ->setAttributes(array(
                'accept' => $browseConfig->getMimeTypesByExtensions('gif, png, jpeg, jpg')
            ));
     return parent::_prepareLayout();
    }

Adminhtml / default / default / modulename / gallery.phtml dosyasındaki ikinci düzeltme

 <script type="text/javascript">
//<![CDATA[
var <?php echo $_block->getJsObjectName(); ?> = new Product.Gallery('<?php echo $_block->getHtmlId() ?>', <?php echo $_block->getImageTypesJson() ?>);
//]]>
</script>

üçüncü düzeltme js parçası düzeni / module.xml

<reference name="head">
            <action method="addJs"><file>lib/uploader/flow.min.js</file></action>
            <action method="addJs"><file>lib/uploader/fusty-flow.js</file></action>
            <action method="addJs"><file>lib/uploader/fusty-flow-factory.js</file></action>
            <action method="addJs"><file>mage/adminhtml/uploader/instance.js</file></action>
</reference>

dosyaları düzeltmek için loaction

ilk düzeltme uygulaması / kodu / çekirdek / Mage / Adminhtml / Blok / Katalog / Ürün / Yardımcı / Form / Galeri / Content.php

ikinci düzeltme uygulaması / tasarım / adminhtml / varsayılan / varsayılan / şablon / katalog / ürün / yardımcı / gallery.phtml


Düzeltmeler için dosyaları da bahsederseniz, gerçekten yararlı olacaktır.
Vicky Dev

@VickyDev dosya adını da ekledi.
Qaisar Satti

Teşekkürler, yanıtladığınız için, ancak bu şey Core Magento ürün resimlerinde ortaya çıkıyor, bu yüzden ilk iki değişikliği nerede yapmam gerekir? 8788 yama ile Magento ce 1.9.2.4.
Vicky Dev

1
Ancak burada sohbet ekranlarına geçmek için bir bağlantı görmüyorum.
Vicky Dev

1
@QaisarSatti see Kodumu güncelledim, bu yüzden hem 1.9.2 hem de 1.9.3 ile uyumlu;)
Raphael at Digital Pianism

2

Düzeltildi - Magento CE 1.7.0.2 - 1.9.2.4 sürümünün PATCH 8788 kurulumundan sonra Resim Yükleme sorunu.

I was able to fix it,Please Follow following instruction.

Adım >> 1: Güvenlik yaması 8788'i başarıyla yükledikten sonra, lütfen yönetici paneline gidin ve tüm Magento önbelleğini yıkayın . Ardından Yönetici Paneli Çıkış yapın ve Yönetici Paneli yeniden giriş .

Adım >> 2: Dizin Yönetimine gidin ve tüm Magento önbelleğini bir kez daha temizledikten sonra tüm verileri yeniden endeksleyin .

Adım >> 3: Bu çok önemli adım, tarayıcı önbelleğinizi (Ctrl + shift + Delete) geçmişinizi silin, çerezler dahil tarayıcıdaki tüm tarama verilerini temizler.

Adım >> 4: Katalog >> Ürün Yönetimi'ne gidin, herhangi bir ürünün yeni görüntüsünü ekleyin, şimdi her şeyin yolunda gittiğini görebilirsiniz.


0

Aynı Sorun durum 2'yi yaşıyordum. Benim durumumda bu dosyanın üzerine özel bir modül yazılması neden oldu:

Uygulamanın / tasarım / adminhtml / default / default / şablon / katalog / ürün / yardımcı / gallery.phtml

Bu blok için şablonun üzerine yazan benzer bir şablonunuz olup olmadığını kontrol etmenizi öneririm Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Contentve bu durumda Supee-8788düzeltme ekini üzerine yazma dosyasına uygulayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.