Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

Разбить sitemap.xml т.к. товаров больше 50 тыс. cms simpla

closed without completion


Нужно подправить sitemap.php чтобы умел разбивать карту сайта для яндекса и гугла. cms simpla. 

Переработать файл sitemap.php так, чтоб он автоматически генерировал несколько файлов. т.к. единый файл sitemap имеет размер, недопустимый для поисковиков.
Примерная работ!
.1. При вызове sitemap.php в папке создавались файлы:
sitemap_0.xml
sitemap_1.xml
sitemap_2.xml..

2. Файл sitemap_0.xml содержит все данные, кроме товаров.
3. остальные файлы содержат данные по товарам, с разбиением на заданное количество . 


<?php

require_once('api/Simpla.php');
$simpla = new Simpla();

header("Content-type: text/xml; charset=UTF-8");
print '<?xml version="1.0" encoding="UTF-8"?>'."\n";
print '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n";

// Главная страница
$url = $simpla->config->root_url;
$lastmod = date("Y-m-d");
print "\t<url>"."\n";
print "\t\t<loc>$url</loc>"."\n";
print "\t\t<lastmod>$lastmod</lastmod>"."\n";
print "\t</url>"."\n";

// Страницы
foreach($simpla->pages->get_pages() as $p)
{
if($p->visible && $p->menu_id == 1)
{
$url = $simpla->config->root_url.'/'.esc($p->url);
print "\t<url>"."\n";
print "\t\t<loc>$url</loc>"."\n";
print "\t</url>"."\n";
}
}

// Блог
foreach($simpla->blog->get_posts(array('visible'=>1)) as $p)
{
$url = $simpla->config->root_url.'/blog/'.esc($p->url);
print "\t<url>"."\n";
print "\t\t<loc>$url</loc>"."\n";
print "\t</url>"."\n";
}

// Категории
foreach($simpla->categories->get_categories() as $c)
{
if($c->visible)
{
$url = $simpla->config->root_url.'/catalog/'.esc($c->url);
print "\t<url>"."\n";
print "\t\t<loc>$url</loc>"."\n";
print "\t</url>"."\n";
}
}

// Бренды
foreach($simpla->brands->get_brands() as $b)
{
$url = $simpla->config->root_url.'/brands/'.esc($b->url);
print "\t<url>"."\n";
print "\t\t<loc>$url</loc>"."\n";
print "\t</url>"."\n";
}

// Товары
$simpla->db->query("SELECT url FROM __products WHERE visible=1");
foreach($simpla->db->results() as $p)
{
$url = $simpla->config->root_url.'/products/'.esc($p->url);
print "\t<url>"."\n";
print "\t\t<loc>$url</loc>"."\n";
print "\t</url>"."\n";
}

print '</urlset>'."\n";

function esc($s)
{
return(htmlspecialchars($s, ENT_QUOTES, 'UTF-8'));
}


Make a proposal!

The client doesn't want to make prepayment? Offer him to make a payment via Safe to avoid possible fraud.

  1. 1 dayconcealed
    Юрий Земляной
     1360  verified   27   0

    Добрый вечер. Готов помочь.

    Ukraine Dnepr | 22 January 2016 |
  2. 1 dayconcealed
    Андрей Олейник
     324   8   3

    Есть готовое решение, поставлю за 2-3 часа - работает с любым количеством товаров

    Ukraine Dnepr | 23 January 2016 |
  3. 1 dayconcealed
    Роман Закревский
     526   11   0

    Делал подобное решение, предлагаю несколько другой механизм, работать будет быстро, и при этом не будет создавать ни лишней нагрузи на сервер ни "мусорных" промежуточных файлов. Если интересно - могу рассказать подробнее в ЛС либо скайпе (zarn_ua_fm).

    Ukraine Nikopol | 23 January 2016 |

Client
Project published
22 January 2016
250 views