Drupal 6 — Пользовательская страница.tpl

#css #drupal #drupal-6

#css #drupal #drupal-6

Вопрос:

Я использую Drupal 6. У меня есть некоторый css, который я хочу применить только для определенного типа контента. Имя для машинного чтения типов контента — «snap».

Я скопировал page.tpl.php и создал другой файл под названием page-snap.tpl.php .

Я перезапустил apache и mysql и обновил кэш, но когда я ищу тип контента snap для использования в качестве DIV, я ничего не вижу.

Что я делаю не так?

Спасибо,

Ответ №1:

Вы можете использовать $node->type для включения некоторых дополнительных css…

 if($node->type == 'snap') {
  //inlcude your css file
}
  

Ответ №2:

Взгляните на тематизацию страницы по типу содержимого

Инструкции:

  • Переименовать page-snap.tpl.php в page-node-snap.tpl.php .
  • Создайте файл с именем template.php в папке вашей темы

В template.php добавьте это:

 <?php
  function bluemarine_preprocess_page(amp;$variables) {
    if ($variables['node']->type == "snap") {
      $variables['template_files'][] = 'page-node-snap';
      drupal_add_css(PATH TO CSS FILE); // Enter path to custom css here
    }
  }
  
  • Сохраните файл и очистите кэш ( admin/settings/performance )

Подробнее о drupal_add_css()

Комментарии:

1. Спасибо за ответ. Извините за невежество, но куда мне это вставить?

2. В вашей папке темы может быть файл с именем template.php (если нет, создайте его). Вставьте его в этот файл, затем очистите кэш.

3. Еще раз извините, что я идиот, но я не могу заставить это работать. Я создал page-snap.tpl.php . Теперь я создал файл под названием template.php и вставил в нее приведенный выше код. Делая это, я получаю код ошибки в верхней части страницы, который гласит: function THEMENAME_preprocess_page(amp;$ variables) { if ($variables[‘node’]->type == «snap») { $variables[‘template_files’][] = ‘страница-узел-привязка’; } } все в одной строке. Извините, я обычно не отличаюсь от нормы при создании сайтов, и большинство сайтов, которые я создал, были очень простыми. Спасибо

4. Хорошо, сначала переименуем page-snap.tpl.php в page-node-snap.tpl.php . Как называется тема, которую вы используете? Вам нужно изменить «THEMENAME» на название вашей темы. Итак, если вы используете Garland (пример), измените «function THEMENAME_preprocess_page» на «function garland_preprocess_page»

5. Привет, спасибо за помощь. Моя тема bluemarine, поэтому я изменил ИМЯ темы на bluemarinefunction bluemarine_preprocess_page(amp;$ variables) { if ($variables[‘node’]-> type == «snap») { $variables[‘template_files’][] = ‘страница-узел-привязка’; } } но я все еще получаю эту ошибку. Должен ли файл шаблона содержать только приведенный выше код? Спасибо

Ответ №3:

Если вам нужна другая тема для другого типа контента, вы можете попробовать использовать модуль themekey. С помощью этого модуля вы можете настроить тему для разных типов контента.