প্যাচ SUPEE-6788 এর জন্য কাস্টম মডিউলটির অ্যাডমিন রাউটারগুলি কীভাবে আপডেট করবেন


34

SUPEE-6788 প্যাচ নিয়ে কাজ করার জন্য কাস্টম মডিউলগুলি কীভাবে আপডেট করবেন তা আমি নিশ্চিত নই , নির্দেশাবলী খুব পরিষ্কার নয়।

অ্যালান স্টর্মের টিউটোরিয়ালের ভিত্তিতে , আমি পরীক্ষার জন্য জেনারেটরের www.silksoftware.com/magento-module-creator/ এ একটি সাধারণ মডিউল তৈরি করেছি। অ্যাডমিনে এটির কাস্টম পৃষ্ঠা রয়েছে যা পুরোপুরি সূক্ষ্মভাবে কাজ করে তবে আমি যখন সুপারি -6788 এ প্রয়োজনীয় ফিক্সগুলি প্রয়োগ করি তখন প্রশাসক পৃষ্ঠা 404 ত্রুটি দেখায়।

কাস্টম প্রশাসক পৃষ্ঠার ইউআরএল হ'ল:

লোকালহোস্ট / ইনডেক্স.এফপি / অ্যাডমিন / অ্যাডমিন_এডমিনহেলো / অ্যাডমিন एचটিএমএল_এডমিনহেলোব্যাকেন্ড / ইনডেক্স / কী / 83f08ec4bddff37e47412e16acc8d3f6 /

এখানে মডিউলটির কনফিগারেশন রয়েছে:

<config>
    <modules>
        <Pulsestorm_Adminhello>
            <version>0.1.0</version>
        </Pulsestorm_Adminhello>
    </modules>
    <global>
        <helpers>
            <adminhello>
                <class>Pulsestorm_Adminhello_Helper</class>
            </adminhello>
        </helpers>
        <blocks>
            <adminhello>
                <class>Pulsestorm_Adminhello_Block</class>
            </adminhello>
        </blocks>
    </global>
    <admin>
        <routers>
            <adminhello>
                <use>admin</use>
                <args>
                    <module>Pulsestorm_Adminhello</module>
                    <frontName>admin_adminhello</frontName>
                </args>
            </adminhello>
        </routers>
    </admin>
    ...

নিয়ামকটি এখানে:

/app/code/local/Pulsestorm/Adminhello/controllers/Adminhtml/AdminhellobackendController.php

class Pulsestorm_Adminhello_Adminhtml_AdminhellobackendController extends Mage_Adminhtml_Controller_Action
{
    public function indexAction()
    {
        $this->loadLayout();
        $this->_title($this->__("My Test Page Title"));
        $this->renderLayout();
    }
}

সমাধান

আমি <routers>এই জাতীয় প্যাচ থেকে নির্দেশাবলীর ভিত্তিতে অংশটি প্রতিস্থাপন করেছি (সম্ভবত ভুলভাবে):

<routers>
    <adminhtml>
        <args>
            <modules>
                <admin_adminhello after="Mage_Adminhtml">Pulsestorm_Adminhello_Adminhtml</admin_adminhello>
            </modules>
        </args>
    </adminhtml>
</routers>

তবে এখন ইউআরএলটি কেবল দেখায় 404 error:

স্থানীয় হোস্ট / index.php / অ্যাডমিন / admin_adminhello / adminhtml_adminhellobackend / সূচক / কী / 83f08ec4bddff37e47412e16acc8d3f6 /

কিভাবে নতুন প্যাচ জন্য সঠিকভাবে মডিউল ঠিক করতে? config.xmlএই প্যাচটি প্রয়োগ করার পরে আমাকে কি কেবল আপডেট করতে হবে বা অ্যাডমিন পৃষ্ঠার ইউআরএলও পরিবর্তন করতে হবে?

উত্তর:


42

678 প্যাচের সাথে সুপারিশ অনুসারে আমি ম্যাজেন্টো নতুন উপায়ে ব্যবহার করতে আমার কাস্টম মডিউলটি পরিবর্তন করতে সক্ষম হয়েছি So সুতরাং আমি এখানে অন্যগুলির জন্য একটি রেফারেন্স হিসাবে দেব, এছাড়াও এই থ্রেডের প্রশ্নের উত্তর দিন।

  1. কনফিগ.এক্সএমএল ফাইলে রাউটারে পরিবর্তন করুন:

