$ sf_response-> addStyleSheet () не работает в SF 1.4? - PullRequest
1 голос
/ 20 января 2010

Кто-нибудь знает, как добавить таблицы стилей в шаблон с Symfony 1.4?

Я перепробовал все, что только мог придумать, от изменения frontend / config / view.yml до изменения самого шаблона - оба работают.

Я видел из моих поисков, что у других людей была такая же проблема. Похоже, что есть какие-то противоречия между использованием include_stylesheets и use_stylesheets - однако это нигде не задокументировано AFAIK.

Ответы [ 3 ]

5 голосов
/ 20 января 2010

Изменить:

Хорошо, я думаю, что понял. Вы должны добавить include_stylesheets() в раздел head вашего макета файла:

<html>
   <head>
       <title>This is the title</title>
       <?php include_stylesheets() ?>
   </head>
   <body>
   <!-- ... -->

Затем в файле шаблона вы используете use_stylesheet(), чтобы добавить конкретную таблицу стилей для этого шаблона:

<?php use_stylesheet('/path/to/stylesheet.css') ?>

Из документации API :

include_stylesheets()
Выводит теги <link> для всех таблиц стилей, настроенных в view.yml или добавленных в объект ответа.

use_stylesheet()
Добавляет таблицу стилей в объект ответа.

То же самое для Javascript.


Согласно документации API он все еще должен работать в версии 1.4, sfWebResponse все еще имеет этот метод:

addStylesheet ($file, $position, $options)   
  $file   The stylesheet file  
  $position   Position   
  $options    Stylesheet options  
Adds a stylesheet to the current web response.

По крайней мере, метод существует.
в чем именно проблема?: Вы получаете сообщение об ошибке, если хотите вызвать этот метод, или таблица стилей просто не добавлена?

4 голосов
/ 20 января 2010

http://www.symfony -project.org / учебник / 1_4 / EN / обновить # removal_of_the_common_filter

Начиная с 1.4, ваши javascript и таблицы стилей больше не добавляются автоматически в ваш тег head. Вместо этого вам нужно включить в свой макет следующее, где вы хотите разместить их:

<?php include_javascripts() ?>
<?php include_stylesheets() ?>

и на всякий случай, если заголовок вашего сообщения не был опечаткой, вы можете использовать addStylesheet ('...') из ответа:

$sf_response->addStylesheet('main');
0 голосов
/ 20 января 2010

$sf_context->getResponse()->addStylesheet('style.css')

$sf_context->getResponse()->addJavascript('script.js')

...