RSS + K2 , как можно вывести в RSS тег <yandex:full-text> ! Оплату гарантирую ...

  • 37 Ответов
  • 7759 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
Нужно вывести данный тег в RSS , аналогично как в <description> но только на полную новость !

Есть одно но, в статья K2 нету разделение на полную новость, все в одном окне, показывается в RSS и в новостях в качестве вводного текста , количество символов с полной новости !

Ниже код выводимой стандартной RSS

Спойлер
[свернуть]
« Последнее редактирование: 18.05.2012, 19:56:49 от SDKiller »

*

SDKiller

  • Moderator
  • *****
  • 2734
  • 320
  • ...ergo sum
Незачем прикладывать простыни с файлами, входящими в стандартный пакет.
Информации о версии вполне достаточно.

Ещё бы неплохо указать вашу версию К2.

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
Незачем прикладывать простыни с файлами, входящими в стандартный пакет.
Информации о версии вполне достаточно.

Версия Joomla: 1.5.24
Версия K2: 2.5

C файла components/com_k2/models/item.php  идут все значения в RSS , нужно както привязять поле description (без урезания символов) в тег <yandex:full-text>  ! Уже 2 часа экспериментирую, но толком ничего не получается !

Лента RSS http://bukpravda.cv.ua/news.feed

Помогите, оплачу WMZ сколько скажите (в разумных пределах)

*

SDKiller

  • Moderator
  • *****
  • 2734
  • 320
  • ...ergo sum
Яндекс всё равно не воспринимает RSS, генерируемый Joomla, так как у него свой формат.
Темы по этому поводу тут были (не только в разделе по К2).

Если специально для яндекса - надо переделывать, либо делать отдельно.
В понедельник, если желающих или готового решения не найдётся - icq в подписи.

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
Яндекс всё равно не воспринимает RSS, генерируемый Joomla, так как у него свой формат.
Темы по этому поводу тут были (не только в разделе по К2).

Если специально для яндекса - надо переделывать, либо делать отдельно.
В понедельник, если желающих или готового решения не найдётся - icq в подписи.

Мне не для яндекса, мне для www.ukr.net, там только этот параметр остался вбить, остальное все подходит для них !

*

SDKiller

  • Moderator
  • *****
  • 2734
  • 320
  • ...ergo sum
Кстати, с чего вы взяли, что нет в К2 разделения на вводный и полный текст?

« Последнее редактирование: 18.05.2012, 20:26:24 от SDKiller »

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
Кстати, с чего вы взяли, что нет в К2 разделения на вводный и полный текст?
Разделения (Readmore) есть, но в статьях его нету, сплошной текст, если ставить в K2 показывать полный текст, то ничего не менятся, когда не вставишь (Readmore), да й после вставки показывается инф. после (Readmore)! А нужно чтобы весь текст был !

Грубо говоря вся информация в таб. introtext

*

SDKiller

  • Moderator
  • *****
  • 2734
  • 320
  • ...ergo sum
В настройках самого компонента выберите


У вас будет 2 окна редактора - для вводного и полного текста и всё будет корректно обрабатываться



В модели item в функции prepareFeedItem() тоже вполне корректные условия, должно всё работать:

Код
		//Description
$item->description = '';

//Item image
if ($params->get('feedItemImage') && JFile::exists(JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'cache'.DS.md5("Image".$item->id).'_'.$params->get('feedImgSize').'.jpg')){
$item->description.= '<div class="K2FeedImage"><img src="'.JURI::base(true).'/media/k2/items/cache/'.md5('Image'.$item->id).'_'.$params->get('feedImgSize').'.jpg" alt="'.$item->title.'" /></div>';
}

//Item Introtext
if($params->get('feedItemIntroText')){
//Introtext word limit
if ($params->get('feedTextWordLimit') && $item->introtext){
$item->introtext=K2HelperUtilities::wordLimit($item->introtext,$params->get('feedTextWordLimit'));
}
$item->description.= '<div class="K2FeedIntroText">'.$item->introtext.'</div>';
}

