ম্যাজেন্টো 2 কাস্টম প্রশাসনের অ্যাকশন ড্যাশবোর্ডে পুনঃনির্দেশিত


18

আমি ম্যাজেন্টো 2 ফান্ডামেন্টাল ডেভলপমেন্ট কোর্স নিচ্ছি এবং অ্যাডমিন রাউটার / কন্ট্রোলার মহড়া পুরানো মনে হচ্ছে। রাউটারটি কাজ করে তবে কন্ট্রোলার তা করে না, এটি সর্বদা অ্যাডমিন হোমপেজে পুনরায় রুট করে। রাউটার অ্যাপ্লিকেশন / কোড / প্রশিক্ষণ / পরীক্ষা / ইত্যাদি / প্রশাসনিক / রুট.এক্সএমএল জন্য কোড :

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/framework/App/etc/routes.xsd">
<router id="admin">
    <route id="test" frontName="test">
        <module name="Training_Test" before="Magento_Backend" />
    </route>
</router>
</config>

প্রশাসক নিয়ন্ত্রক অ্যাপ্লিকেশন / কোড / প্রশিক্ষণ / পরীক্ষা / নিয়ন্ত্রক / অ্যাডমিনটিচটিএমএল / অ্যাকশন / সূচক.এফপি এর জন্য কোড :

<?php

namespace Training\Test\Controller\Adminhtml\Action;
class Index extends \Magento\Backend\App\Action
{

public function execute()
    {
    die("test reached controller");
    }
protected function _isAllowed() {
    return true;
    }
}

আমি যখন অ্যাডমিন / টেস্ট / অ্যাকশন / ইনডেক্সের অ্যাডমিন url এ যাই তখন এটি কেবল পুনঃনির্দেশ করে এবং কিছুই ঘটে না। যদি আমি কোনও কনস্ট্রাক্টর যুক্ত করে xdebug ব্যবহার করি তবে এটি প্রদর্শিত হবে যে এটি কন্ট্রোলার কনস্ট্রাক্টরের কাছে পৌঁছেছে তবে এটি কখনই নির্বাহকারী অংশটি করে না। আমি কী মিস করছি?


আমি আপনার কোড ফাংশনে আশা করি_এই অনুমোদিত return উদাহরণস্বরূপ "রিটার্ন" নির্দেশনা অনুপস্থিত
কান্দি

@ কেডি হ্যাঁ হ্যাঁ, ধন্যবাদ। এটি দেখাতে আমার প্রশ্ন সম্পাদনা করেছেন।
কেভিন চাভেজ 16

উত্তর:


22

এটি ঘটবে কারণ 'ম্যানুয়ালি ইউআরএল টাইপ করার সময়' সিক্রেট কী 'অনুপস্থিত। গোপন কীটি বৈশিষ্ট্য ডিফল্টরূপে সক্রিয় করা হয় এবং এখানে অক্ষম করা যেতে পারে: Stores => Configuration => Advanced => Admin => Security => Add Secret Key to URLs। তারপরে আপনার ক্রিয়াটি পৌঁছাতে সক্ষম হওয়া উচিত।


@ অ্যালেক্স পালিয়ারুশ, সুরক্ষা কী সক্ষম হয়ে গেলে কীভাবে এই কাজটি করবেন??
আসওয়ানথ

@ অ্যাসওয়ান্ট কেবল আপনার ক্রিয়াটি মেনুতে যুক্ত করুন এবং এটিতে ক্লিক করুন। এই ক্ষেত্রে ম্যাজেন্টো অনুরোধে যথাযথ সুরক্ষা কী যুক্ত করবে
অ্যালেক্স পালিয়ারুশ

@ অ্যালেক্সপালিয়ারুশ ধন্যবাদ এটি আমার পক্ষে কাজ করে .. এবং আমার সময়
বাঁচায়

এটি সমস্যা ছিল তবে অনুশীলনে এই কোর্সটি কোর্সটি কেন বলে না? আমি এটি যাচাই করতে কয়েক ঘন্টা হারিয়েছি ... গ্রারর্রার
বিনোদ - GoFundMonica

নিখুঁত উত্তর!!! +1 :) আমার দিনটি তৈরি করেছে
সাগরপঞ্চল

12

ইন router.xmlফাইল ( companyName/customModule/etc/adminhtml/router.xml) আমার জন্য সমাধান রুট আইডি থাকা ছিল এবং frontName একই মান আছে। আপনার ক্ষেত্রে এটি হবে:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/App/etc/routes.xsd">
    <router id="admin">
        <route id="asw_advanved" frontName="asw_advanved">
            <module name="Asw_Sample" before="Magento_Backend"/>
        </route>
    </router>
</config>

পরিবর্তিত <route id="Bmanager" frontName="bmanager">হয়েছে <route id="bmanager" frontName="bmanager">এবং এখন প্রশ্নবঙ্গীর বর্ণনা অনুযায়ী আমি একটি বেসিক নিয়ামক কাজ করতে পারি। আমার কাস্টম নিয়ন্ত্রকদের সাথে এখনও ভাগ্য নেই। সম্পাদনা করুন: আসলে আমার এক কাস্টম নিয়ামক কিছু ত্রুটি দেওয়া শুরু করেছিলেন। কোনও এররার ছাড়াই পুনর্নির্দেশের চেয়ে অনেক ভাল।
অ্যাড্রিয়ান মোইসা


