$mission - миссия сайта на всех страницах (Drupal 6.2)

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

Аватар пользователя atidstu atidstu 27 января 2011 в 13:09

Миссия сайта отображается только на главной странице, а необходимо чтобы она была на всех страницах сайта. Все попытки изменения файла template.php не увенчались успехом. Вставляли этот код:

<?php

function themename_preprocess_page(&$variables) {
      $variables['custom_mission'] = variable_get('site_mission', '');
}

?>

Может быть это неприменимо к drupal 6.x? Подскажите пожалуйста, что нужно сделать.

Комментарии

Аватар пользователя atidstu atidstu 27 января 2011 в 15:23

Если бы в page.tpl.php строка <?php print $mission ?> отсутствовала, то на главной странице миссия бы НЕ отображалась. Ещё раз повторяю - на главной странице миссия есть, в page.tpl.php есть вывод миссии. Но мисcия не выводится на ОСТАЛЬНЫХ страницах.
Неужели это невозможно сделать!? Друпал-админы со стажем, ткните носом, что нужно сделать?!

Аватар пользователя George88 George88 27 января 2011 в 17:44

А теперь слушай, проффесор со стажем. Лучше бы посмотрел, чем делать такие поспешные выводы. Далеко не факт что на главной странице у тебя вызывается файл page.tpl.php, а скорее всего что-то типа page-front.tpl.php. Так что посмотри и убедись и только после этого делай выводы

Аватар пользователя G-Smart G-Smart 7 марта 2011 в 17:10

"George88" wrote:

А теперь слушай, проффесор со стажем. Лучше бы посмотрел, чем делать такие поспешные выводы. Далеко не факт что на главной странице у тебя вызывается файл page.tpl.php, а скорее всего что-то типа page-front.tpl.php. Так что посмотри и убедись и только после этого делай выводы


нельзя с таким пафосом городить подобную ерунду.

"direqtor" wrote:
И сбрось кеш реестра тем.

угу и еще в носу поковыряться.

Ограничение задано по дефолту в theme.inc:

<?php
// Set mission when viewing the frontpage.
  
if (drupal_is_front_page()) {
    
$mission filter_xss_admin(theme_get_setting('mission'));
  }
?>

Чтоб не заморачиваться с глобальными изменениями, можно выводить в page.tpl.php миссию таким образом:


<?php $mission theme_get_setting('mission'false);
   if (
$mission != ""): ?>
   <div class="mission"> <?php print $mission?></div>
<?php endif; ?> 
Аватар пользователя rustamaha rustamaha 12 марта 2011 в 23:26

Спасибо мужик, помог. У меня такой же вопрос был. Только не <div class="mission"> , а <div ID="mission"> , иначе CSS настройки для этого поля перестают работать

Аватар пользователя direqtor direqtor 7 марта 2011 в 17:48

"G-Smart" wrote:
угу и еще в носу поковыряться.

Фи, какой ви грюбый, мальчег. Кэш реестра тем надо сбрасывать всегда, когда перекрываете шаблон или кодите свою препроцесс-функцию.

"atidstu" wrote:
$variables['custom_mission'] = variable_get('site_mission', '');

А теперь зададим себе тупой вопрос: в какую переменную шаблона page.tpl.php будет выведена $variables['custom_mission']?

Аватар пользователя G-Smart G-Smart 7 марта 2011 в 19:11

За грубость - сори, не со зла Smile

Человеку нужно отображать миссию на всех страницах сайта, ему с гонором говорят посмотреть нет ли page-front.tpl.php после чего почистить кэш...

"direqtor" wrote:
А теперь зададим себе тупой вопрос: в какую переменную шаблона page.tpl.php будет выведена $variables['custom_mission']?

Вы проверяли? Не работает как я описал?

Аватар пользователя direqtor direqtor 8 марта 2011 в 2:23

Если не работает стандартный механизм, то либо лыжи не едут, либо...

А вы проверяли, вызывается эта ли функция вообще? Какие переменные в нее поступают? С какими значениями?