আগে:

<admin>
    <routers>
        <adminhello>
            <use>admin</use>
            <args>
                <module>Pulsestorm_Adminhello</module>
                <frontName>admin_adminhello</frontName>
            </args>
        </adminhello>
    </routers>
</admin>

পরে

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <adminhello before="Mage_Adminhtml">Pulsestorm_Adminhello_Adminhtml</adminhello>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>
  1. নিয়ামক পরিবর্তন করুন

2.1।

পথের আগে

/app/code/local/Pulsestorm/Adminhello/controllers/Adminhtml/AdminhellobackendController.php

পথ পরে

/app/code/local/Pulsestorm/Adminhello/controllers/Adminhtml/Adminhello/AdminhellobackendController.php

2.2

ক্লাসের আগে

class Pulsestorm_Adminhello_Adminhtml_AdminhellobackendController extends Mage_Adminhtml_Controller_Action 
{
..
}

ক্লাসের পরে

class Pulsestorm_Adminhello_Adminhtml_Adminhello_AdminhellobackendController extends Mage_Adminhtml_Controller_Action
{
...
}
  1. আপনার যদি অ্যাডমিনটি.টি.এম.এমএল ফাইল থাকে (কেবল নীচের মত উদাহরণ দিন)

আগে

<config>
    <menu>
        <adminhello_config translate="title" module="adminhello">
            <title>Adminhello Settings</title>
            <sort_order>100</sort_order>
            <children>
                <list_action translate="title" module="adminhello">
                    <title>Manage Hellos</title>
                    <sort_order>4</sort_order>
                <action>adminhello/adminhtml_adminhellobackend</action>
                </list_action>
...
            </children>
        </adminhello_config>
    </menu>
</config>

পরে

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <menu>
        <adminhello_config translate="title" module="adminhello">
            <title>Adminhello Settings</title>
            <sort_order>100</sort_order>
            <children>
                <list_action translate="title" module="adminhello">
                    <title>Manage Hellos</title>
                    <sort_order>4</sort_order>
                <action>adminhtml/adminhello_adminhellobackend</action>
                </list_action>
...
            </children>
        </adminhello_config>
    </menu>
</config>
  1. আপনার কোডগুলিতে পরিবর্তন করুন

পূর্বে: ইউআরএল পাওয়া

Mage::getUrl('adminhello/adminhtml_adminhellobackend/doSomething')

পরে: ইউআরএল পাচ্ছে

Mage::getUrl('adminhtml/adminhello_adminhellobackend/doSomething')
  1. লেআউট ফাইলগুলিতে পরিবর্তন (যদি আপনার নীচে যেমন লেআউট ফাইল থাকে)

বিন্যাসের আগে

<adminhello_adminhtml_adminhellobackend_index>
...
</adminhello_adminhtml_adminhellobackend_index>

লেআউট পরে

<adminhtml_adminhello_adminhellobackend_index>
...
</adminhtml_adminhello_adminhellobackend_index>

অসাধারণ! মোহন মত কাজ!
BENN1TH 8

17

আমি এটি খুঁজে বের করার ঘন্টা হারিয়েছি। কেবলমাত্র ম্যাজেন্টো-এ দেবগণ কোনও বোধগম্য কনফিগারেশন তৈরি করতে সক্ষম নন, বা এমনকি তাদের কোডটি এমনভাবে ডকুমেন্ট করে যাতে কোনও মানুষ এটি পড়তে সক্ষম হয়।

প্রথমে কনফিগার.এক্সএমএল দেখে নেওয়া যাক

<routers>
<adminhtml>
    <args>
        <modules>
            <admin_adminhello after="Mage_Adminhtml">Pulsestorm_Adminhello_Adminhtml</admin_adminhello>
        </modules>
    </args>
</adminhtml>