2

ব্যাকএন্ডে (অ্যাডমিনটিএমটিএল) মডিউলগুলি / কার্যকারিতা অ্যাক্সেস করার চেষ্টা করার সময়, ম্যাগেন্টো গোপনীয়তার উপস্থিতি পরীক্ষা করে Form Keys এবং যদি / যখন কেউ কোনও ক্রিয়া অ্যাক্সেস করার চেষ্টা করে এবং কোনও ফর্মকি সরবরাহ করে না (যেমন: ইউআরএলকে হটলিংক করা) এবং / বা একটি অবৈধ ফর্মকি সরবরাহ করে - প্রশাসক ইউটিএক্সের নির্ধারিত স্টার্টআপ পৃষ্ঠাটিতে (যা সাধারণত ড্যাশবোর্ড পৃষ্ঠা হয়) অ্যাডমিনটিচটিএমএল অ্যাস্ট্রাক্ট অ্যাকশন (ম্যাজেন্টো \ ব্যাকএন্ড \ অ্যাপ \ অ্যাবস্ট্রাক্ট অ্যাকশন) সরবরাহ করবে

[ব্যবহারকারীদের ব্যাকএন্ডের যে অংশগুলিতে অ্যাক্সেস নেই সেগুলি অ্যাক্সেস করা থেকে বিরত রাখতে এই প্রক্রিয়াটি একটি "সুরক্ষা চেকপয়েন্ট" পরিবেশন করে]


অ্যাডমিন ইউআইএক্স মেনু থেকে বিকল্পগুলি অ্যাক্সেস করার সময় - ম্যাজেন্টো আপনার জন্য স্বয়ংক্রিয়ভাবে ফর্মকি যুক্ত করবে।


ফর্মকি চেক রোধ করতে আপনার কাছে দুটি বিকল্প রয়েছে:

(ক) ফর্মকি বৈধকরণ বন্ধ করুন

ন্যাভিগেশন: স্টোর -> সেটিংস: কনফিগারেশন -> উন্নত: প্রশাসক -> সুরক্ষা -> সেটআপ "URL গুলির গোপন কী যুক্ত করুন" "না" থেকে

এটি মনে রাখা খুব জরুরি যে এটি করা গোপন কী বৈধকরণ বন্ধ করে দেবে এবং তাই আপনার আবেদনটি দুর্বল করে তুলতে পারে

কীভাবে ফর্মকি বৈধকরণ বন্ধ করবেন

(খ) আপনার নিয়ামকের জন্য ফর্মকি বৈধকরণ বন্ধ করুন

ফর্মকি চেক থেকে আপনার প্রশাসনের নিয়ামকটির "ublic _ সর্বজনীন কর্ম" বৈশিষ্ট্যে আপনি যে ক্রিয়াটি ছাড় করতে চান তা উল্লেখ করুন।

সুরক্ষিত p _publicAitions = ['ENTER_NAME_OF_ACTION'];

কোড উদাহরণ:

class Index extends \Magento\Backend\App\Action
{
    protected $_publicActions = ['index'];

    public function execute()
    {
        echo "My Hello World! Controller";
    }

}

1

সিকিউরিটি কীটি সক্ষম হয়ে রাউটিং পুনঃনির্দেশের সমস্যা হ'ল মেনু.এক্সএমএল-এ / ইত্যাদি / অ্যাডমিনটিচটিএমএল / এর অধীনে অ্যাকশন url সেট করা is

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
    <menu>
        <add id="Mycompany_Mymodule::top_level" module="Mycompany_Mymodule" resource="Magento_Backend::content" sortOrder="9999" title="My Module" parent="Magento_Sales::sales"/>
        <add action="mycompany_mymodule/profile/index" id="Mycompany::mycompany_mymodule_profile" module="mycompany_Mymodule" parent="Mycompany_Mymodule::top_level" resource="Magento_Backend::content" sortOrder="9999" title="My Module"/>
    </menu>
</config>

গুরুত্বপূর্ণ মানটি মেনু আইটেমের ক্রিয়া পরামিতি। আইডি প্যারামিটারে রুটস.এক্সএমএল হিসাবে ঘোষিত মডিউলটির নাম সেট করতে মনোযোগ দিন। আমার ক্ষেত্রে: "মাইকম্পানি_মিডিউড"

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="admin">
        <route frontName="mymodule" id="mycompany_mymodule">
            <module before="Magento_Backend" name="Mycompany_Mymodule"/>
        </route>
    </router>
</config>

0

<input name="form_key" type="hidden" value="<?php echo $block->escapeHtml($block->getFormKey()) ?>" /> সাহায্য করবে

তবে আপনি বিক্রেতা / ম্যাজেন্টো / মডিউল-ব্যাকএন্ড / অ্যাপ / অ্যাবস্ট্রাক্টঅ্যাকশন.এফপিতে একটি ইটপোপিং যোগ করতে পারেন

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