0

这是我的 LoadSkin 视图助手。我使用这个类来调用 XML 中的 CSS 文件。见下文:

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 文件:

  • 默认.css
  • 文本.css
  • 表单.css

但是循环是错误的。首先,他采用 default.css。在他使用 default.css 和 text.css 之后。最后,他采用了 default.css、text.css 和 form.css。但我只需要一个循环正常工作。

看看下面发生了什么:

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

有人可以帮忙吗?

4

1 回答 1

1

那是因为您在 foreach 循环中回显。HeadLink 视图助手是您在循环的每次迭代中添加/添加 css int it 的容器,因此在每次回显中,您都在回显包含所有先前添加的 css 的整个容器,因此改为执行此操作

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

然后在你的layout.phtml里面做

<head>
<?echo $this->headLink() ?>
</head>
于 2012-07-14T01:36:38.643 回答