ট্যাগগুলির পুরো অর্থটি পরিবর্তিত হয়েছে। "মডিউল" এর অধীনে থাকা ট্যাগটি কেবল একটি এলোমেলো নাম। এক্সএমএল সংকলিত হওয়ার পরে এটির ওভাররাইট করা হয়নি তা নিশ্চিত করার জন্য আপনাকে তার অনন্যটি নিশ্চিত করতে হবে। এটির ইউআরএলে প্রভাব রয়েছে।

<admin_adminhello after= ..... >

ম্যাজেন্টো এখন আপনার ব্যাকএন্ড কন্ট্রোলার ক্লাসগুলিকে "প্রশাসনিক" নামে একটি নতুন সাবফোল্ডারে স্থানান্তরিত করার প্রত্যাশা করে This এজন্যই কনফিগারেশন.এক্সএমএলে আপনাকে _Adminhtml যোগ করে শ্রেণীর নাম প্রত্যয় পরিবর্তন করতে হবে ।

... >Pulsestorm_Adminhello_Adminhtml</admin_adminhello> ....

আপনার ক্ষেত্রে ফোল্ডারটি অবস্থিত হবে

অ্যাপ্লিকেশন / কোড / স্থানীয় / Pulsestorm / Adminhello / কন্ট্রোলার / Adminhtml

এখন আসল সমস্যা। "ফ্রন্টনাম" ট্যাগ ব্যবহার করে আপনার নিজের নামের স্থান নির্ধারণ করা অন্য (আরও ভাল) সিস্টেমটি ব্যবহার করে। আপনার কাছে আর এই বিলাসিতা নেই, তাই আপনার নিয়ামকের একটি অনন্য নাম রয়েছে তা নিশ্চিত করা দরকার। অন্যথায় এটি অন্যান্য এক্সটেনশনের সাথে বিরোধ করবে। সুতরাং "অ্যাডমিনকন্ট্রোলআরএফপি" এর মতো নামকরণকারী কন্ট্রোলাররা আর ভাল হয় না, আপনার এটিকে যেমন " অ্যাডমিনহেলো কন্ট্রোল.এফপি "

আপনার ইউআরএল এর পরে অনুসরণ করা হবে

HTTP: //localhost/index.php/admin/adminhellobackend/index/key/83f08ec4bddff37e47412e16acc8d3f6/

ফাইলটির নাম পরিবর্তন বা সরানোর পরে নিয়ামক শ্রেণীর নাম সামঞ্জস্য করতে ভুলবেন না

/app/code/local/Pulsestorm/Adminhello/controllers/Adminhtml/AdminhellobackendController.php

এক্ষেত্রে নামটি হবে পালসস্টর্ম_এডমিনহেলো_ অ্যাডমিনহিটটিএমএল_এডমিনহেলোব্যাকেন্ড কন্ট্রোলার

অবশ্যই আপনাকে অবশ্যই মেনু আইটেম এবং ফর্মগুলিতে ব্যবহৃত কোনও ইউআরএল সামঞ্জস্য করতে হবে যা আপনি ব্যাকএন্ডে ব্যবহার করেন

এছাড়াও সূচী.পিএফপি ফাইলটিতে আপনি বিকাশকারী মোড স্যুইচ করেছেন তা নিশ্চিত করুন। আমি লক্ষ্য করেছি যে কন্ট্রোলারের যদি এতে কিছু বাগ থাকে তবে আপনি একটি 404ও পান De ডিভেলপোর্ট মোডের সাহায্যে আপনি স্ট্যাকট্রেস ত্রুটি পান।

আমি যা করবো তা হল, একবার নিয়ামক ডাকার পরে একটি লগ লিখতে হবে, যাতে আপনি দেখতে পারেন যে নিয়ামক পদ্ধতিটি একেবারেই অ্যাক্সেস করা হয়েছে কিনা।

/app/code/local/Pulsestorm/Adminhello/controllers/Adminhtml/AdminhellobackendController.php

class Pulsestorm_Adminhello_Adminhtml_AdminhellobackendController extends Mage_Adminhtml_Controller_Action
{
    public function indexAction()
    {
        Mage::log('Controller was accessed', null, 'controller.log', true);
        $this->loadLayout();
        $this->_title($this->__("My Test Page Title"));
        $this->renderLayout();
    }
}

