Zend Framework: как удалить одну таблицу стилей из помощника HeadLink - PullRequest
6 голосов
/ 21 июня 2011

У меня в Controller init () список общих стилей:

$this->view->headLink()->setStylesheet('/style/style.css');
$this->view->headLink()->appendStylesheet('/style/style2.css');
$this->view->headLink()->appendStylesheet('/style/style3.css');
$this->view->headLink()->appendStylesheet('/style/forms.css');
$this->view->headLink()->appendStylesheet('/style/ie_patches.css','all','lte IE 7');

мне нужен способ удалить одну из таблиц стилей из стека позже в одном из действий этого контроллера.

Ценю вашу помощь, извините за мой английский

Ответы [ 3 ]

7 голосов
/ 21 июня 2011

ИЛИ вы можете использовать

$this->view->headLink()->offsetUnset($offsetToBeRemoved); // offsetToBeRemoved should be integer

Чтобы узнать offsetToBeRemoved, вы можете либо получить итератор ($this->view->headLink()->getIterator()), либо контейнер $this->view->headLink()->getContainer()), пройти через него и получить ключ, которыйинтересует.

4 голосов
/ 21 июня 2011

Например, если вы хотите удалить '/style/style2.css', вы можете сделать это следующим образом:

    $headLinkContainer = $this->view->headLink()->getContainer();
    unset($headLinkContainer[1]);

Это работает, потому что контейнер (т.е. экземпляр Zend_View_Helper_Placeholder_Container)extends ArrayObject .Это означает, что вы можете манипулировать элементами headLink, как если бы вы использовали массив.

Надеюсь, это поможет.

3 голосов
/ 20 февраля 2012

Вы также можете установить пустой контейнер следующим образом:

$this->view->headLink()->setContainer(
    new Zend_View_Helper_Placeholder_Container()
);
...