Вход

Просмотр полной версии : Вырезать часть контента новости


_Ra
26.08.2010, 17:26
Подскажите, с помощью какой функции вырезать теги и часть текста из новости для експорта в RSS. Сейчас новость в таком виде пишет редактор:
<p>Полный текст новости.</p>
<object width="425" height="344">...код видео с youtube...</object>
Отмеченое красным необходимо удалить. Это нужно для експорта в рсс-поток для Яндекс.Новости (Технические требования Яндекса:http://partner.news.yandex.ru/tech.pdf)
Експорт делаю так:
yandexnews = PAGE
yandexnews {
typeNum = 110
10 >
10 < plugin.tt_news
10 {
useHRDates = 1
useHRDatesSingle = 1
dontUseBackPid = 1
general_stdWrap >
displayXML {
rss2_tmplFile = путь/rss_2_yandex.tmpl
subheader_stdWrap.crop >
}
}
10.pid_list >
10.pid_list = 43
10.singlePid = 42
10.defaultCode = XML

config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}
В шаблоне:
<yandex:full-text>###NEWS_CONTENT###</yandex:full-text>

Valery Romanchev
26.08.2010, 20:23
у PAGE есть stdWrap
можно передавать контент своему PHP скрипту
который прицеплятеся к
stdWrap (см доку по stdWrap, дале гугле за примером TS и PHP кода)

пример

в TS

page.includeLibs.user_textWrap = fileadmin/templates/xxx.php
page.stdWrap.preUserFunc = user_textWrap

PHP код

function user_textWrap($retstr,$conf ) {
if ($GLOBALS['TSFE']->id != 1) $retstr = str_replace('align="center"', 'class="to-center"', $retstr);
return $retstr;
}

_Ra
27.08.2010, 15:05
Спасибо за ответ! К сожалению, я не силен в php. Задачу решил таким образом:
yandexnews = PAGE
yandexnews {
typeNum = 110

10 >
10 < plugin.tt_news
10 {
useHRDates = 1
useHRDatesSingle = 1
dontUseBackPid = 1
general_stdWrap.stripHtml = 1

displayXML {
rss2_tmplFile = путь/rss_2_yandex.tmpl
subheader_stdWrap.crop >
}
}
10.pid_list >
10.pid_list = 43
10.singlePid = 42
10.defaultCode = XML

config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}

rss_2_yandex.tmpl :
<!-- ###TEMPLATE_RSS2### begin -->###XML_DECLARATION###
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:yandex="http://news.yandex.ru">
<channel>
<!-- ###HEADER### begin -->
<title>###SITE_TITLE###</title>
<link>###SITE_LINK###</link>
<description>###SITE_DESCRIPTION###</description>
###SITE_LANG###
<image>
<title>###SITE_TITLE###</title>
<url>###IMG###</url>
<link>###SITE_LINK###</link>
<width>###IMG_W###</width>
<height>###IMG_H###</height>
<description>###SITE_DESCRIPTION###</description>
</image>
###NEWS_LASTBUILD###
<!-- ###HEADER### end -->
<!-- ###CONTENT### begin -->
<!-- ###NEWS### begin -->
<item>
<title>###NEWS_TITLE###</title>
<link>###NEWS_LINK###</link>
<description>###NEWS_SUBHEADER###</description>
<yandex:full-text>###NEWS_CONTENT###</yandex:full-text>
###NEWS_CATEGORY###
<pubDate>###NEWS_DATE###</pubDate>
###NEWS_RSS2_ENCLOSURES###
</item>
<!-- ###NEWS### end -->
<!-- ###CONTENT### end -->
</channel>
</rss><!-- ###TEMPLATE_RSS2### end -->

Посмотрим, примет ли Яндекс такой поток :)