Тема: Ошибка или нет при создании меню

При попытки создания меню на "категорию", используя например ваш демо вариант выводит только: две категории, а не все (т.е. Кухонные роботы, Человеко роботы)

Thumbs up Thumbs down

2

Re: Ошибка или нет при создании меню

P.S. браузер, что Chrome, что Ie, стоит на Denwer, но даже в Вашем демо на сайте не показывает.

Поставил 1.9.2 там отображаются все категории.

Thumbs up Thumbs down

3

Re: Ошибка или нет при создании меню

Все таки это ошибка в файле admin.php модуля menu есть вызов $this->template->assign('cats', $this->fetch_tpl('cats') );, d в шаблоне есть рекурсивный вызов самого себя с перезаписью переменной 'tree', что и приводит к тому что при вызове $this->template->assign('cats_list', $this->fetch_tpl('cats_list')); в переменной 'tree' и остаются только cубкатегории.

перенес $this->template->assign('cats', $this->fetch_tpl('cats') ); после case 'page':, что будет дальше посмотрим.

в 1.9.2 вызов рекурсии производился без использования $CI, а вот в 2.1.6 вызов идет ч/з $CI, может потому и перезаписывает.

Thumbs up Thumbs down

4

Re: Ошибка или нет при создании меню

Нашел решение этой проблемы:
в файле /application/modules/menu/admin.php после строки
$this->template->assign('update_id', '0');

вставить заменить строку:
     $this->template->assign('cats', $this->fetch_tpl('cats') );
на:
     if ($type!='category') {
      $this->template->assign('cats', $this->fetch_tpl('cats') );
     }

и всё у вас заработает, удачи! ;-)

Thumbs up +3 Thumbs down

5

Re: Ошибка или нет при создании меню

mostix пишет:

Нашел решение этой проблемы:
в файле /application/modules/menu/admin.php после строки
$this->template->assign('update_id', '0');

вставить заменить строку:
     $this->template->assign('cats', $this->fetch_tpl('cats') );
на:
     if ($type!='category') {
      $this->template->assign('cats', $this->fetch_tpl('cats') );
     }

и всё у вас заработает, удачи! ;-)

Спасибо! Мне помогло!

Thumbs up 0 Thumbs down

6

Re: Ошибка или нет при создании меню

mostix пишет:

Нашел решение этой проблемы:
в файле /application/modules/menu/admin.php после строки
$this->template->assign('update_id', '0');

вставить заменить строку:
     $this->template->assign('cats', $this->fetch_tpl('cats') );
на:
     if ($type!='category') {
      $this->template->assign('cats', $this->fetch_tpl('cats') );
     }

и всё у вас заработает, удачи! ;-)

Спасибо за выловленный и исправленный баг, включили в следующий релиз.

https://github.com/imagecms/ImageCMS - ночные сборки корпорейта
https://scrutinizer-ci.com/g/imagecms/ImageCMS/badges/quality-score.png?b=development https://codeclimate.com/github/imagecms/ImageCMS/badges/gpa.svg

Thumbs up +1 Thumbs down

7

Re: Ошибка или нет при создании меню

А как с этим бороться:
Ошибка БД
Error Number: 1146
Table 'naidyin_imgshop.menus_data' doesn't exist
SELECT menus.name, menus.tpl AS tpl, menus.expand_level AS expand_level, menus_data.id AS id, menus_data.menu_id AS menu_id, menus_data.item_type AS item_type, menus_data.item_id AS item_id, menus_data.title AS title, menus_data.hidden AS hidden, menus_data.position AS position, menus_data.roles AS roles, menus_data.parent_id AS parent_id, menus_data.description AS description, menus_data.add_data AS add_data, menus_data.item_image AS image FROM (menus) JOIN menus_data ON menus_data.menu_id = menus.id WHERE `menus`.`name` = 'main_menu' AND `menus_data`.`hidden` = 0 OR `menus_data`.`hidden` = 1 ORDER BY position asc

Thumbs up Thumbs down

8

Re: Ошибка или нет при создании меню

srubdacha пишет:

А как с этим бороться:
Ошибка БД
Error Number: 1146
Table 'naidyin_imgshop.menus_data' doesn't exist
SELECT menus.name, menus.tpl AS tpl, menus.expand_level AS expand_level, menus_data.id AS id, menus_data.menu_id AS menu_id, menus_data.item_type AS item_type, menus_data.item_id AS item_id, menus_data.title AS title, menus_data.hidden AS hidden, menus_data.position AS position, menus_data.roles AS roles, menus_data.parent_id AS parent_id, menus_data.description AS description, menus_data.add_data AS add_data, menus_data.item_image AS image FROM (menus) JOIN menus_data ON menus_data.menu_id = menus.id WHERE `menus`.`name` = 'main_menu' AND `menus_data`.`hidden` = 0 OR `menus_data`.`hidden` = 1 ORDER BY position asc

таблица menus_data есть в базе?

Thumbs up Thumbs down

9 Отредактировано srubdacha (08-04-2011 14:04:07)

Re: Ошибка или нет при создании меню

admin пишет:

таблица menus_data есть в базе?

нету такой, как ее создать?  roll

Thumbs up Thumbs down

10

Re: Ошибка или нет при создании меню

Выполните этот запрос до базы данных (сделал дамп структуры со своей)

/*
SQLyog Community v8.8 Beta2
MySQL - 5.1.40-community : Database - develop
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*Table structure for table `menus_data` */

DROP TABLE IF EXISTS `menus_data`;

CREATE TABLE `menus_data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `menu_id` int(9) NOT NULL,
  `item_id` int(9) NOT NULL,
  `item_type` varchar(15) NOT NULL,
  `item_image` varchar(255) NOT NULL,
  `roles` text,
  `hidden` smallint(1) NOT NULL DEFAULT '0',
  `title` varchar(300) CHARACTER SET ucs2 NOT NULL,
  `parent_id` int(9) NOT NULL,
  `position` smallint(5) DEFAULT NULL,
  `description` text,
  `add_data` text CHARACTER SET latin1 COLLATE latin1_general_ci,
  PRIMARY KEY (`id`),
  KEY `menu_id` (`menu_id`),
  KEY `position` (`position`)
) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;