daramal Posted May 18, 2012 Report Share Posted May 18, 2012 Уважаемые Форумчане!Как же все таки создать RSS-канал на Simpla 2.1.0 ?Все перепробовал. Не генерируется автоматически.Может знает кто?Спасибо за любую информацию. Quote Link to post Share on other sites
howareyou Posted May 18, 2012 Report Share Posted May 18, 2012 файл - создать - rss канал Quote Link to post Share on other sites
daramal Posted May 18, 2012 Author Report Share Posted May 18, 2012 howareyou не совсем Вас понял. Quote Link to post Share on other sites
Serjkrae Posted March 12, 2013 Report Share Posted March 12, 2013 Вот здесь человек автор в комментариях выложил скрипт rss для simpla.http://androoha.com/web-design-articles/81-update-rss-automaticallyИ вот его инструкция про то как настроить cron на хостинге, для автоматической генерации rss:"На самом деле через cPanel ничего сложного cron job добавлять, но на всякий случай опишу Частоту выполнения настроить там совсем просто, а чтобы выполнить именно php-скрипт, там нужно по-особому команду писать:/usr/bin/php -f /home/something/public_html/test.phpт.е. первая часть это путь к пхп и параметр один, а вторая это и есть адрес к скрипту (у вас он будет свой)Если вы не знаете, какой он должен быть, можете сделать как я обычно делаю - закидываете на хостинг какой-нибудь php-файл со следующим содержанием: <?php echo $_SERVER['DOCUMENT_ROOT']; ?>и запускаете его в браузере. Он вам как раз и напишет этот рут, а относительно его уже и допишите, где конкретно лежит ваш скрипт.С уважением, Androoha." Quote Link to post Share on other sites
paha333 Posted July 11, 2018 Report Share Posted July 11, 2018 Погуглил и ничего нормально не нашел, пришлось самому сделать. И так: RSS файл товаров для Simpla 1. В корне сайта создаем файл rss.php2. В этот файл вставляем этот код: require_once('api/Simpla.php'); $simpla = new Simpla(); $base_url = $simpla->config->root_url; $lastmod = date("Y-m-d"); $filter['limit']=100; $filter['visible']=1; $products = array(); foreach($simpla->products->get_products($filter) as $p) $products[$p->id] = $p; if(!empty($products)) { $products_ids = array_keys($products); foreach($products as &$product) { //$product->variants = array(); $product->images = array(); // $product->properties = array(); } //$variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true)); //foreach($variants as &$variant) //{ //$variant->price *= (100-$discount)/100; // $products[$variant->product_id]->variants[] = $variant; //} //print_r($products_ids); $images = $simpla->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[] = $image; } header("Content-Type: application/rss+xml; charset=UTF-8"); $p = $products[0]; $rssfeed = '<?xml version="1.0" encoding="UTF-8"?>'; $rssfeed .= '<rss version="2.0">'; $rssfeed .= '<channel>'; $rssfeed .= '<title>'.$simpla->settings->site_name.'</title>'; //$rssfeed .= '<link>'.$cat_url.'</link>'; $rssfeed .= '<description>'.$simpla->settings->company_name.'</description>'; $rssfeed .= '<language>ru-ru</language>'; //$rssfeed .= '<category>' . $category . '</category>'; $rssfeed .= '<copyright>Copyright '.date('Y').' '.$simpla->settings->company_name.'</copyright>'; $rssfeed .= '<pubDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</pubDate>'; $rssfeed .= '<lastBuildDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</lastBuildDate>'; foreach($products as $p) { $rssfeed .= '<item>'; $rssfeed .= '<guid isPermaLink="true">'. $base_url .'/products/'. $p->url . '</guid>'; $rssfeed .= '<link>'. $base_url .'/products/'. $p->url . '</link>'; $rssfeed .= '<title>' . $p->name . '</title>'; $rssfeed .= '<description><![CDATA[<center><img src="' . $p->images[0]->filename . '"/></center><br>' . ($p->body) . ']]></description>'; //$rssfeed .= '<comments>'. $base_url . $p->url . '#comments</comments>'; $rssfeed .= '<image>'; $rssfeed .= '<url>' . $p->images[0]->filename . '</url>'; $rssfeed .= '<title>' . $p->name . '</title>'; $rssfeed .= '<link>'. $base_url .'/products/'. $p->url . '</link>'; $rssfeed .= '</image>'; $rssfeed .= '<enclosure url="' . $p->images[0]->filename . '" type="image/jpeg" length="123" />'; $rssfeed .= '<pubDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</pubDate>'; $rssfeed .= '</item>'; } $rssfeed .= '</channel>'; $rssfeed .= '</rss>'; print $rssfeed; Я делал без вывода цен, мне оно ненужно, если вам надо я там оставил вызов метода $variants с помощью него вы сможете сделать вывод цен.И там есть массив filter где указываете например значение limit это сколько выводить товаров в rss я поставил 100 если вам надо ставьте больше, лично когда я поставил 10000 то реально стало подвисать так как у меня в магазе почти 5тыс товаров. 3. Открываем файл в корне сайта .htaccess , там находите # Google sitemap RewriteRule ^sitemap.xml?$ sitemap.php [L,QSA] и под ним вставляете # RSS RewriteRule ^rss.xml?$ rss.php [L,QSA] Вуаля! Все готово! Теперь проверьте работу rss. http://ваш-сайт/rss.xml Ваше спасибо присылайте сюда R853468763307 всем удачи. Quote Link to post Share on other sites
Sergeo Posted August 6, 2019 Report Share Posted August 6, 2019 (edited) Погуглил и ничего нормально не нашел, пришлось самому сделать. И так: RSS файл товаров для Simpla 1. В корне сайта создаем файл rss.php2. В этот файл вставляем этот код: require_once('api/Simpla.php'); $simpla = new Simpla(); $base_url = $simpla->config->root_url; $lastmod = date("Y-m-d"); $filter['limit']=100; $filter['visible']=1; $products = array(); foreach($simpla->products->get_products($filter) as $p) $products[$p->id] = $p; if(!empty($products)) { $products_ids = array_keys($products); foreach($products as &$product) { //$product->variants = array(); $product->images = array(); // $product->properties = array(); } //$variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true)); //foreach($variants as &$variant) //{ //$variant->price *= (100-$discount)/100; // $products[$variant->product_id]->variants[] = $variant; //} //print_r($products_ids); $images = $simpla->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[] = $image; } header("Content-Type: application/rss+xml; charset=UTF-8"); $p = $products[0]; $rssfeed = '<?xml version="1.0" encoding="UTF-8"?>'; $rssfeed .= '<rss version="2.0">'; $rssfeed .= '<channel>'; $rssfeed .= '<title>'.$simpla->settings->site_name.'</title>'; //$rssfeed .= '<link>'.$cat_url.'</link>'; $rssfeed .= '<description>'.$simpla->settings->company_name.'</description>'; $rssfeed .= '<language>ru-ru</language>'; //$rssfeed .= '<category>' . $category . '</category>'; $rssfeed .= '<copyright>Copyright '.date('Y').' '.$simpla->settings->company_name.'</copyright>'; $rssfeed .= '<pubDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</pubDate>'; $rssfeed .= '<lastBuildDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</lastBuildDate>'; foreach($products as $p) { $rssfeed .= '<item>'; $rssfeed .= '<guid isPermaLink="true">'. $base_url .'/products/'. $p->url . '</guid>'; $rssfeed .= '<link>'. $base_url .'/products/'. $p->url . '</link>'; $rssfeed .= '<title>' . $p->name . '</title>'; $rssfeed .= '<description><![CDATA[<center><img src="' . $p->images[0]->filename . '"/></center><br>' . ($p->body) . ']]></description>'; //$rssfeed .= '<comments>'. $base_url . $p->url . '#comments</comments>'; $rssfeed .= '<image>'; $rssfeed .= '<url>' . $p->images[0]->filename . '</url>'; $rssfeed .= '<title>' . $p->name . '</title>'; $rssfeed .= '<link>'. $base_url .'/products/'. $p->url . '</link>'; $rssfeed .= '</image>'; $rssfeed .= '<enclosure url="' . $p->images[0]->filename . '" type="image/jpeg" length="123" />'; $rssfeed .= '<pubDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</pubDate>'; $rssfeed .= '</item>'; } $rssfeed .= '</channel>'; $rssfeed .= '</rss>'; print $rssfeed; Я делал без вывода цен, мне оно ненужно, если вам надо я там оставил вызов метода $variants с помощью него вы сможете сделать вывод цен.И там есть массив filter где указываете например значение limit это сколько выводить товаров в rss я поставил 100 если вам надо ставьте больше, лично когда я поставил 10000 то реально стало подвисать так как у меня в магазе почти 5тыс товаров. 3. Открываем файл в корне сайта .htaccess , там находите # Google sitemap RewriteRule ^sitemap.xml?$ sitemap.php [L,QSA] и под ним вставляете # RSS RewriteRule ^rss.xml?$ rss.php [L,QSA] Вуаля! Все готово! Теперь проверьте работу rss. http://ваш-сайт/rss.xml Ваше спасибо присылайте сюда R853468763307 всем удачи. Здравствуйте! По выше представленной инструкции не работает на версии 2.3.7, по адресу http://мой-сайт/rss.xml выходит просто пустая страница! Может кто-то поможет поправить? Edited August 6, 2019 by Sergeo Quote Link to post Share on other sites
Sergeo Posted August 6, 2019 Report Share Posted August 6, 2019 (edited) Здравствуйте! По выше представленной инструкции не работает на версии 2.3.7, по адресу http://мой-сайт/rss.xml выходит просто пустая страница! Если смотреть код этой пустой страницы, то вот что в коде: <!-- memory peak usage: 1734416 bytes page generation time: 0.012261867523193 seconds --> Может кто-то поможет поправить? Edited August 6, 2019 by Sergeo Quote Link to post Share on other sites
phukortsin Posted August 7, 2019 Report Share Posted August 7, 2019 Попробуйте в файле в начале вставить строку<?php Quote Link to post Share on other sites
Sergeo Posted August 7, 2019 Report Share Posted August 7, 2019 Попробуйте в файле в начале вставить строку<?php Вставил, но всё без изменений. Quote Link to post Share on other sites
Sergeo Posted August 8, 2019 Report Share Posted August 8, 2019 Может кто-то поможет поправить код? Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.