#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. С помощью этого модуля вы можете настроить тему для разных типов контента.