SUPEE প্যাচ 8788 ইনস্টলেশন পরে অ্যাডমিন প্যানেলে ইস্যু করুন


9

আমি ম্যাজেন্টো সিই 1.9.2.4 প্যাচগুলির সাথে ইনস্টল করেছি (5377,1533,4788 ইত্যাদি প্রায় সমস্ত প্যাচ)।

এই প্রশ্নটি কেবল মূল ম্যাজেন্টো ইস্যুগুলির পরিবর্তে তাদের কাস্টম বিভাগে চিত্র আপলোড জড়িত যে কোনও কাস্টম মডিউলে / অবশ্যই ঘটতে পারে এমন সমস্যাগুলি প্রকাশ করে।

  1. এখন আমি কমান্ড-লাইনের মাধ্যমে সর্বশেষতম প্যাচ 8788 ইনস্টল করার পরে, আমি আমার কাস্টম মডিউলটির "অ্যাড / সম্পাদনা" পৃষ্ঠাটি খুলতে পারছি না, যা 8788 ইনস্টলেশনের আগে ভাল কাজ করছিল।

আমি যখন আমার মডিউলটির "নতুন ব্যানার যুক্ত করুন" পৃষ্ঠাটি খোলার চেষ্টা করব তখন আমি ত্রুটির নীচে নেমে যাচ্ছি:

মারাত্মক ত্রুটি: /home/site_user/public_html/app/code/commune/My/Module/Block/Adminhtml/Banner/Add/Tab/Image.php 57 নং লাইনে একটি সদস্য ফাংশন setUrl () এ কল করুন

অপরাধীর রেখাটি নীচে রয়েছে:

$this->getUploader()->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/image'))
  1. এছাড়াও আমি প্রশাসনিক 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আপনি কি দয়া করে পদ্ধতির বিষয়বস্তু পোস্ট করতে পারেন ?
এ ডিজিটাল পিয়ানিজমে রাফেল

দয়া করে চেক করুন, আমার প্রশ্ন আপডেট করেছেন।
ভিকি দেব


1
@ তেজাবাগাবনকলেপাড়া তাড়াতাড়ি করে সদৃশটি চিহ্নিত করার আগে উভয় ক্ষেত্রেই প্রশ্নটি পরীক্ষা করুন check
ভিকি দেব

1
@ ভিকিডেভ সবেমাত্র এটি এখানে সমাধান করেছেন magento.stackexchange.com/questions/141775/…
কায়সার

উত্তর:


17

Mage_Adminhtml_Block_Media_UploaderSUPEE-8788 (এবং 1.9.3) এর পরে অবচিত করা হয়েছে। সুতরাং এখানে বেশ কয়েকটি পিছনে অসঙ্গতি পরিবর্তন রয়েছে যা আপলোডারটি ব্যবহার করে মডিউলটি ভেঙে দেয়।

আমি প্রথমে ভেবেছিলাম একটি ছোট পরিবর্তন এটিকে সংশোধন করবে তবে বাস্তবে আরও কিছু করার উপায় রয়েছে।

1.9.2 এবং 1.9.3 সাথে সামঞ্জস্যপূর্ণ গ্যালারী ব্যবহার করে একটি মডিউল তৈরি করুন

সুতরাং আপনি যদি মডিউল সরবরাহকারীর হন তবে আপনার মডিউলটির 1.9.2 এবং 1.9.3 এর জন্য দুটি আলাদা সংস্করণ থাকতে হবে না। আপনার কোড দুটির সাথে কীভাবে সামঞ্জস্য করা যায় তা এখানে:

আপনার ব্লক _prepareLayoutপদ্ধতিতে আপনাকে নিম্নলিখিতগুলি করতে হবে:

প্রতিস্থাপন করুন:

 $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')
                )
            ));

সঙ্গে:

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

আপনি দেখতে পাচ্ছেন যে আমি সুপার class_exists-8788 বা ম্যাজেন্টো 1.9.3 প্রয়োগ করা হয়েছে কিনা তা পরীক্ষা করতে ব্যবহার করছি using

তারপরে আপনার মধ্যে gallery.phtmlপ্রতিস্থাপন করতে হবে:

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 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; ?>

তারপরে লেআউট ফাইলের জন্য আপনি এটি এটি করতে পারেন:

<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>

moduleআপনার সহায়ক শ্রেণীর শনাক্তকারীকে প্রতিস্থাপন করুন এবং আপনার মডিউল Data.phpসহায়তায় নিম্নলিখিতগুলি যুক্ত করুন:

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
সাথে setUrlপরিবর্তন setTarget
কায়সার সত্তী

এটি ম্যাজেন্টো 1.9.3.8 এ সিএসভি ফাইল আপলোড ইস্যুটির জন্য কাজ করে। গ্রেট!
ইগোর রেভেনকো

