Вывод RSS из шаблона SMARTY

svtol

Новичок
Вывод RSS из шаблона SMARTY

Пытаюсь выводить RSS через шаблон Смарти:
PHP:
header("Content-type: text/xml; charset=windows-1251"); 
 $smarty->display("blog2/rss_export.tpl");
Шаблон:
Код:
<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
...


Код:
Requesting [url]http://blog.1nsk.ru/rss/[/url] .. Ok
Reply received (reply time: 469 ms)
-----------------------------------
HTTP/1.1 200 OK
Server: nginx/0.5.10
Date: Wed, 18 Apr 2007 03:17:39 GMT
Content-Type: text/xml; charset=windows-1251
Connection: close
X-Powered-By: PHP/4.3.10-19
Set-Cookie: PHPSESSID=6c81d86f08b706bdf9db3853b0dcbec9; path=/
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Last-Modified: Wed, 18 Apr 2007 03:17:39GMT




<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
....
не могу понять откуда эти пустые строки.

http://feedvalidator.org/ ругается:

This feed does not validate.
line 3, column 0: XML parsing error: <unknown>:3:0: xml declaration not at start of external entity [help]
<?xml version="1.0" encoding="windows-1251"?>
Сам поток можно посмотреть по адресу http://blog.1nsk.ru/rss/
 

zerkms

TDD infected
Команда форума
а не корректнее ли xml генерировать с помощью специально предназначенных для этого средств

ps: ))))))))))
 

WP

^_^
Да во норкоман! :) Выводить XML из Smarty... жуть. Мог бы и без средств сгенерировать простым алгоритмом. Хотя есть куча генераторов.

Winamp play Ennio Morricone - For A Few Dollars More
 

svtol

Новичок
Автор оригинала: WP
Да во норкоман! :) Выводить XML из Smarty... жуть. Мог бы и без средств сгенерировать простым алгоритмом. Хотя есть куча генераторов.
В смарти есть такая штучка как кеширование, потому он и был заюзан.
Блин все такие умные, о каких то генераторах говорят.
Ну назовите хоть один.
 

Alexandre

PHPПенсионер
Last-Modified: Wed, 18 Apr 2007 03:17:39GMT




<?xml version="1.0" encoding="windows-1251"?>
правильно ругается - берется три пустых строки.

а выведи просто произвольный xml из смарти. посмотри что получится. Есть у меня подозрение, что сабака зарыта в символах <? ?>

попробуй удалить строку <?xml version="1.0" encoding="windows-1251"?> и посмотри что выведет смарти
 

Фанат

oncle terrible
Команда форума
а не корректнее ли xml генерировать с помощью специально предназначенных для этого средств
прекольна
поклонники Смарти, в числе прочих его достоинств, рассказывают всем, что можно генерить любое представление одних и тех же данных.
а как до дела доходит - тут оказывается, специально предназначенные средства нужны
 

svtol

Новичок
гы :)

Убрал первую строку, вот результат:
--------------
01
02 <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
-----------------

-~{}~ 18.04.07 16:53:

передал первые двес троки в смарти как пременную а там её вонзил, один перенос строки лишний все же остался
 

Alexandre

PHPПенсионер
Убрал первую строку, вот результат:
такой результат и должен быть, одна пропущенная строка между заголовком и телом HTTP запроса.

сформируй все без смарти, используй fetch() а не display()

а далее одним оператором выведи отдельно строку <?xml version="1.0" encoding="windows-1251"?>
а вторым результат отработки смарти,
ну прям детский сад какой-то... передавать в смарти то, от чего оно с ума сходит... :)
 

svtol

Новичок
Автор оригинала: Alexandre
такой результат и должен быть, одна пропущенная строка между заголовком и телом HTTP запроса.

сформируй все без смарти, используй fetch() а не display()

а далее одним оператором выведи отдельно строку <?xml version="1.0" encoding="windows-1251"?>
а вторым результат отработки смарти,
ну прям детский сад какой-то... передавать в смарти то, от чего оно с ума сходит... :)
ну кто ж знал что его это с ума сводит.
большОй пасиб - помогло.

-~{}~ 18.04.07 18:02:

вопрос номер 2:
при fetch() не работают модификаторы некоторые, в частности |escape:"html"

че делать?
 

WP

^_^
А это так всегда, там после закрывающего тега php в конце начального комментария идет перевод строки.
 

ustas

Элекомист №1
Re: Вывод RSS из шаблона SMARTY

и еще не забудь функцию strip

Часто вебдизайнеры сталкиваются с проблемой, что пробелы и переносы строк влияют на отображение HTML в броузере ("фишки" броузера), то есть может понадобится склеить все теги в шаблоне вместе, чтобы получить желаемый результат. Но в результате получается нечитаемый или трудноредактируемый шаблон.

В выводимом тексте, заключенном между тэгами {strip} и {/strip}, удаляются повторные пробелы и переносы строк, перед отображением. Так вы можете сохранив шаблон читаемым не волноваться насчет лишних пробелов.
 

svtol

Новичок
Re: Re: Вывод RSS из шаблона SMARTY

Автор оригинала: ustas
и еще не забудь функцию strip

Часто вебдизайнеры сталкиваются с проблемой, что пробелы и переносы строк влияют на отображение HTML в броузере ("фишки" броузера), то есть может понадобится склеить все теги в шаблоне вместе, чтобы получить желаемый результат. Но в результате получается нечитаемый или трудноредактируемый шаблон.

В выводимом тексте, заключенном между тэгами {strip} и {/strip}, удаляются повторные пробелы и переносы строк, перед отображением. Так вы можете сохранив шаблон читаемым не волноваться насчет лишних пробелов.
спасибо за совет
 
Сверху