回答:
あなたの質問への答えは間違いなくノーです、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
は、レイアウトハンドルが廃止されたことを明確に示しています。
Magento 2で現在行われている方法の説明については、Fabianの回答を参照してください。
まだこれで苦労している場合は、Magento 1と同じように使用できるようにcustomer_logged_inおよびcustomer_logged_outレイアウトハンドルを追加する簡単なモジュールを作成しました
楽しい !
他の人が指摘したように、これらのハンドルはなくなっています。Magento_Customerモジュールを見ると、登録リンクのようなブロックは常に追加されていますが、顧客がログインしている場合はレンダリングされないことがわかります。これは、ログイン状態に応じて要素を条件付きで表示するための推奨される方法です。
しかし、これは、他の場所で定義された名前に基づいてブロックを削除するための解決策ではありません。顧客がログインしlayout_load_before
ている$layout->addHandle('customer_logged_in')
場合は、そのコールのオブザーバーを使用して機能を再作成できます。
これは非常に愚かです。ブロック/テンプレート/リソースをロードする必要があるのは、logginやloggoutだけでなく、顧客のみが許可を得ている場合です。しかし、ユーザーにこれを表示する権限があるかどうかを確認するには、1000行のコードを記述する必要があります。ただただ美しい。