//Item Fulltext
if($params->get('feedItemFullText') && $item->fulltext){
$item->description.= '<div class="K2FeedFullText">'.$item->fulltext.'</div>';
}

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
Так да, проблем бы не было, но уже более 1000 новостей и статей забито и делать 2 окна  :(, ну єто в крайнем случае пока !
Да и полный текст в тег description лезет, делится стилем , а мне нужно отдельно чтобы шел !

Я думал, что можно сделать отдельный вывод introtext без ограничений по символам, будет полный текст

Код
//Introtext word limit
if ($params->get('feedTextWordLimit') && $item->introtext){
$item->introtext=K2HelperUtilities::wordLimit($item->introtext,$params->get('feedTextWordLimit'));
}
$item->description.= '<div class="K2FeedIntroText">'.$item->introtext.'</div>';

*

SDKiller

  • Moderator
  • *****
  • 2734
  • 320
  • ...ergo sum
А здесь всё настроили как вам надо?


*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
А здесь всё настроили как вам надо?



Был бы полный текст,  да, а так его нету, и при положении показывать полный текст ничего не происходить, так как стоит показывать 40  символов у вводном тексте, если снять ограничения (водн. текст) показывается весь текст (с HTML, что не нужно)

Я уже думал переименовать  <description> на полный текст, но <description> мне тоже нужен !

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
Так да, проблем бы не было, но уже более 1000 новостей и статей забито и делать 2 окна  :(, ну єто в крайнем случае пока !
Да и полный текст в тег description лезет, делится стилем , а мне нужно отдельно чтобы шел !

Я думал, что можно сделать отдельный вывод introtext без ограничений по символам, будет полный текст

Код
//Introtext word limit
if ($params->get('feedTextWordLimit') && $item->introtext){
$item->introtext=K2HelperUtilities::wordLimit($item->introtext,$params->get('feedTextWordLimit'));
}
$item->description.= '<div class="K2FeedIntroText">'.$item->introtext.'</div>';

Кто возьмется ? Очень надо до понедельника !

*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Кто возьмется ? Очень надо до понедельника !
это Вы о чем
закомментировать две строчки?
Код: php-brief
 /* if ($params->get('feedTextWordLimit') && $item->introtext){
$item->introtext=K2HelperUtilities::wordLimit($item->introtext,$params->get('feedTextWordLimit'));
} */

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
это Вы о чем
закомментировать две строчки?
Код: php-brief
 /* if ($params->get('feedTextWordLimit') && $item->introtext){
$item->introtext=K2HelperUtilities::wordLimit($item->introtext,$params->get('feedTextWordLimit'));
} */

Ну не совсем, краткое описание остается, нужно в RSS добавить вывод полной новости (description без урезания символов) в тег <yandex:full-text>

Я с php на вы и мне сложно угадывать, так или не так !

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
Итого нужно:
1. В файле components/com_k2/models/item.php  сделать переменную description без ограничения по символам, тоисть полный текст !
2. В RSS libraries/joomla/document/feed/renderer/rss.php прописать ее в тег <yandex:full-text>

Может неправильно тех., но в теории так вижу

Говорите цену, делайте, оплата после результата !

*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Если $item->fulltext сейчас пуст, то попробуйте так  ^-^
Код: php-brief
if ($params->get('feedTextWordLimit') && $item->introtext){
$item->fulltext = $item->introtext;
$item->introtext=K2HelperUtilities::wordLimit($item->introtext,$params->get('feedTextWordLimit'));
}
$item->description.= $item->fulltext;

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
Если $item->fulltext сейчас пуст, то попробуйте так  ^-^
Код: php-brief
if ($params->get('feedTextWordLimit') && $item->introtext){
$item->fulltext = $item->introtext;
$item->introtext=K2HelperUtilities::wordLimit($item->introtext,$params->get('feedTextWordLimit'));
}
$item->description.= $item->fulltext;

Показывается весь текст, но с HTML,у требовании к ленте следующее


16.   <yandex:full-text> Полнотекст новости без HTML кода и спецсимволов </yandex:full-text>
a.   Обязательное поле.
b.   Содержит полный текст новости.
c.   Если в полнотексте присутствуют спецсимволы в явном виде, нужно использовать <![CDATA[ ТЕКСТ ]]>.
d.   Абзацы а полнотексте определяются пустой строчкой смотреть «Good_RSS_minimal.xml».

Замечание Весь текст что находится в элементах «<title>, <description>, <link>, <yandex:full-text>» должен иметь следующий вид.
1.   Все спецсимволы ( &, “,<,>. И тд.) в тексте должны быть декодированы.
2.   Если в тексте присутствуют спецсимволы ( &, “,<,>. И тд.) в явном виде, то текст должен браться в тег <![CDATA[ Текст заголовка с <&спецсимволами> в явном виде ]]>.

*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
$item->description  = strip_tags($item->description); так уберет теги HTML

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
$item->description  = strip_tags($item->description); так уберет теги HTML

Ну хорошо, а как в RSS поставить fuul текст

Код
	for ($i=0; $i<count($data->items); $i++)
{
if ((strpos($data->items[$i]->link, 'http://') === false) and (strpos($data->items[$i]->link, 'https://') === false)) {
$data->items[$i]->link = str_replace(' ','%20',$url.$data->items[$i]->link);
}
$feed.= " <item>\n";
$feed.= " <title>".htmlspecialchars(strip_tags($data->items[$i]->title), ENT_COMPAT, 'UTF-8')."</title>\n";
$feed.= " <link>".str_replace(' ','%20',$data->items[$i]->link)."</link>\n";
$feed.= " <guid>".str_replace(' ','%20',$data->items[$i]->link)."</guid>\n";
$feed.= " <description><![CDATA[".$this->_relToAbs($data->items[$i]->description)."]]></description>\n";

*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
$data->items[$i]->description должно содержать картинку и full текст
по идее должно все работать, если без картинки то $data->items[$i]->fulltext
что у вас не так

*

itckarpatia

  • Осваиваюсь на форуме
  • ***
  • 152
  • 4
$data->items[$i]->description должно содержать картинку и full текст
по идее должно все работать, если без картинки то $data->items[$i]->fulltext
что у вас не так

так не работает, воспринимается в RSS только $data->items[$i]->description

Eще, после внесения тега <yandex:full-text>, браузеры не хотят отображать ленту, только названия и описание ленты, я так полагаю, что воспринимают только стандартную ленту с тегами ?


Если так, то нужно значит в RSS сделать вывод отдельно c <yandex:full-text> , а стандартный оставить как есть !

Кто сможет помочь, я заплачу за роботу !
« Последнее редактирование: 19.05.2012, 17:34:34 от itckarpatia »

*

Dron79

  • Давно я тут
  • ****
  • 321
  • 37
  • Век живи - век учись!
http://joomlaforum.ru/index.php/topic,117487.msg1135388.html#msg1135388
смотрим вложение.

Исправил на более корректную ссылку. Staticlight.
« Последнее редактирование: 21.05.2012, 13:26:34 от staticlight »
кодинг на php.

*

allonge

  • Новичок
  • *
  • 2
  • 0
Таже проблема с K2.

Кто за оплату сможет реализовать в компоненте K2 добавления тега "полнотекст"

Версия Joomla 2,5

*

Dron79

  • Давно я тут
  • ****
  • 321
  • 37
  • Век живи - век учись!
Таже проблема с K2.

Кто за оплату сможет реализовать в компоненте K2 добавления тега "полнотекст"

Версия Joomla 2,5
Я смогу ...
кодинг на php.

*

artangel

  • Осваиваюсь на форуме
  • ***
  • 26
  • 0
Dron:
мне нужно сделать RSS ленту для сайта ukr.net
у меня стоит Joomla 1.5,20 и модуль К2

пишите на artangel.stas@gmail...
заранее спасибо
не падает тот, кто не летает

*

Dron79

  • Давно я тут
  • ****
  • 321
  • 37
  • Век живи - век учись!
есть у меня решение.
кодинг на php.

*

artangel

  • Осваиваюсь на форуме
  • ***
  • 26
  • 0
DRON : напишите мне на мыло :см профиль или выше я написал.. вопрос не бесплатный.  я вам не могу отправить ЛС на форуме (прав чтоли нет у меня таких?)
не падает тот, кто не летает

*

artangel

  • Осваиваюсь на форуме
  • ***
  • 26
  • 0
Спасибо ДРОНу, модуль помог. Укр.нет принял ленту от портала новостного. перелазил весь интрнет  - это хороший модуль и рабтает. сайт на Joomla 1.5
я так рад! (я в этих RSS и PHP не силен.)

благословений!
не падает тот, кто не летает

*

doomckiy

  • Новичок
  • *
  • 1
  • 0
DRON: спасай, аналогичная ситация! готов заплатить денег, отзовись, пожалуйстай. Мой емайл ua.doberman@gmail.com

*

Dron79

  • Давно я тут
  • ****
  • 321
  • 37
  • Век живи - век учись!
отправил на почту
кодинг на php.