ম্যাজেন্টো 2: কীভাবে লেআউট হ্যান্ডেল গ্রাহক_ব্লগ_ইন ব্যবহার করবেন?


9

নেই Magento 2 যেমন হাতল আছে customer_logged_in ? যদি হ্যাঁ আমি কীভাবে এটি ব্যবহার করতে পারি?

আমি তৈরি করার চেষ্টা করেছি

../view/frontend/layout/customer_logged_in.xml

এবং সেখানে যুক্ত <referenceBlock name="content" remove="true" />

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

আমি কি ভুল করছি?

উত্তর:


9

আপনার প্রশ্নের উত্তর অবশ্যই না, নেই customer_logged_in হ্যান্ডেল নেই, আমি কোডটি খনন করেছি এবং কৌশলটি করতে পারে এমন কোনও লেআউট হ্যান্ডেল খুঁজে পেলাম না।

তার নীচে \dev\tests\static\testsuite\Magento\Test\Legacy\LayoutTest.phpআপনি নীচের কোডটি পেতে পারেন:

/**
 * List of obsolete nodes
 *
 * @var array
 */
protected $_obsoleteNodes = [
    'PRODUCT_TYPE_simple',
    'PRODUCT_TYPE_configurable',
    'PRODUCT_TYPE_grouped',
    'PRODUCT_TYPE_bundle',
    'PRODUCT_TYPE_virtual',
    'PRODUCT_TYPE_downloadable',
    'PRODUCT_TYPE_giftcard',
    'catalog_category_default',
    'catalog_category_layered',
    'catalog_category_layered_nochildren',
    'customer_logged_in',
    'customer_logged_out',
    'customer_logged_in_psc_handle',
    'customer_logged_out_psc_handle',
    'cms_page',
    'sku_failed_products_handle',
    'catalog_product_send',
    'reference',
];

আমার কাছে যা পরিষ্কারভাবে আমাদের জানায় যে customer_logged_in লেআউট হ্যান্ডেলটি এখন অপ্রচলিত।

এটি এখন কীভাবে করা হয় ম্যাজেন্টো 2 তে ব্যাখ্যা করার জন্য ফ্যাবিয়ার উত্তর দেখুন।


1
এই অনুরোধগুলি যখন গ্রাহক লগ ইন করে এবং যখন লগ আউট করে , প্রতিটি অনুরোধে নয় তখন এই ইভেন্টগুলি ট্রিগার করা হয়।
ফ্যাবিয়ান শেমংলার

8

যদি এখনও কেউ এর সাথে লড়াই করে চলেছেন তবে আমি একটি দ্রুত মডিউল লিখেছিলাম যা আপনাকে গ্রাহক_ব্লগ_ইন এবং গ্রাহক_ব্লগ_আউট লেআউটটি ম্যাজেন্টো 1 এর মতো ব্যবহারের জন্য পরিচালনা করে

http://frankclark.xyz/modules/magento-2-get-customer_logged_in-and-customer_logged_out-layout-handles

উপভোগ করুন!


8

অন্যরা যেমন উল্লেখ করেছে, এই হ্যান্ডলগুলি এখন চলে গেছে। আপনি যদি Magento_Customer মডিউলটি দেখুন, আপনি দেখতে পাবেন যে নিবন্ধকরণ লিঙ্কের মতো ব্লক সর্বদা যুক্ত করা হয় তবে গ্রাহক লগ ইন থাকলে রেন্ডার করা হয় না । দেখে মনে হচ্ছে এটি এখন লগইন রাষ্ট্রের উপর নির্ভর করে শর্তাধীন উপাদানগুলি দেখানোর পছন্দসই উপায়।

তবে এটি অন্য কোনও নামে সংজ্ঞায়িত তাদের নামের উপর ভিত্তি করে ব্লকগুলি সরানোর কোনও সমাধান নয়। গ্রাহক লগ ইন থাকলে আপনি সেই layout_load_beforeকলগুলির জন্য একটি পর্যবেক্ষকের সাথে বৈশিষ্ট্যটি পুনরায় তৈরি করতে $layout->addHandle('customer_logged_in')পারেন।


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

0

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

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