2016-11-16 262 views

回答

0

使用下面的代碼佈局添加CSS類或ID到身體的標籤編程

<body> 
    <attribute name="class" value="custom-body-class" /> 
    <attribute name="id value="custom-html-id"/> 

例如 - 在佈局文件夾打開文件customer_account.xml MagentoDir>供應商>的magento>模塊顧客>視圖>前端>佈局

後打開customer_account.xml科幻樂你可以看到添加CSS類

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd" label="Customer My Account (All Pages)" design_abstraction="custom"> 
    <body> 
     <attribute name="class" value="account"/> 
+2

編程 - 用PHP代碼的意思! – valir

3

您可以將類從塊通過重寫_prepareLayout方法添加到身體:

public function _prepareLayout(){ 
    $this->pageConfig->addBodyClass('my-class'); 
    return parent::_prepareLayout(); 
} 
0

見我創建了下面的例子,這個插件增加(bin/magento模塊:啓用SamGranger_StoreCodeBodyClass + bin/magento setup:di:compile)。將插件放入app/code/SamGranger並運行常用腳本以啓用它(bin/magento module:enable SamGranger_StoreCodeBodyClass + bin/magento setup:di:compile)。

2

我創建了一個觀察者layout_load_before如下:

... 
public function __construct(
    \Magento\Framework\View\Page\Config $pageConfig 
) { 
    $this->_pageConfig = $pageConfig; 
} 

public function execute(\Magento\Framework\Event\Observer $observer) 
{ 
    $this->_pageConfig->addBodyClass('my-new-body-class'); 
} 
+1

要注意的正確事件是「layout_load_before」,而不是「load_layout_before」。 – AfBu

+0

謝謝@AfBu。我只是修復它。 –

相關問題