проблема обнаружилась после обновления с версии 5.1 на 5.2.
на первой странице стали некорректно применяться стили.
у меня в файле page.tpl.php эта функция проверяет, первая ли страница открывается?
и если так, то нужные элементы отмечаются, как принадлежащие к определенному классу.
после чего уже к ним применяются необходимые стили.
для поиска причины создал блок содержащий эту функцию и выводящий только "1" или "0" (front page / not front page).
и что же - на всех страницах висит "0".
примечательно, что на свеже-поставленной версии 5.2. тот же блок честно показывает 1 на первой странице.
проверил в настройках сайта название нода, указанное как первая страница, все правильно написано.
да и не в этом дело если так подумать. сама то страница открываться не перестала.
вопрос собственно в том, как вернуть функции адекватное поведение.
Комментарии
ну так в чем вопрос, посмотрите исходный код функции, по какому принципу работает
итак, что у меня было:
на 5.1
в настройках сайта первая страница была прописана как "frontpage"
но такой не существовало. существовали 2 других "ru/frontpage" и "en/frontpage"
несмотря на это - все прекрасно работало. каждая из них откорывалась на своем языке. как я понимаю, это заслуга модуля i18n.
функцией же любая из этих страницы тоже интерпретировалась - как ПЕРВАЯ.
на 5.2
открываются сами страницы исправно. все хорошо.
но вот функция это отрицает. она теперь честно ищет "frontpаge" и опять же честно разводит руками мол нету такой, и выдает -
фалсе.
и как следствие на страницах у меня снова непримененные стили.
модули все подключены. все точь в точь как было до апгрейда.
я даже сначала грешил что это происходит в процессе - отключения-включения модулей.
и рискнул переделать апдейт не выключаяя ни модули ни тему. результат тот же.
теперь что касается исходного кода. смотрим файл includes/path.inc
function drupal_is_front_page()
для 5.2
единственная строчка кода, упрощенно выглядит так
.....drupal_get_normal_path(....
тогда как в 5.1
if (function_exists('i18n_get_normal_path'))
{
...i18n_get_normal_path(.....
}
else
{
...drupal_get_normal_path(...
}
то есть если раньше функция drupal_is_front_page спрашивала помоши у модуля i18n, то теперь этого не происходит.
кого это не устраивает, смело меняем тело функции на предшевствующую версию и будет вам счастье