Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   Вырезать часть контента новости (http://forum.typo3.ru/showthread.php?t=8838)

_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 -->

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


Часовой пояс GMT +4, время: 05:50.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot