Simpla cms помогите решить ошибки после вост.бэкапа

winsofts

Постоялец
Регистрация
25 Июл 2009
Сообщения
83
Реакции
1
помогите решить ошибки после вост.бэкапа simpla cms, вроде все права все выставлено, но вверху сайта ошибки
Код:
Notice: Undefined property: stdClass::$subcats_ids in /var/www/cl65854/data/www/p-shup.ru/Storefront.class.php on line 391 Notice: Undefined property: stdClass::$subcats_ids in /var/www/cl65854/data/www/p-shup.ru/Storefront.class.php on line 391 Notice: Undefined property: stdClass::$subcats_ids in /var/www/cl65854/data/www/p-shup.ru/Storefront.class.php on line 391 Notice: Undefined property: stdClass::$subcats_ids in /var/www/cl65854/data/www/p-shup.ru/Storefront.class.php on line 391 Notice: Undefined index: 0 in /var/www/cl65854/data/www/p-shup.ru/Storefront.class.php on line 391 Notice: Trying to get property of non-object in /var/www/cl65854/data/www/p-shup.ru/Storefront.class.php on line 391 Notice: Undefined index: shopping_cart in /var/www/cl65854/data/www/p-shup.ru/Site.class.php on line 78
чем лечить?
 
  • Заблокирован
  • #2
Если бы вы ети два файла сюда показали или закачали на файлообменник
 
site class
Код:
<?PHP
 
/**
* Simpla CMS
*
* @copyright    2009 Denis Pikusov
* @link        http://simp.la
* @author        Denis Pikusov
*
* Этот класс использует шаблон index.tpl,
* который содержит всю страницу кроме центрального блока
* По get-параметру section мы определяем что сожержится в центральном блоке
*
*/
 
// Как и все классы, наследуется от класса widget
require_once('Widget.class.php');
 
// Storefront нам понадобится для некоторых методов, связанных с товарами
require_once('Storefront.class.php');
 
class Site extends Widget
{
    var $main; // Центральный блок (класс). В данном случае он может быть разных классов, в зависимости от раздела
    var $categories; // Категории товаров
    var $articles_count = 4; // Количество свежих статей
    var $news_count = 4; // Количество свежих новостей
    var $section; // текущий раздел
   