আপনার উত্তরটি যদি কাজ করে তবে কি তা বাড়িয়ে দিতে পারবেন? ধন্যবাদ!
ক্লাদিউ ক্র্যাঙ্গা

ঠিক আছে, সম্পন্ন হয়েছে ... আশা করি এটি সাহায্য করবে

হেই একবার পুরানো ম্যাগান্টোকমার্স ফোরামে আপনার " তবুও তাদের কোড ডকুমেন্টিং " মন্তব্য করার জন্য একবার হাসিখুশি ম্যাজেন্টো বিকাশকারী প্রতিক্রিয়া পেয়েছিলেন । "তবে কোডটি স্ব নথিভুক্ত ..."। উম্মু তখন পার্ল পোড পরীক্ষায় উত্তীর্ণ হয়নি, এখন নেই। উপরের ব্যাখ্যার জন্য ধন্যবাদ, আমার এটির দরকার ছিল।
ফায়াসকো ল্যাবগুলি

3
ম্যাজেন্টো এখন আপনার ব্যাকএন্ড কন্ট্রোলার ক্লাসগুলিকে "প্রশাসনিক" নামে একটি নতুন সাবফোল্ডারে স্থানান্তরিত করার প্রত্যাশা করে - এটি সত্য নয়, নিয়ামক আপনি যেখানে খুশি সেখানেই থাকতে পারেন, এটি কেবল এই ক্ষেত্রে অ্যাডমিনটিচটিএমএল ফোল্ডারের অধীনে রয়েছে কারণ আপনি একটি সূচনা রুটটি সংজ্ঞায়িত করেছেন এর Pulsestorm_Adminhello_Adminhtmlকনফিগারেশন। এক্সএমএল। অ্যাডমিন ইউআরএল এর মতো তৈরি করতে আপনাকে যে কোনও অ্যাডমিন লেআউট হ্যান্ডলগুলি এবং কলগুলিও আপডেট করতে হবে getUrl()
জোনাথন হাসি

@ লেইডচ আমি আমার চুলগুলি টেনে আনছি তা বের করার চেষ্টা করে যে আমি যখন SUPEE-6788 এর অ্যাডমিন রাউটিং পরিবর্তন করি তখন কেন এই মডিউলটি কাজ করবে না আমি 404 ত্রুটি পাই get এটি একটি কাস্টম এইচটিএমএল চালান মুদ্রণের জন্য একটি সাধারণ মডিউল। github.com/gaiterjones/magento-htmlinvoice
পাজ

8

Magento SUPEE-6788 প্যাচ থেকে ফলস্বরূপ এবং কাস্টমাইজেশন সংঘাতগুলির জন্য বিশ্লেষণ / ফিক্স সরঞ্জাম এখানে।

https://github.com/rhoerr/supee-6788-toolbox

দ্রষ্টব্য: কোনও প্যাচ বা প্যাচ ফিক্স প্রয়োগ করার আগে, সর্বদা আপনার ওয়েবসাইট এবং ডাটাবেসের ব্যাকআপ নেওয়ার পরামর্শ দেওয়া হয়।

ঠিক করার দরকার কী তা আপনি কেবল বিশ্লেষণ করতে পারেন।

বিশ্লেষণ করতে: এসএসএইচ থেকে চালান:php -f fixSUPEE6788.php -- analyze

এটি দেখায় যে কোন ফাইলগুলির সমস্যা আছে এবং কীভাবে আপনি সেগুলি ঠিক করতে পারেন। এটি ঠিক করে না।

অথবা, আপনি পরিবর্তনগুলি / ঠিকানার জন্যও প্রয়োগ করতে পারেন।

পরিবর্তনগুলি প্রয়োগ করতে: এসএসএইচ থেকে চালান:php -f fixSUPEE6788.php -- fix

এটি বিশ্লেষণ করবে এবং স্বয়ংক্রিয়ভাবে সমাধানটি প্রয়োগ করবে।


তোমার দর্শন লগ করা জন্য ভালো শেয়ার + 1
অমিত বেড়া

এটি কি তবে এখনও এই জাতীয় মডিউলগুলির অ্যাডমিন পৃষ্ঠাগুলি 404 পৃষ্ঠা দেখায়
ওয়াসিক শাহরুখ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.