Перейти к содержимому


RSS лента с новыми товарами


  • Вы не можете ответить в тему
Сообщений в теме: 7

#1 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 18 November 2011 - 02:00 PM

Созрел на выходных сделать дополнительную RSS с новыми поступлениями, пользуйтесь, кому нужно :)

Подходит для обладателей VIP версии, поскольку правится index.php, но вероятно можно переделать и под обычную.

1 - Открываем index.php, находим поиском слово rss и в ту же строку дописываем аналогично остальным "rss_new",

2 - в /core/includes/processor создаем файл rss_new.php со следующим содержимым:
<?php
Header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"".DEFAULT_CHARSET."\"?>\n\n";
echo "<rss version=\"2.0\">\n\n";
echo "<channel>\n";
echo "<title>".CONF_SHOP_NAME."</title>\n";
echo "<link>".CONF_FULL_SHOP_URL."</link>\n";
echo "<description>".CONF_HOMEPAGE_META_DESCRIPTION."</description>\n";
echo "<copyright>Copyright © ".CONF_SHOP_NAME."</copyright>\n";
echo "<language>ru</language>\n";
echo "<lastBuildDate>".date("Y-m-d H:i:s")."</lastBuildDate>\n\n";
$currencies = currGetAllCurrencies();
$cifra = 30; //количество последних товаров для выбора
$result = db_query("select s.productID, s.name, s.brief_description, s.date_added, s.Price, s.enabled, t.filename FROM ".PRODUCTS_TABLE." AS s LEFT JOIN ".PRODUCT_PICTURES."
AS t on (s.default_picture=t.photoID AND s.productID=t.productID) WHERE s.categoryID!=1 AND s.enabled=1 ORDER BY s.date_added DESC LIMIT 0,".$cifra);
while ( list($productID, $name, $brief_description, $date_added, $Price, $filename, $default_picture) = db_fetch_row($result)) {
echo "<item>\n";
echo "<title>".$name."</title>\n";
echo "<link>".CONF_FULL_SHOP_URL."product_".$productID.".html</link>\n";
echo "<description><![CDATA[<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">
<tr>
<td valign=\"middle\" align=\"left\" width=\"30%\" style=\"margin-right: 8px;\"><b>"._formatPrice($Price*($currencies[1][3]),0).$currencies[1][1]."</b></td>
<td align=\"center\" width=\"70%\"><a href=\"".CONF_FULL_SHOP_URL."product_".$productID.".html\"><img hspace=\"5\" vspace=\"5\" border=\"0\" src=\"".CONF_FULL_SHOP_URL."data/small/".$default_picture."\" alt=\"".$name."\"></a></td>
</tr>
<tr>
<td colspan=\"2\" valign=\"middle\" align=\"left\">".$brief_description."</td>
</tr>
<tr>
<td colspan=\"2\" valign=\"middle\" align=\"center\">Добавлено :&nbsp;".$date_added."</td>
</tr>
</table>]]></description>\n";
echo "<pubDate>".$date_added."</pubDate>\n";
if (CONF_MOD_REWRITE) {
echo "<guid isPermaLink=\"true\">".CONF_FULL_SHOP_URL."product_".$productID.".html</guid>\n";
} else {
echo "<guid isPermaLink=\"true\">".CONF_FULL_SHOP_URL."index.php?productID=".$productID."</guid>\n";
}
echo "</item>\n\n";
}
echo "</channel>\n";
echo "</rss>";
?>

В коде встречается в 2х местах переменная $currencies[1][x] - вместо первого числа нужно указать ID валюты, в которой нужно выводить цену товара в RSS. (можно посмотреть в БД или подобрать опытным путем, начиная с 0 ).

3 - открываем /core/tpl/user/шаблон/head.tpl.html
строку
<link rel="alternate" href="index.php?do=rss" title="rss" type="application/rss+xml">
меняем на две


 
<link rel="alternate" href="index.php?do=rss" title="Новости" type="application/rss+xml">
<link rel="alternate" href="index.php?do=rss_new" title="Новые товары" type="application/rss+xml">


Чистим кеш и проверяем работу дополнительной ленты, отписывается о результатах.
  • 1
502 Bad Gateway

#2 ruter

    Продвинутый пользователь

  • VIP
  • 334 сообщений
Репутация: 151
Мастер

Отправлено 18 November 2011 - 10:37 PM

Для ЧПУ тут небольшие изменения добавить надо. А так, я думал, об этой ленте rss, но руки у самого не дошли, времени не нашел. А тут готовый вариант. Отлично!
  • 0

#3 FusSheva

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 210 сообщений
Репутация: 7
Начинающий

Отправлено 01 April 2013 - 09:04 AM

Установил, все встало и заработало без проблем. Спасибо.
Добавил в языковой файл, вместо:

define('CUSTOMER_SUBSCRIBE_FOR_NEWS', 'Подписка на новости <br>Ваш E-mail:');

заменил на это:

define('CUSTOMER_SUBSCRIBE_FOR_NEWS', 'Подписка на новости: <br /><a href="/index.php?do=rss">Новости RSS</a>&nbsp;&nbsp;&nbsp;<a href="index.php?do=rss_new">Товары RSS</a> <br /> <br />Ваш E-mail:');

Удобно и отлично смотрится.
  • 0
Каждый человек способен на многое. Но к сожалению, не каждый знает на что он способен.

#4 Valentin

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 146 сообщений
Репутация: 6
Начинающий
  • ГородШахты Ростовская область

Отправлено 06 August 2013 - 01:50 AM

Здравствуйте, а можно ли сделать rss для каждой категории товаров?
Может быть уже такой есть, но в базе форума не могу найти.
  • 0
Социально-информационный проект Nvda.ru о бесплатной программе экранного доступа Nvda для незрячих и слабовидящих.
С уважением ко всем Valentin-Kupriyanov.ru

#5 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 07 August 2013 - 01:08 AM

Можно в ссылку GET запросом передавать ID категории, обработчиком ее выдергивать и фильтровать запрос к БД.
  • 0
502 Bad Gateway

#6 NEViL

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 42 сообщений
Репутация: 4
Начинающий

Отправлено 15 August 2013 - 01:59 PM

Спасибо .... Отлично работает... кроме... Цены в новостях "0" ... Что не так сделал ??... ID валюты указал...
  • 0

#7 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 15 August 2013 - 02:01 PM

ID валюты указал...

значит не тот :) или не везде.
  • 1
502 Bad Gateway

#8 NEViL

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 42 сообщений
Репутация: 4
Начинающий

Отправлено 15 August 2013 - 06:34 PM

ID валюты указал...

значит не тот :) или не везде.


Точно.... писал вроде в двух.... не дописал )))
  • 0