Стерлись заголовки в админке. Что делать?

Главные вкладки

Аватар пользователя about about 27 апреля 2018 в 22:51

В поисках решения одной проблемы, появилась другая. В панели администратора исчезли надписи у ссылок. Сами ссылки активные, при нажатии на пустые ссылки (где раньше были нормальные надписи) портует куда надо. Однако это неудобно и хочется их вернуть. Хелп!

ВложениеРазмер
Иконка изображения bezymyannyy.jpg5.26 КБ

Комментарии

Аватар пользователя about about 27 апреля 2018 в 23:35

А где их физически найти? У меня есть и БД прежняя и файлы прежние. Перевод в БД вроде не нашёл, наверное в файлах?

Аватар пользователя about about 28 апреля 2018 в 8:50

Я накосячил с файлом menu.inc , когда он выдавал title я вроде как заменил их на пустые. Вернул файл назад, но значения назад не вернулись. Все пустые ссылки кликабельны. Структура не поменялась. Только ни в файлах, ни в БД не могу найти, где она держит эти поля с названиями, чтобы подзагрузить их туда с сохранёнок.

Аватар пользователя Semantics Semantics 28 апреля 2018 в 8:53

Верните menu.inc в порядок сбросьте кеш на странице /admin/config/development/performance.
Нормальный menu.inc можете взять из дистрибутива друпала.

Редактировать файлы ядра нельзя, особенно, без понимания.

Аватар пользователя about about 28 апреля 2018 в 8:54

Прежде чем исправлять menu.inc я сделал его копию. И сразу же заменил на другой. Это не тоже самое? Надо переустановить его возможно?

Аватар пользователя about about 28 апреля 2018 в 9:23

Признаюсь, сейчас во всём признаюсь. Выделил жирным:
/**
* Builds a link from a router item.
*/
function _menu_link_build($item) {
// Suggested items are disabled by default.
if ($item['type'] == MENU_SUGGESTED_ITEM) {
$item['hidden'] = 1;
}
// Hide all items that are not visible in the tree.
elseif (!($item['type'] & MENU_VISIBLE_IN_TREE)) {
$item['hidden'] = -1;
}
// Note, we set this as 'system', so that we can be sure to distinguish all
// the menu links generated automatically from entries in {menu_router}.
$item['module'] = 'system';
$item += array(
'menu_name' => 'navigation',
'link_title' => $item['title'],
'link_path' => $item['path'],
'hidden' => 0,
'options' => empty($item['description']) ? array() : array('attributes' => array('title' => $item['description'])),
);
return $item;
}

Заменил на это:
/**
* Builds a link from a router item.
*/
function _menu_link_build($item) {
// Suggested items are disabled by default.
if ($item['type'] == MENU_SUGGESTED_ITEM) {
$item['hidden'] = 1;
}
// Hide all items that are not visible in the tree.
elseif (!($item['type'] & MENU_VISIBLE_IN_TREE)) {
$item['hidden'] = -1;
}
// Note, we set this as 'system', so that we can be sure to distinguish all
// the menu links generated automatically from entries in {menu_router}.
$item['module'] = 'system';
$item += array(
'menu_name' => 'navigation',
'link_title' => (empty($item['link_title']) ? '' : $item['link_title']),
'link_path' => $item['path'],
'hidden' => 0,
'options' => empty($item['description']) ? array() : array('attributes' => array('title' => $item['description'])),
);
return $item;
}

Аватар пользователя Semantics Semantics 28 апреля 2018 в 9:40

Ну, если сброс кеша не помогает, придётся более хардкорно поступить.
Создайте в корне друпала файлик menu_rebuild.php с таким содержимым:

<?php

define('DRUPAL_ROOT', getcwd());

require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

db_query("DELETE FROM {menu_links}");
db_query("DELETE FROM {menu_router}");

menu_rebuild();

print 'Done';

И откройте его из браузера.
Я не тестировал, бекап базы обязателен.

Аватар пользователя about about 28 апреля 2018 в 10:46

Тут ещё такой вопрос: если произвести обновления, проблема может решиться сама собой? А если я просто через phpmyadmin удалю таблицы menu_links и menu_router и перезалью с бэкапа, то будет работать? Мне что-то стало страшно за структуру пунктов меню.

Аватар пользователя about about 28 апреля 2018 в 14:09

Semantics, Phantom63rus, спасибо, что вы есть здесь. Очень вам благодарен! За эти сутки я так сильно перенервничал. Ваши ответы давали мне надежду, что решение мы всё-таки найдём.
Ситуация решилась обновлением всех модулей (на это требовалось разрешение руководства). Я уже думал, что моя следующая работа будет в Чернобыле. Но обошлось)

Аватар пользователя Phantom63rus Phantom63rus 28 апреля 2018 в 14:22

Фигня, всегда рады помочь!

Донесите до руководства что апдейты должны накатываться своевременно, это не та задача, где требуется отмашка вышестоящих. Пожалуй ближе всего работа уборщицы - можно конечно убирать только по приказу руководства когда стало плохо пахнуть, но лучше это делать на постоянной основе.