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 day10 $
    Юрий Земляной
     1160  verified   26    0

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

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

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

    Ukraine Dnepr | 23 January 2016 |
  3. 1 day20 $
    Роман Закревский
     551   12    0

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

    Ukraine Nikopol | 23 January 2016 |

Client
Project published
22 January 2016
250 views