Я хочу создать файл CSS на основе выбора пользователей.
Я рассматриваю, каким образом было бы лучше. Например, использовать массивы и сохранять их в XML файле или использовать хранилище ключей/значений, например Mongo DB.
Таким образом, массив можно вытащить из базы данных XML или ключа/значения, изменить и сохранить. После этого на основе этих данных будет создан CSS файл. Это значит, что файл CSS всегда будет создан правильно.
MySQL кажется неуклюжим при хранении массивов, если я не использую EAV. поэтому я упоминаю базу данных key/value, такую как mongo DB.
Причиной всего этого является то, что я просто хочу создать приятный пользовательский интерфейс, где пользователь witout знания CSS могут генерировать свою собственную тему.
Я просто хочу представить пользователю форму, в которой они могут заполнить цвет, ширину и т.д.
Как вы думаете, что было бы хорошо?
Пример массива:
$css = array( 'body' => array( 'font-family' => 'arial', 'font-size' => '12px', ), 'wrapper' => array( 'margin'=> '20px auto 20px auto', 'width' => '900px', ), 'content' => array( 'background-color' => '#c3c3c3', 'width' => '900px', ), );
Вы можете использовать функцию serialize
, чтобы поместить данные в формат, который можно сохранить в поле базы данных MySQL. При извлечении вы затем будете использовать функцию unserialize
для восстановления переменной.
Лучшим решением, вероятно, будет использование динамического файла CSS. Сохраните значения в виде массива в своей базе данных и передайте их в файл PHP, маскирующийся как файл CSS, чтобы установить динамические значения. Проверьте это: Внедрение PHP в CSS
Я думаю, что Мондобб был бы совершенным. Вы можете сохранить свой CSS по умолчанию, а затем только перезаписать поля, введенные пользователем. Я также думаю, что реляционный db, такой как mysql, просто мешает вам.
Почему вы не сохраняете данные как файл CSS, а затем разбираете, загружаете и сохраняете обратно в этот файл, когда пользователь хочет внести изменения? Тогда вам не нужно беспокоиться о генерации файла при его запросе.