Собственные стили для конкретного материала

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

Аватар пользователя Ch Ch 26 июня 2010 в 11:38

[float=right]CSS гmodule[/float]
[left]Иногда возникает потребность опубликовать большой документ в формате Full HTML.
При этом указывать стили каждому тегу с помощью аттрибута style может быть весьма утомительно.[/left]

[left]Можно конечно, править CSS стили темы оформления, подключать нужный файл через template_preprocess или использовать собственный шаблон для данной ноды. Недостатком всех этих методов является ручное редактирование файлов темы.[/left]

[left]Здесь предложили вставлять тег ‹style/› прямо в текст ноды. Однако, это не валидно. Все стили должны находиться внутри тега ‹head/›. Кроме этого, такой способ не работает в Google Chrome.[/left]

[left]CSS — это небольшой модуль, который позволяет пользователям, имеющим соответствующие права, добавлять собственные стили для конкретного материала. Кроме этого, есть возможность импортировать стили из другой ноды.[/left]
[center]скриншот[/center]

Перевод для модуля разместил здесь.

Комментарии

Аватар пользователя edhel edhel 26 июня 2010 в 12:01

Обычно вставляю css прямо в тему, но с годами css-ки обрастают кучей классов, стилей, о которых уже и не вспомнишь для чего они и где они используются... А потом меняется дизайн и становится всё еще хуже)

зы: не люблю css)

Аватар пользователя Eugeny Eugeny 26 июня 2010 в 14:32

Отрицательно отношусь к такому решению. Хранить css в базе и создавать дополнительные запросы мне кажется плохой затеей.

"Ch" wrote:
Недостатком всех этих методов является ручное редактирование файлов темы.

Не вижу тут не какого недостатка. По мне так лучше в редакторе с подсветкой править css.

Аватар пользователя Ch Ch 26 июня 2010 в 17:13

При удалении ноды, придется точно так же в редакторе искать и удалять эти стили. Иначе останется мусор.

По поводу запросов:

При загрузки каждой ноды (hook_nodeapi) добавляется всего один запрос:

db_query('SELECT css FROM {css} WHERE nid = %d', $node->nid);

Запрос «быстный» так как размер таблицы {CSS} соответствует кол-ву материалов с собственными стилями, которых обычно на порядок меньше чем остальных (у меня их всего несколько штук).

При необходимости, думаю, не трудно доработать модуль так, чтобы он хранил ИД «стилизованных» нод в глобальной переменной и не искал в базе стили для остальных нод.