3

@ রাফেল উত্তরে যুক্ত করে আপনাকে তিনটি সংশোধন করতে হবে

প্রথম ঠিক করা

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();
    }

প্রশাসক / ডিফল্ট / ডিফল্ট / মডিউলনাম / গ্যালারী.পিএইচটিএমএল ফাইলের দ্বিতীয় স্থিরতা

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

তৃতীয় স্থির করুন জেএস পার্ট লেআউট / মডিউল.এক্সএমএল

<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>

লোশন ঠিক করার জন্য ফাইল

প্রথম স্থির অ্যাপ্লিকেশন / কোড / কোর / দালাল / অ্যাডমিনটিচটিএমএল / ব্লক / ক্যাটালগ / পণ্য / সহায়ক / ফর্ম / গ্যালারী / সামগ্রী.এফপি

দ্বিতীয় স্থির অ্যাপ্লিকেশন / নকশা / প্রশাসনিক / ডিফল্ট / ডিফল্ট / টেমপ্লেট / ক্যাটালগ / পণ্য / সহায়ক / গ্যালারী.এফটিএমএল


এটি খুব কার্যকর হবে, যদি আপনিও ঠিক করার জন্য ফাইলগুলি উল্লেখ করেন।
ভিকি দেব

@ ভিকিডেভ ফাইলের নামও যুক্ত করেছেন।
কায়সার সতী

ধন্যবাদ, আপনি উত্তর দেওয়ার জন্য, তবে কোর ম্যাজেন্টো পণ্যের চিত্রগুলিতে এই জিনিসটি ঘটে, তাই আমার প্রথম দুটি পরিবর্তন করার দরকার কোথায়? প্যাচ 8788 ইনস্টল করে ম্যাজেন্টো সিএ 1.9.2.4।
ভিকি দেব

1
তবে আমি এখানে চ্যাট ডিসপ্লেতে যাওয়ার কোনও লিঙ্ক দেখতে পাচ্ছি না।
ভিকি দেব

1
@ কায়সারসট্টি দেখুন আমি আমার কোড আপডেট করেছি যাতে এটি 1.9.2 এবং 1.9.3;) উভয়ের সাথেই সামঞ্জস্যপূর্ণ
21'16 তে ডিজিটাল পিয়ানিজমে রাফেল

2

স্থির - ম্যাজেন্টো সংস্করণ সিই 1.7.0.2 - 1.9.2.4 এর প্যাচ 8788 ইনস্টল করার পরে চিত্র আপলোড ইস্যু।

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

পদক্ষেপ >> 1: সফলভাবে ইনস্টল করা সুরক্ষা প্যাচ 8788 সফলভাবে পরে, দয়া করে অ্যাডমিন প্যানেলে যান এবং সমস্ত ম্যাজেন্টো ক্যাশে ফ্লাশ করুন । তারপরে আপনার অ্যাডমিন প্যানেলটি লগআউট করুন এবং অ্যাডমিন প্যানেলে রিলোগিন করুন

পদক্ষেপ >> 2: সূচি ব্যবস্থাপনায় যান এবং সমস্ত ম্যাজেন্টো ক্যাশে আবার একবার ফ্লাশ করার পরে সমস্ত ডেটা রিইন্ডেক্স নির্বাচন করুন ।

পদক্ষেপ >> 3: এটি অত্যন্ত গুরুত্বপূর্ণ পদক্ষেপ, আপনার ব্রাউজারের ক্যাশে মুছে ফেলুন (Ctrl + shift + মুছুন) ইতিহাস কুকিজ সহ ব্রাউজার থেকে সমস্ত ব্রাউজিং ডেটা সাফ করে।

পদক্ষেপ >> 4: ক্যাটালগ >> প্রোডাক্ট ম্যানেজমেন্টে যান, যে কোনও পণ্যের নতুন চিত্র যুক্ত করুন, এখন আপনি সবকিছু ঠিকঠাক দেখতে পাবেন।


0

আমি আপনার একই ইস্যুর কেসটি অনুভব করছিলাম my আমার ক্ষেত্রে এটি এই ফাইলটি একটি কাস্টম মডিউল দ্বারা ওভাররাইট করার কারণে হয়েছিল:

অ্যাপ্লিকেশন / ডিজাইন / adminhtml / ডিফল্ট / ডিফল্ট / টেমপ্লেট / ক্যাটালগ / পণ্য / সাহায্যকারী / gallery.phtml

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনার যদি একইরকম টেমপ্লেট that ব্লকের জন্য টেমপ্লেটটি ওভাররাইট করে Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Contentথাকে এবং তা যদি Supee-8788হয় তবে ওভাররাইটিং ফাইলে প্যাচটি প্রয়োগ করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.