2012-07-13 128 views
0

這是我的LoadSkin視圖助手。我使用這個類來調用XML中的CSS文件。請看下圖:LoadSkin循環錯誤

public function loadSkin($skin) 
{ 
    $skinData = new Zend_Config_Xml('./skins/' . $skin . '/skin.xml'); 
    $stylesheets = $skinData->stylesheets->stylesheet->toArray(); 

    if(is_array($stylesheets)) 
    { 
     foreach($stylesheets as $stylesheet) 
     { 
      echo $this->view->headLink()->appendStylesheet('/skins/' . $skin . 
        '/css/' . $stylesheet); 
     }  
    } 
} 

但我有一個問題,我有3個CSS文件:

  • default.css
  • text.css
  • form.css

但循環是錯誤的。首先他採用default.css。在他拿到default.css和text.css之後。最後他接受了default.css,text.css和form.css。但我只需要一個循環正常工作。

看看下面有什麼的發生:

http://i.imgur.com/KXVSe.png

有人能幫助呢?

回答

1

這是因爲你在foreach循環內回顯。 HeadLink視圖助手在每次循環容器你有附加/添加CSS詮釋它,因此在每個回波你是呼應它包含因此所有以前添加的CSS做到這一點,而不是

if(is_array($stylesheets)) 
    { 
     foreach($stylesheets as $stylesheet) 
     { 
      $this->view->headLink()->appendStylesheet('/skins/' . $skin . 
        '/css/' . $stylesheet); 
     }  
    } 

然後,整個容器在你的layout.phtml裏面做

<head> 
<?echo $this->headLink() ?> 
</head>