    /**
    *
    * Конструктор
    *
    */   
    function Site(&$parent)
    {
        Widget::Widget($parent);
       
        // Пока не знаем какого класса центральный блок, он будет базового класса
        $this->main = new Widget($this);
       
        // Категории товаров
        $this->categories = Storefront::get_categories();
        $this->smarty->assign('categories', $this->categories);
       
        // Разделы меню
        if($this->mobile_user)
            $this->db->query("SELECT * FROM sections WHERE enabled=1 AND menu_id=3 ORDER BY order_num");
        else
            $this->db->query("SELECT * FROM sections WHERE enabled=1 AND menu_id=2 ORDER BY order_num");
           
        $sections = $this->db->results();       
        $this->smarty->assign('sections', $sections);
       
        // Новости (несколько последних)
        $query = sql_placeholder("SELECT *, DATE_FORMAT(date, '%d.%m.%Y') as date FROM news WHERE enabled=1 ORDER BY news.date DESC LIMIT ?", $this->news_count);
        $this->db->query($query);
        $news = $this->db->results();
        $this->smarty->assign('news', $news);
       
        // Статьи (несколько последних)
        $query = sql_placeholder("SELECT * FROM articles WHERE enabled=1 ORDER BY order_num DESC LIMIT ?", $this->articles_count);
        $this->db->query($query);
        $articles = $this->db->results();
        $this->smarty->assign('articles', $articles);
       
        // Бренды
        $query = sql_placeholder("SELECT * FROM brands ORDER BY name");
        $this->db->query($query);
        $allbrands = $this->db->results();
        $this->smarty->assign('all_brands', $allbrands);
       
        // Состояние корзины
        $this->cart_products_num = 0;
        $this->cart_total_price = 0;
 
    // Сформируем массив товаров в корзине
    if(is_array($_SESSION['shopping_cart']))
    {
        $variants_ids = array_keys($_SESSION['shopping_cart']);
         
        $discount=isset($this->user->discount)?$this->user->discount:0;
        $query = sql_placeholder("SELECT products_variants.*, products.model as model, products.url as url,
                products_variants.price*(100-$discount)/100 as discount_price
                FROM products_variants, products WHERE products.product_id=products_variants.product_id AND products_variants.variant_id in (?@) ORDER BY products.order_num, products_variants.position", $variants_ids);
        $this->db->query($query);
        $variants = $this->db->results();
 
 
      if(!empty($variants))
      {
          foreach($variants as $k=>$variant)
        {
        $amount = min($variant->stock, $_SESSION['shopping_cart'][$variant->variant_id]);
        $this->cart_total_price += $variant->discount_price*$amount;
        $this->cart_products_num += $amount; 
        }
      }
      }
        $this->smarty->assign('cart_total_price', $this->cart_total_price);
        $this->smarty->assign('cart_products_num', $this->cart_products_num);
       
       
        // Необходимо определить что выводить в центральном блоке.
        // Это может быть указано в качестве конкретного раздела сайта (section)
        // или в качестве указания модуля, который следует вывести
        // В первом случае мы узнаем из базы какого модуля нужный раздел
        // и создаем соотвествующий класс (например статическая страница или лента новостей)
        // а во втором - и узнавать ничего не надо, модуль по сути и есть класс
        // (ну почти, нужно только глянуть в таблице modules название класса для данного модуля, обычно оно совпадает)
       
        // итак, url текущего раздела (может быть не задан)
        $section_url = $this->url_filtered_param('section');
 
        // модуль (тоже может быть не задан)
        $module = $this->url_filtered_param('module');
       
        // если ничего не задано, текущим разделом будет раздел, заданный в настройках как главная страница
        if (empty($section_url) && empty($module))
        {
            if($this->mobile_user)
                $section_url = $this->settings->main_mobile_section;
            else
                $section_url = $this->settings->main_section;
        }
        // если url раздела задан,
        if (!empty($section_url))
        {
            // выбираем из базы этот раздел
            $query = sql_placeholder("SELECT sections.section_id as section_id, modules.module_id, modules.class, sections.url, sections.body, sections.header, sections.module_id, sections.meta_title, sections.meta_description, sections.meta_keywords  FROM sections LEFT JOIN modules ON sections.module_id=modules.module_id WHERE sections.url=? limit 1", $section_url);
            $this->db->query($query);
            $this->section = $this->db->result();
            $this->smarty->assign('section', $this->section);
        }
       
        // Если раздел с таким url действительно существует,
        if (!empty($this->section))
        {
            // создадим класс этого раздела
            $class = $this->section->class;
            include_once("$class.class.php");
            if (class_exists($class))
            {
                $_GET['section'] = $this->section->url;
                $this->main = new $class($this);
            }
            // возвращение false приводит к отображению 404 ошибки. Кстати это работает в любом модуле
            else return false;
        }
        // Если задан модуль, аналогично создаем нужный класс
        elseif (!empty($module))
        {
            $query = sql_placeholder("SELECT class FROM modules WHERE modules.class=? LIMIT 1", $module);
            $this->db->query($query);
            $module = $this->db->result();
            if (!empty($module->class))
            {
                $class = $module->class;
                include_once("$class.class.php");
                if (class_exists($class))
                {
                    $this->main = new $class($this);
                } else return false;
            } else return false;
        } else return false;
 
        // Коме главного блока, нам на всех (в общем случае) страницах необходимы такие вещи:
       
    }
   
    /**
    *
    * Отображение
    *
    */
    function fetch()
    {
       
        // Создаем основной блок страницы
        if (!$this->main->fetch())
        {
            return false;
        }
        // Если у main установлен флаг single, значит страница состоит только из main, не обромляем ее ничем больше
        if (isset($this->main->single) && $this->main->single)
        {
            $this->body = $this->main->body;
            return $this->body;
        }
        else
        {
            $content = $this->main->body;
           
            //  Устанавливаем мета-теги, указанные в главном блоке
            $this->title = isset($this->section->meta_title)?$this->section->meta_title:$this->main->title;
            $this->keywords = isset($this->section->meta_keywords)?$this->section->meta_keywords:$this->main->keywords;           
            $this->description = isset($this->section->meta_description)?$this->section->meta_description:$this->main->description;
 
        }
        $this->smarty->assign('title', $this->title);
        $this->smarty->assign('keywords', $this->keywords);
        $this->smarty->assign('description', $this->description);
        $this->smarty->assign('content', $content);       
               
       
        // Создаем текущую страницу сайта
        $this->body = $this->smarty->fetch('index.tpl');
        return $this->body;
    }
}
 
storefront.class
вложен
 

Вложения

  • Storefront.txt
    23,6 KB · Просмотры: 5
  • Заблокирован
  • #5
Не знаю, ето нужно смотреть, так сложно что либо сказать
 
Назад
Сверху