Magento在CMS Page中增加使用者資訊變數

2021-08-31 02:22:47 字數 1588 閱讀 7933

magento的cms頁面和static block頁面中可以用一些指示符來得到相應的資訊,如} }等。

在mage_cms_block_page類的_tohtml方法中可以找到下面的**:

$helper = mage::helper('cms');

$processor = $helper->getpagetemplateprocessor();

$html = $processor->filter($this->getpage()->getcontent());

...

先獲得負責頁面解析的processor物件,然後由processor物件負責對頁面中的指示符進行解析和替換工作。

查詢cms helper類的getpagetemplateprocessor方法,我們得知processor物件是mage_cms_model_template_filter類的例項。mage_cms_model_template_filter繼承自mage_core_model_email_template_filter類,在mage_core_model_email_template_filter類中定義了負責解析相應指示符的一些方法:

public function blockdirective($construction)

public function layoutdirective($construction)

public function vardirective($construction)

等,可以看到其實cms filter裡面已經定義了var指示符,但是我們在cms頁面的content裡面插入}並不能正確被解析,原因是customer變數的值沒有設定。

我們只要新建乙個模組,繼承mage_core_model_email_template_filter類,並設定customer變數的值為當前使用者即可。

public function __construct()

同時需要新建自定義的helper類,並重寫getpagetemplateprocessor方法,返回我們自己的filter類:

public function getpagetemplateprocessor()

最後,我們重寫mage_cms_block_page類的_tohtml方法:

在config.xml中加入:

glamour_glscms_block_cms_page

class glamour_glscms_block_cms_page extends mage_cms_block_page

return $html;}}

我們就可以直接在cms內容裡加入customer的一些資訊了。如:}

}magento在解析cms頁面時,會把上面的指示符替換為當前使用者的相應屬性。

Magento在CMS Page中增加使用者資訊變數

magento的cms頁面和static block頁面中可以用一些指示符來得到相應的資訊,如 等。在mage cms block page類的 tohtml方法中可以找到下面的 view plain copy to clipboard print?helper mage helper cms pr...

Magento在CMS Page中增加使用者資訊變數

magento的cms頁面和static block頁面中可以用一些指示符來得到相應的資訊,如 等。在mage cms block page類的 tohtml方法中可以找到下面的 helper mage helper cms processor helper getpagetemplateproce...

在Magento中使用Collection

1.對模型對應的表集合進行排序 collection mage getmodel module model name getcollection collection getselect order last name asc 2.對多個字段進行排序 collection mage getmodel...