Если после обновления на Joomla 3.7.x у вас начало глючить меню при попытке добавления нового пункта и выдает ошибку:
Failed publishing 1 menu item as at least one of its parents is unpublished or one of its children is checked out.»
Или в русской локализации:
Ошибка публикации 1 категории так как по крайней мере один из ее родителей не опубликован или один из ее потомков извлечен.
…значит при обновлении слетели старые пункты меню, ссылавшиеся на давно уже не поддерживаемые компоненты (типа banners, contacts и проч.).
Проще всего это решается удалением старых, неиспользуемых пунктов меню и очисткой корзины (это важно, пока не очистите, глюк не пропадет).
Но это помогает только в половине случаев (если сайт относительно новый). Если не помогло — есть еще два способа решения этой проблемы:
Способ первый: использовать SQL-запросы, чтобы подчистить старые пункты меню из БД (базы данных). Можно составить их самому, что-то вроде
UPDATE `#_menu` SET `menutype` = 'main' WHERE `id` = ***;
но проще воспользоваться этим гайдом. Многим это решение помогло, но мне — нет, т.к. мои сайт на Джумле существуют с 2004 года и в БД особенно жесткий бардак… Поэтому вот второй, мой авторский способ, который решил проблему:
- обязательно делаем бекап! нам предстоит править БД, а с этим шутки плохи
- заходим в phpMyAdmin
- слева выбираем таблицу **_menu (она будет у вас называться, например, j25_menu)
- жмем кнопку «обзор» (сверху слева)
- сортируем таблицу сначала по ‘menytype’ и удаляем значения ‘menu’
- теперь сортируем таблицу по ‘title’ и подчищаем старые компоненты вроде com_banners , com_contact и прочее, что у вас не установлено и чем вы не пользуетесь. Не удаляйте то, тчо не знаете; загуглите компоненты, насчет которых вы не в курсе.
- Если все еще глючит — отсортируйте по ‘path’ и еще разочек пробегитесь взглядом на поиск устаревших пунктов меню.
Если вы что-то сломали — откатитесь назад к бекапу и попробуйте снова.
Жду ваших комментариев! 😀