Вариант использования RSS + CMS на примере xoops, в данном случае.
Просто расскажу, в общих чертах, что нужно сделать в xoops, что б показывать rss каналы (товары) в привычном для VamShop виде.
Сначала ссылки, откуда можно скачать всё необходимое:
xoops 2.2.3 - http://www.xoops.org/modules/core/visit.php?cid=7&lid=121&type=1
xhld 3.0.2 - http://www.peak.ne.jp/xoops/md/mydownloads/visit.php?cid=1&lid=60&extension=zip
Как известно, одно дело отдавать RSS, это VamShop, другое дело, показывать данные каналы в нужном нам виде на другом сайте, в нашём примере это будет xoops.
Теперь нам нужно что б RSS парсеры (скрипты, читающие RSS каналы) в CMS выводили RSS каналы из VamShop так как нам нужно, а нужно что б товары выводились по типу боксов VamShop (мне во всяком случае так кажется), т.е. картинка, ниже название и стоимость.
Как это сделать на примере xoops 2.x?
1. Скачиваем xoops с официального сайта xoops.org, устанавливаем xoops, устанавливаем русификатор, если нужно.
2. Скачиваем модуль xhld, устанавливаем. Данный модуль как раз и является rss парсером.
3. Здесь же появляется первая проблема. Стандартный модуль xhld не умеет читать тэг enclosure, т.е. картинку товара из rss. Исправляем данную ошибку.
Открываем файл /includes/modules/xhld0/class/xmlrss2parser.php
Ищем:
$this->addTagHandler(new XhldRssSourceHandler());
Добавляем после:
$this->addTagHandler(new XhldRssEnclosureHandler());
Внизу, до ?> добавляем следующий код:
class XhldRssEnclosureHandler extends XmlTagHandler { function XhldRssEnclosureHandler() { } function getName() { return 'enclosure'; } function handleBeginElement(&$parser, &$attributes) { if ($parser->getParentTag() == 'item') { $parser->setTempArr('enclosure_url', $attributes['url']); } } function handleCharacterData(&$parser, &$data) { if ($parser->getParentTag() == 'item') { $parser->setTempArr('enclosure', $data); } } }
Всё, поддержка тэга enclosure добавлена.
Теперь нам нужно отредактировать шаблоны, что б вывод вывод товаров из RSS каналов был таким каким мы хотим, т.е. в виде таблицы, с картинками, как в VamShop блок Новинки на главной странице.
4. Открываем файл /includes/modules/xhld0/templates/xhld0_block.html и меняем его содержимое на следующее:
<table> <tr> <{section name=i loop=$items}> <td> <{if $items[i].title != ""}> <{* <a href="<{$mod_url}>/index.php?id=<{$site_id}>#<{$items[i].link}>"><{if $items[i].enclosure_url}><center><img src="<{$items[i].enclosure_url}>" border="0" alt="<{$items[i].title}>"></center><br><{/if}><center><{$items[i].title}></center></a> *}> <a href="<{$items[i].link}>" target="_blank"><{if $items[i].enclosure_url}><center><img src="<{$items[i].enclosure_url}>" border="0" alt="<{$items[i].title}>"></center><br><{/if}><center><{$items[i].title}></center></a><{if $items[i].comments}><br><{/if}> </li> <{/if}> </td> <{if $smarty.section.i.iteration % 3 == 0}> </tr> <tr> <{/if}> <{/section}> </tr> </table>
Обратите внимение на строку:
<{if $smarty.section.i.iteration % 3 == 0}>
Здесь указывается количество rss элементов (количество товара) в одной строке, в данном примере 3. Меняйте данное значения по своему усмотрению.
5. В Админке - Модули, в списке модулей обязательно напротив модуля xhld нажимаем кнопку Обновить, иначе шаблон не изменится, т.к. в xoops'e всё кэшируется и если Вы вносите изменения в шаблоны нужно обязательно обновлять тот модуль, в шаблоны которого вносятся изменения.
6. Теперь просто в Админке - Модули - xhld добавляем нужные rss каналы. Например, добавим rss канал новинки - http://ваш-магазин.ру/rss2.php?feed=new_products
7. Затем добавляем новый блок по центру в Админке - Блоки - Новостные заголовки0. Называем его Новинки, к примеру. В настройке количество столбцов указываем 1.
В блоке должны выводиться товары из rss канала интернет-магазина, а именно новинки интернет-магазина.
Вот, в принципе и всё, надеюсь, общий смысл понятен, теперь просто настраивайте блоки и каналы так, как Вам нужно.
Да, забыл, вот скриншот, что в итоге можно получить, воспользовашись моим советом. Сколько выводить товаров в боксе, сколько в одной строке бокса, всё это настраивается в xoops'e.
Все товары берутся из RSS каналов VamShop и выводятся в xoops в таком виде: