Могу ли я предварительно обработать файл Less css?

Я использую Less с Drupal, и я хочу разрешить администраторам определять цвета для определенных элементов сайта во всем мире. Чтобы уточнить, у нас есть определенный тип контента, назовите его «уровень», и администраторы могут добавить уровень на сайт. Каждый уровень должен иметь связанный цвет, который будет цветом границы для определенных div и т. Д. Я бы хотел, чтобы администраторы могли устанавливать цвет через cms и отображать это во внешней таблице стилей.

Все затронутые элементы в DOM индексируются по классам. Единственное, что я могу придумать, - это в основном файле Less импортировать второй файл Less или CSS, который будет динамически генерироваться Drupal. Я просто хочу убедиться, что мне ничего не хватает, например, способ встроить php в файл less и выполнить php до того, как он будет передан браузеру или компилятору на стороне сервера.


person selfsimilar    schedule 01.02.2012    source источник
comment
Должно быть меньше? Вы можете легко смешивать таблицы стилей Less с обычным CSS.   -  person Brian Ortiz    schedule 02.02.2012
comment
Вы уже пробовали цветной модуль?   -  person chrisjlee    schedule 26.02.2012


Ответы (1)


При таком подходе вы получите сотни (или любую другую аудиторию) сгенерированных файлов .less. Не уверен, что вам нужен именно такой подход.

Позвольте пользователям определять цвета и сохранять их в db, а затем, когда пользователь входит в систему, загружайте его настройки и сгенерируйте код CSS, который вы просто вставляете в header.php (или аналогичный файл, который загружается на каждой странице в Drupal):

<?php if ($user->logged_in) { ?>
<style type="text/css">
  .header {
    background-color: <?php echo $background-color; ?>;
    color:            <?php echo $header-color; ?>;
  }
  .content {
    ...
  }
  ...
</style>
<?php } ?>

.. а остальные стили определены в файлах LESS.

Пользователь по умолчанию (не вошедший в систему) получит цвета по умолчанию для этих элементов, которые вы определяете в своих файлах LESS. Приведенное выше просто перезапишет их (поэтому убедитесь, что вы встроили его ниже, под которым вы вызываете основную таблицу стилей).

Я бы так и поступил.

person bzx    schedule 03.02.2012
comment
Я должен был быть более ясным: изменения, вносимые пользователями, предназначены для администраторов и будут глобальными изменениями на сайте. Ничего не зависит от пользователя. По сути, у нас есть некоторый тип контента, назовем его уровнем, который мы раскрашиваем, и я хочу разрешить пользователям (администраторам) устанавливать цвет, связанный с каждым новым уровнем, который они добавляют в систему. - person selfsimilar; 07.02.2012