Проблема с меню №2 в версии 1.8

Nested sets error: INSERT INTO cms_menu

#1 10 июня 2011 в 23:17
Сразу оговорюсь, что лекарства, которые приведены в первой Теме "Проблема с меню" ничем не помогло, поэтому выделил в отдельную тему.
Подскажите, плиз, как правильно побороть ошибку при вставке нового пункта меню. версия движка 1.8, было проведено обновление с 1.7

Тект ошибки: Nested sets error: INSERT INTO cms_menu (parent_id, NSLeft, NSRight, NSLevel, ordering, NSDiffer) VALUES (1, 14, 15, 1, 7, '')

такое ощущение, что название пункта не схватывает, т.к. последнее значение — ''
#2 6 ноября 2011 в 14:36
У меня аналогичная проблема с меню.
Судя по ошибке из базы данных, в поле 'menu' должно быть что-то введено, так как оно обязательное.

Для разработчиков: ошибка вылетает после выполнения запроса перед строчкой 331 в файле includes\nestedsets.php

Что советуете сделать? Убрать обязательность поля, или что-то вводить в поле menu?
#3 6 ноября 2011 в 14:47
Я попробовал добавить в запрос недостающее поле. Но оно не единственное :).
Вполне возможно, что при создании таблицы часть полей становится обязательными, что не предусмотрено кодом CMS.

В моём случае это поля: menu, title, link, component, published, template, access_list, iconurl и NSIgnore.
#4 6 ноября 2011 в 14:50
удалить таблицу меню и выполнить запрос на создание таблицы заново.
#5 6 ноября 2011 в 14:54
Выполнив данный запрос, добавление нового меню заработало как надо.

  1. ALTER TABLE `cms_menu` CHANGE `menu` `menu` VARCHAR( 200 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT 'mainmenu',
  2. CHANGE `title` `title` VARCHAR( 200 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '',
  3. CHANGE `link` `link` VARCHAR( 200 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '',
  4. CHANGE `component` `component` VARCHAR( 100 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '',
  5. CHANGE `published` `published` INT( 11 ) NULL ,
  6. CHANGE `template` `template` VARCHAR( 30 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '',
  7. CHANGE `access_list` `access_list` TINYTEXT CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL ,
  8. CHANGE `iconurl` `iconurl` VARCHAR( 100 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '',
  9. CHANGE `NSIgnore` `NSIgnore` INT( 11 ) NULL
#6 6 ноября 2011 в 14:55

удалить таблицу меню и выполнить запрос на создание таблицы заново.

Fuze
Ну это годится, если CMS свежая) А чтобы данные не терять, можно проапдейтить поля.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.