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

2021-08-25 17:55:04 字數 2444 閱讀 9499

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

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

view plain

copy to clipboard

print?

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

$processor = $helper ->getpagetemplateprocessor();

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

...

$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類中定義了負責解析相應指示符的一些方法:

view plain

copy to clipboard

print?

public

function blockdirective( $construction )

public

function layoutdirective( $construction )

public

function vardirective( $construction )

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變數的值為當前使用者即可。

view plain

copy to clipboard

print?

public

function __construct()

public function __construct()

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

view plain

copy to clipboard

print?

public

function getpagetemplateprocessor()

public function getpagetemplateprocessor()

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

在config.xml中加入:

view plain

copy to clipboard

print?

<

cms>

<

rewrite

>

<

page

> glamour_glscms_block_cms_page

page

>

rewrite

>

cms>

glamour_glscms_block_cms_page

view plain

copy to clipboard

print?

class glamour_glscms_block_cms_page extends mage_cms_block_page

return

$html ;

} }

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方法中可以找到下面的 helper mage helper cms processor helper getpagetemplateproce...

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...