Как убрать часть кода из rss ленты турбостраниц яндекс
Добрый вече! Помогите пожалуйста. На сайте есть турбостраницы, которые выводятся таким способом
Страница xml
Страница xml
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:yandex="https://news.yandex.ru" xmlns:media="https://search.yahoo.com/mrss/" xmlns:turbo="https://turbo.yandex.ru" version="2.0">
<channel>
<title>[[++site_name]]</title>
<link>[[++site_url]]</link>
<description>[[*description]]</description>
<language>ru</language>
[[!pdoPage?
&parents=`5,66,4,6,75`
&tpl=`tpl.turborss`
&limit=`100`
&tvPrefix=`tv.`
&includeTVs=`image`
]]
</channel>
</rss>
Чанк<item turbo="true">
<link>{$_modx->config.site_url ~ $id | url}</link>
<title>{'!rssText' | snippet : [ 'cnt' => ( $longtitle ?: $pagetitle ) ]}</title>
<turbo:extendedHtml>true</turbo:extendedHtml>
<turbo:content>
<![CDATA[
<header>
<h1>{($longtitle ?: $pagetitle)}</h1>
<figure>
<img src="{$_modx->config.site_url ~ $id | resource : 'image' | phpthumbon : 'w=640'}" />
</figure>
</header>
{'!rssCDATA' | snippet : [ 'cnt' => ( $id | resource : 'content' | replace : '"assets/images/' : ('"' ~ $_modx->config.site_url ~ 'assets/images/') ) ]}
]]>
</turbo:content>
</item>
Сниппет rssCDATA
<?php
if(empty($cnt)) return '';
$output = preg_replace( '/<a\s.*class="pseudo".*>(.+)<\/a>/U', '$1', $cnt );
$output = preg_replace( '/<a\s.*><\/a>/', '', $output );
return $output;
Сниппет rssText<?php
if(empty($cnt)) return '';
$output = str_replace( [ '&', '<', '>', '"', '\'' ], [ '&', '>', '<', '"', ''' ], html_entity_decode($cnt) );
return $output;
Как сделать так, что бы при выводе xml, в коде не выводился чанк формы обратной связи [[$formastranicy]] Комментарии: 4
Извините если скажу глупость, но мне кажется надо чанк удалить. Можно попробовать сделать это в плагине на событие OnWebPagePrerender, где, используя регулярные выражения, можно вырезать то, что содержит чанк.
Не совсе силен в php, как это можно реализовать? Надо что бы чанк выводился в обычной версии сайта и вырезался в содержимом турбостраниц?
Денис при вставке кода в текст, нужно помечать его специальным тэгом. Поправил на первый раз.
По поводу вопроса. Без знаний PHP тут конечно не обойтись.
Возможно немного поможет вот эта заметка
Возможно немного поможет вот эта заметка
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.