在magento的某个website中,已经有一个storeview A,现在要求在这个website下再创建一个新的storeview B,现在要求对于storeview B只有主页和分类页应用新的样式,其他页面还是用回storeview A的样式。

解决思路如下:

(1)             在skin和design下,为store B创建各一个新的folder,store B所有相关的样式文件都必须放在新的folder下。

(2)             重写app\code\core\Mage\Core\Controller\Varien\Action.php这个文件的function addActionLayoutHandles()如下:

 

 

[php] view plaincopy
 
  1. public function addActionLayoutHandles()  
  2.     {  
  3.         $update = $this->getLayout()->getUpdate();  
  4.   
  5.         // load store handle  
  6.         $update->addHandle('STORE_'.Mage::app()->getStore()->getCode());  
  7.   
  8.         // load theme handle  
  9.         $package = Mage::getSingleton('core/design_package');  
  10.           
  11.         $actionName=$this->getFullActionName();  
  12.         //通过action的名称判断当前是哪个页面, 如果当前的action是"cms_index_defaultIndex" 或 "catalog_category_view" 就使用新的theme  
  13.         if(   "cms_index_defaultIndex"==$actionName   
  14.                     && "catalog_category_view"==$actionName )   
  15.         {  
  16.             $package->setTheme("newThemeName");      
  17.         }      
  18.         $update->addHandle('THEME_'.$package->getArea().'_'.$package->getPackageName().'_'.$package->getTheme('layout'));  
  19.   
  20.         // load action handle  
  21.         $update->addHandle(strtolower($this->getFullActionName()));  
  22.   
  23.         return $this;  
  24.     }  
posted on 2015-01-09 09:25  闪电王国  阅读(159)  评论(0编辑  收藏  举报