8

Magento で現在のページ識別子と現在のモジュールを取得する必要があります。

以下のコードを使用しました。

Mage::app()->getRequest()->getModuleName() - To get current module.
Mage::getSingleton('cms/page')->getIdentifier() - To get current page

その作業は、magento キャッシュを一度クリアすると、古いページとモジュールが表示されます。

例:

ホームページをチェックインすると、モジュールとして「cms」、ページとして「home」が表示されます。連絡先ページをクリックしても同じ結果が表示されるようになりました。

キャッシュをクリアして連絡先ページを確認すると、モデルとして「cms」が表示され、ページ識別子として「連絡先」が表示されます。

毎回キャッシュをクリアせずに現在のページ識別子とモジュールを取得する方法は?

4

4 に答える 4

12

現在のモジュールを取得するには:

Mage::app()->getFrontController()->getRequest()->getModuleName()

現在のCMSページを取得するには:

Mage::getSingleton('cms/page')->getIdentifier()
于 2012-07-05T07:34:08.817 に答える
4
 $pageID = Mage::getBlockSingleton('cms/page')->getPage()->getIdentifier(); 

これにより、現在のcmsページ識別子が返されます。

于 2012-08-17T11:12:59.293 に答える
2

ほとんどの場合、必要なブロックにコンストラクターを上書きする必要があります。次に例を示します。Mage_Catalog_Block_Navigation

だから、あなたの _constrct()

protected function _construct()
    {
        $this->addData(array(
            'cache_lifetime'    => false,
            'cache_tags'        => array(Mage_Catalog_Model_Category::CACHE_TAG, Mage_Core_Model_Store_Group::CACHE_TAG),
        ));
    }

次のようにする必要があります。

protected function _construct() {}
于 2012-04-30T15:43:28.970 に答える