Настраваемый дизайн страницы (изменение внешнего вида - CSS)

XtremallyPurpur

Новичок
Настраваемый дизайн страницы (изменение внешнего вида - CSS)

Добрый день.
Клиент хочет изменяемый дизайн на сайте. Что это значит:
Он может менять цвет любого элемента
(фоны за текстом, шрифты текста и т.д)
из админки.
Использовать CSS - очевидное решение.

Вопрос такой:
Как дать возможность человеку далекому от программирования возможность менять CSS?

Я думаю вот о чем: при открытии в админке страницы настройки дизайна страницы, парсить CSS файл, и выводить в форму значения полей из CSS - цвета шрифтов, цвета фонов и т.д.
в человеко-понятном виде.
При изменении настроек заново формировать CSS файл.

Правильно? Или я чешу правой ногой левое ухо?
 

гоша

Guest
> выводить в форму значения полей из CSS

неправильно.
редактировать внешний вид надо (сюрприз) визуально.
 

HEm

Сетевой бобер
гоша
"в человеко-понятном виде." подразумевается
 

гоша

Guest
HEm

программу ворд знаешь?
вот как там и надо сделать.
без всяких "форм"
 

XtremallyPurpur

Новичок
гоша

Я представлял себе, чтобы пользователь, выбирал в форме в админке, так, например :

Выберите цвет фона за шапки : (тут выпадающий список с цветами, как в ворде том же)
Выберите шрифт заголовка : (тут выпадающий список с вариантами шрифтов)

и т.д.

ЗЫ. Насчет парсинга CSS, если кто-то решит пойти моим путем :) :
http://pear.php.net/package/HTML_CSS

ЗЫЫ. Или как-то можно по-другому сделать?
 

Lav

Guest
XtremallyPurpur
Нормально. Всё равно этим почти никто пользоваться не будет. А гошу не слушай, а то он ещё посоветует свою операционку написать под это дело...
 

IntenT

SkyDiver
парсить цсс - неправильно.
цвета и настройки надо хранить отдельно. в базе, или в файлах.
редактировать в форме.
потом, когда надо, на основе этих значений собирать/генерировать цсс
 

Lav

Guest
Хм. А *.CSS - уже и не файл? :)

Не вижу принципиальной разницы между хранением данных в файле "style.dat" и "style.css".
 

HEm

Сетевой бобер
Lav
парсинг файла css не так прост, как, скажем csv
 

IntenT

SkyDiver
Lav
сходи к окулисту :)

показываю разницу:
---style.css---
.toplink a, .toplink a:visited, .toplink a:active, .toplink a:link
{
text-decoration : none;
color : Black;
}

TD, LI, UL {
font-family: arial, tahoma, verdana;
font-size:12px
}

/---style.css---

---style.dat---
[tables]
bgcolor=#ff0000
border=0

[links_visited]
color=FF0000
underline=no
face=arial

/---style.css---

Что проще распарсить? (это если по каким-то причинам не подходят стандартные функции чтения ini-файлов)
 

Frol

Новичок
IntenT
если нету сил распарсить css -- то не окулист тебе нужен
 

IntenT

SkyDiver
Frol
Мне такая глупость как парсить цсс и в голову прийти не может.
так что если решил парсить - то тут точно окулист не поможет. тут к более веселым дохтурам надо
 

HEm

Сетевой бобер
Frol
распарсить можно что угодно, но размеры кода и время выполнения тут несопоставимы просто

и вообще, это кончено, может быть желание клиента, но доверять правку дизайна человеку, который не может понять как это делается в CSS - это маразм

p.s. директора не рисуют рекламные плакаты и не поручают это дело своим секретаршам, на это у них есть умельцы в отделе рекламы
 

Frol

Новичок
IntenT
а мне не приходило в голову хранить все в базе и потом уже генерить css
HEm
если там будут выпадающие списки или просто проверяет значения на правильность -- то все будет ок
 

Krisha

pain in the neck
Нафига парсить-то CSS? Делаем шаблончик типа:

A.list
{
text-decoration : {$a.list.text-decoration};
color : {$a.list.fontcolor};
}

дальше сохраняем в неком cfg файле такие строки:
$a['list']['fontcolor'] = "#000000";
$a['list']['text-decoration'] = "none";

и всёёёё
 

Frol

Новичок
IntenT
я пробывал, и не раз
что легче написать один рег или систему работы с бд?
тем более, как уже было замечено, в PEAR есть решение
 

гоша

Guest
ну если сделать еще один шажок, то достаточно, очевидно, одного файла:

h1 {
color: {{ цвет заголовка | color | #ff0000 }}
}

a {
font-family: {{ шрифт ссылки | font | arial }}
}

итп

несложный preg_replace может из этого

1) соорудить форму
2) обновить значения
и 3) сгенерить css файл
 
Сверху