Опции для динамического генерирования стилей CSS из базы данных в PHP - PullRequest
4 голосов
/ 07 июня 2011

Я работаю над приложением, которое позволяет пользователям выбирать параметры стиля внутри приложения.Эти параметры затем будут использованы для создания динамической веб-страницы.Мне было интересно, какие у меня есть варианты для достижения стиля этой страницы, и каковы плюсы и минусы этих опций?

На мой взгляд, у меня есть 3 варианта:

  • Применение встроенного CSS

  • Создание динамической таблицы стилей php ... например: <link rel="stylesheet" type="text/css" href="http://domain.com/style.php/>

  • У меня также естьслышал о кэшировании таблиц стилей, но я даже не уверен, как это сделать.Если это лучший вариант, где лучше всего прочитать об этом?

Доступны ли все эти варианты?И что было бы лучше всего для того, чего я пытаюсь достичь?

Спасибо за любой вклад

Пол

Ответы [ 3 ]

5 голосов
/ 07 июня 2011

Конечно, ваш второй вариант самый лучший.

С помощью style.php вы можете выводить данные в любое время в зависимости от того, какой пользователь вошел в систему.

Учтите, что я использую style.php, даже не настраивая его для пользователя. С его помощью вы можете расширить функциональность CSS, как:

<?php $blue = 'color:#yourbluecolorFFF'; ?>    //  EXAMPLE

td { <?php echo $blue; ?>}
/*etc*/

Также не забудьте:

header('Content-Type: text/css');
1 голос
/ 07 июня 2011

Сводка TLDR

  1. Это основа того, что вы будете делать.
  2. Вы можете попробовать это, но я думаю, что вы побежитев ту же проблему кеширования.
  3. Файлы кэшируются на основе того, как их обслуживает ваш сервер, а не на основе вашего кода.

Я бы сказал, что загружать таблицы стилей постепенно и позволять пользователю выбирать желаемый стиль.

То есть загружать таблицы стилей в «слоях».Например, вы можете использовать статический "style.css", чтобы описать основы, общие для всех ваших стилей.Затем вы можете приготовить 3 листа, каждый из которых слегка изменяет / переопределяет стиль:

  1. red-style.css для цветов с красной темой,
  2. blue-style.css для синеготематические цвета,
  3. и т. д.

Оттуда у вас есть два варианта.Вы можете либо

  1. Оставить все значения классов / идентификаторов статическими и изменить таблицу стилей с помощью повторной загрузки страницы (и вставить ее для будущей загрузки страниц через PHP), либо
  2. Вы можете загрузить их все сразу, и ваш PHP изменит значения class / id (например, #content-article становится #content-article-red или #content-article-blue).Не рекомендуется.

Мои два цента, в любом случае.:)

0 голосов
/ 07 июня 2011

Это действительно зависит от того, насколько сложны варианты стилей. Если это что-то простое, возможно, лучше использовать встроенный CSS. Если есть много настроек, то я бы посоветовал вам создать их настроенный CSS во время «сохранения» и сохранить его в файловой системе. Лично я не предпочитаю styles.php, так как это дополнительная нагрузка на сервер, сравниваю веб-сервер, отправляющий статический файл, с необходимостью обрабатывать этот запрос через php и затем обслуживать контент.

Если у вас действительно мало посетителей и / или CSS меняются ОЧЕНЬ часто (что я не могу понять почему), вам лучше использовать встроенный CSS или генерировать динамические файлы CSS для каждого пользователя.

На основании вашего ответа в комментарии. Я думаю, что лучше всего создать файл CSS после сохранения и перезаписать файл CSS по умолчанию, который вы бы включили в пакет.

Самое простое решение, которое я вижу. Вы можете иметь шаблон CSS-файл, в котором вы можете иметь теги. Загрузите шаблон в переменную PHP. Замените теги входами, которые вы получаете из формы настроек. Сохранить / перезаписать CSS, все готово.

...