Подключение стиля к одной странице

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

Аватар пользователя GerM GerM 1 марта 2019 в 18:59

Как сделать из такого сайта, такой. Только на 527 ноде.
Вроде в template.php прописаны в head файл стиля style.iee7.css
не могу понять куда прописать и что для страницы page_node_527.tpl.php

Стиль всего сайта
стиль для одной страницы
Хелп, я новичок

Комментарии

Аватар пользователя EvgenySorokin EvgenySorokin 1 марта 2019 в 22:26

Есть более простой вариант, без того, чтобы плодить N-ное кол-во дублей шаблонов - у body должен быть класс с NID ноды (посмотреть можно через исходный код страницы). Всего-то нужно, что в общие css прописать стили только для этой страницы, например:

body.node-56{
background:#000;
...
...
}

Еще можно через drupal_add_css() в теме или модуле подключить стиль только для этой ноды, но судя по всему, вам будет проще начать в варианта первого.

Аватар пользователя EvgenySorokin EvgenySorokin 2 марта 2019 в 11:44

Примерно так (в template.php):

<?php
function THEMENAME_preprocess_node(&$vars) {
    if(
$vars['nid'] == N) {
        
drupal_add_css(drupal_get_path('theme''THEMENAME') .'/css/some.css''file');    
    }
}
?>

N - номер ноды.
THEMENAME - имя темы.
потом очистить кеш. Если THEMENAME_preprocess_node уже есть в template.php, то второй раз его писать не надо, просто конструкцию в эту функцию впишите.

Аватар пользователя VasyOK VasyOK 2 марта 2019 в 0:27

Если тут http://mcpo-ostankino.ru/mcpo-production
, то .page-node-527

drupal_add_css() - это для крупных сайтов и сеодвинутых сайтоводов

А еще можно к ноде текстовое поле приделать и задать в нем класс для body модулем https://www.drupal.org/project/field_formatter_css_class - это обрегает от переписывания кучи стилей в случае если у ноды будет другой ИД шник.

Согласитесь читать стили легче когда написано
.production .gallery-item
, а не
.page-node-527 .view-id-news.view-display-id-page_grid .views-row

Хотя Бутсраперы со мной не согласятся (шутка)

Аватар пользователя VasyOK VasyOK 2 марта 2019 в 11:40
1

включаем theme_debug в settings.php, копируем шаблон ноды node.tpl.php в шаблон для ноды с нужным ИД.
В новом шаблоне (вверху) пишем:

<?php  
  drupal_add_css(drupal_get_path('theme', 'my_theme').'/css/mystyle.css', array('group' => CSS_THEME, 'weight' => 100));
?>

Взято отсюда. https://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_...
Натсаиваю, что нужно клонировать именно node.tpl.php, а не page.tpl.php