Такое дело... Делаю копию admin/config, но со своими страницами и блоками.
Для этого взял функцию system_admin_config_page() из system.admin.inc (модуль system). Только переименовал в 17 строке WHERE link_path = 'admin/config' на свой путь. Остальная функция осталась без изменений.
Создал страницу так (пробовал и через drupal_get_form, но эффект тот же):
$items['admin/bla-bla'] = array(
'title' => 'Бла бла бла',
'access arguments' => array('MY_ADMIN_settings view'),
'page callback' => 'MY_ADMIN_settings',
);
Что происходит далее:
Делаю drush cc all и жму F5 на этой странице. Страница отрабатывается как нужно. Но после этого выпадает во WSOD (белая страница). То есть можно просто ещё раз нажать обновить и всё...
Грешу на кэш или неправильный вызов страницы.
Ответы
"Только переименовал в 17 строке WHERE link_path = 'admin/config' на свой путь."
Верни как было, если тебе нужна копия admin/config
Ну и permission MY_ADMIN_settings view я так понимаю существует
Немного не правильно выразился, копия, но со своими блоками и страницами. Страницы то норм отрабатываются (специально накидал туда блоков-страниц), но 1 раз.
Кстати, если оставить всё как было (admin/config), то страница всё равно отрабатывается только 1 раз.
"но со своими блоками и страницами."
Тогда посмотри, как добавляются к примеру 'admin/config/people' ('admin/config/people/accounts', 'admin/config/people/accounts/settings') - user.module
Я знаю как их добавлять, и я их добавил, и они работают на ура. НО..... только 1 раз после чистки кэша.
ну тогда смотри логи и сделай вывод ошибок на страницу
А вообще убери из page callback функции
у тебя ошибка возникает Fatal error: Call to undefined function system_status() , либо убирай вообще, либо подключай файл system.admin.inc
Точно, убрал проверку и всё заработало. А вот подгрузка system.admin.inc не помогла.
да просто нужно было прописать в начале callback функции
если тебе конечно нужно на этой странице проверять и выводить сообщение status report
Блин, тупанул, прописал его после проверки)) Ладно, всё равно статус мне там не нужен.