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


Фото
- - - - -

sitemap.php генератор


  • Чтобы отвечать, сперва войдите на форум
6 ответов в теме

#1 madwp

madwp
  • Пользователь
  • 32 сообщений
  • Откуда:Москва

Опубликовано 10.09.2017 - 00:02

Есть раздел услуг, который реализован выпадающим списком madwrappers.ru

Сдела что бы появились услуги в сайтпаме, но появились только первые три.

Пытаюсь прописать отальные вот так 

foreach($simpla->service->get_categories() as $c)
{
  if($c->visible)
  {
    $url = $simpla->config->root_url.'/service/'.esc($c->url);
    print "\t<url>"."\n";
    print "\t\t<loc>$url</loc>"."\n";
    print "\t</url>"."\n";
  }
}

и выдает ошибку при создании Call to a member function get_categories() on a non-object in /home/virtwww/w_madwrappers6zz_d00d1be6/http/sitemap.php on line 50

<?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->services->get_categories() as $c)
{
  if($c->visible)
  {
    $url = $simpla->config->root_url.'/services/'.esc($c->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'));  
}
 

 



#2 loxter

loxter
  • Пользователь
  • 100 сообщений
  • Дизайн
  • Откуда:paris

Опубликовано 10.09.2017 - 10:25

Ошибка со всеми деталями Вам предоставлена.

Чтобы работало $simpla->services, надо, чтобы

1. Был соответсвенно оформленный api/Services.php

2. В api/Simpla.php было что-то типа

    private $classes = array(
        'services'     => 'Services',

 



#3 madwp

madwp
  • Пользователь
  • 32 сообщений
  • Откуда:Москва

Опубликовано 10.09.2017 - 10:54

Ошибка со всеми деталями Вам предоставлена.

Чтобы работало $simpla->services, надо, чтобы

1. Был соответсвенно оформленный api/Services.php

2. В api/Simpla.php было что-то типа

    private $classes = array(
        'services'     => 'Services',
 

с эти проблем нет

 

  // Услуги
foreach($simpla->services->get_categories() as $c)
{
  if($c->visible)
  {
    $url = $simpla->config->root_url.'/services/'.esc($c->url);
    print "\t<url>"."\n";
    print "\t\t<loc>$url</loc>"."\n";
    print "\t</url>"."\n";
  }
}
 

проблема с service

 

// Свойства - Классы API
  private $classes = array(
    'config'     => 'Config',
    'request'    => 'Request',
    'db'         => 'Database',
    'settings'   => 'Settings',
    'design'     => 'Design',
    'products'   => 'Products',
    'variants'   => 'Variants',
    'categories' => 'Categories',
    'brands'     => 'Brands',
    'features'   => 'Features',
    'money'      => 'Money',
    'pages'      => 'Pages',
    'blog'       => 'Blog',
    'cart'       => 'Cart',
    'image'      => 'Image',
    'delivery'   => 'Delivery',
    'payment'    => 'Payment',
    'orders'     => 'Orders',
    'users'      => 'Users',
    'coupons'    => 'Coupons',
    'comments'   => 'Comments',
    'feedbacks'  => 'Feedbacks',
    'notify'     => 'Notify',
    'services'   => 'Services',
    'service'    => 'Service',
    'managers'   => 'Managers'
  );

ошибка

 

https://madwrappers.ru 2017-09-10 https://madwrappers.ru/ https://madwrappers.ru/catalog/magazine https://madwrappers.ru/catalog/nashi-raboty https://madwrappers.ru/services https://madwrappers.ru/tseny https://madwrappers.ru/blog https://madwrappers.ru/oplata https://madwrappers.ru/contacthttps://madwrappers.ru/blog/effektivnaya-zashita-kuzova-avtomobilya-sredstvom-keramik-pro-9n https://madwrappers.ru/blog/estetika-i-zaschischennost-avto https://madwrappers.ru/blog/rasskazhem-v-chem-otlichie-ceramic-pro-9h-i-ceramic-pro-light https://madwrappers.ru/blog/rassmotrim-preimuschestva-keramik-pro-9n-v-sravnenii-s-zhidkim-steklom https://madwrappers.ru/blog/antigravijnaya-poliuretanovaya-zaschita-hexis-bodyfence https://madwrappers.ru/blog/rasskazhem-o-antigravijnoj-plenki-suntek-i-ceramic-pro https://madwrappers.ru/blog/pokrytie-avtomobilya-antigraviem https://madwrappers.ru/blog/zaschita-lkp-avtomobilya https://madwrappers.ru/blog/chem-pokryt-porogi-ot-korrozii https://madwrappers.ru/blog/chem-zaschitit-kuzov-avtomobilya https://madwrappers.ru/blog/chem-horosha-laminatsiya-zaschitnoj-plenkoj-https://madwrappers.ru/blog/vinilovaya-plenka-kpmf-dlya-zaschity-avtomobilya https://madwrappers.ru/services/oklejka-avtomobilya https://madwrappers.ru/services/zaschita-avtomobilya https://madwrappers.ru/services/oklejka-poliuretanovoj-plenkoj 
Warning: include_once(/home/virtwww/w_madwrappers6zz_d00d1be6/http/api/Service.php) [function.include-once]: failed to open stream: No such file or directory in /home/virtwww/w_madwrappers6zz_d00d1be6/http/api/Simpla.php on line 76
 
Warning: include_once() [function.include]: Failed opening '/home/virtwww/w_madwrappers6zz_d00d1be6/http/api/Service.php' for inclusion (include_path='.:') in /home/virtwww/w_madwrappers6zz_d00d1be6/http/api/Simpla.php on line 76
 
Fatal error: Class 'Service' not found in /home/virtwww/w_madwrappers6zz_d00d1be6/http/api/Simpla.php on line 79
 

Изменено: madwp, 10.09.2017 - 10:59


#4 loxter

loxter
  • Пользователь
  • 100 сообщений
  • Дизайн
  • Откуда:paris

Опубликовано 10.09.2017 - 13:35

Ошибка расписана Вам точно - не найден файл api/Service.php ...



#5 koteyka

koteyka

    Фрилансер

  • Пользователь
  • 1 334 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Днепропетровск

Опубликовано 10.09.2017 - 16:26

А почему не использовать стандартную выборку?

$simpla->categories->get_categories()


#6 madwp

madwp
  • Пользователь
  • 32 сообщений
  • Откуда:Москва

Опубликовано 10.09.2017 - 16:52

Ошибка расписана Вам точно - не найден файл api/Service.php ...

а почему он там должен был быть ?есть service.tpl

 

 

 

А почему не использовать стандартную выборку?

$simpla->categories->get_categories()

потому что оно не имеет отношения к тем категориям



#7 madwp

madwp
  • Пользователь
  • 32 сообщений
  • Откуда:Москва

Опубликовано 10.09.2017 - 17:11

Проблему решил 

    // Услуги2
foreach($simpla->services->get_services() as $c)
{
  if($c->visible)
  {
    $url = $simpla->config->root_url.'/service/'.esc($c->url);
    print "\t<url>"."\n";
    print "\t\t<loc>$url</loc>"."\n";
    print "\t</url>"."\n";
  }
}

Вопрос еще по второму файл yandex.php он вообще написан для яндекса, а так ли это ? яндекс и тот и тот файл воспринимает помоему отлично, в чем отличие ? хотя с ошибкой яндекс читает yandex.xml






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых