2012-06-29 2 views
0

Я хотел добавить таблицу стилей CSS в тег заголовка, но добавляется к тегу body. Вот что я сделал: у меня есть контроллер «страны» с «индексом» действия и мой взгляд является index.phtmlhelpheet viewheet в zend framework

index.phtml содержит:

<?php 
$this->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css') 
      ->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojox/grid/resources/claroGrid.css'); 
echo $this->headLink(); 

Это приводит к тому, таблицы стилей, который будет добавлен в тег тег. Я хочу, чтобы эти таблицы стилей были добавлены к этому действию. Я не хочу включать эту таблицу стилей в свой layout.phtml Как я могу это сделать?

ответ

3

То, что вы сделали это правильно, но вы выводите headLink() в вашей точки зрения только после добавления таблицы стилей, которая является то, что выводит ссылки в неправильном месте. Измените свой код так, у вас есть:

В index.phtml:

$this->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css') 
     ->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojox/grid/resources/claroGrid.css'); 

А потом в layout.phtml (в разделе <head>, где вы хотите таблицы стилей ссылки появятся):

echo $this->headLink(); 
2

Вы добавляете это в неправильное место.
Если вы добавили таблицу стилей таким образом изнутри вашего .phtml, вы находитесь в теле документа.
Чтобы добавить таблицу стилей к голове одной страницы добавить таблицу стилей из кода действия внутри контроллера:

public function someAction() { 
    $this->view->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css'); 
} 

поочередно, если вы хотите добавить таблицу стилей для всех действий контроллера вы можете использовать тот же самый код в методе Init() вашего контроллера:

public function init() { 
    $this->view->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css');  
} 

вы можете использовать setStylesheet(), если вам необходимо изменить текущие таблицы стилей, или вы можете использовать prependStylesheet() или appendStylesheet().

Good Luck ...

+1

Вы также можете добавить контент-заполнитель в представление, так как он отображается перед макетом. –

+0

Извините, я предположил, что у него уже есть местозаполнитель в его макете. Кроме того, я не понимал, что код будет работать из представления (никогда не думал об этом), потому что я бы никогда не подумал о том, чтобы использовать этот вид кода в представлении. Однако я стою исправлен, спасибо – RockyFord