Задача: с помощью PHP изменить содержимое CSS файла.
Варианты решений:
Найти класс (еще пока не нахожу) который умеет: 1. прочитать и парсировать CSS файл (перевести содержимое в объекты) 2. сделать изменения (допустим свойств) 3. выдать новый CSS
Либо изменять CSS с помощью регулярных выражений. Кто что знает, думает?
_________________ Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
Обрабатывать CSS как любой текстовый файл, отдавая его при этом с правильным заголовком, ничто не мешает. Вопроса только в два - ЗАЧЕМ и в зависимости от ЧЕГО его менять?
Движек находиться в одном месте, получает запросы со всех сайтов, выдает всем сайтам одинаковый (почти) HTML.
Задача: разрешить владельцам сайтов менять: цвет, шрифт (т.е. CSS). Думаю сделать так: на каждом конкретном сайте будут лежать CSS файлы. Движек будет вставлять в HTML сначала свой CSS, а затем CSS клиента (если такой имеется).
Теперь надо разрешить изменять CSS файл на админке (для людей которые не знают CSS).
Для этого PHP будет парсировать CSS файл, показывать в HTML форме (кнопочки, списки, текстовые поля). Как только пользователь нажал "Submit", PHP изменяет CSS файл.
Получается что я пишу CMS? Я думал выбрать какую нибуть CMS и прикрутить к движку, но ни с одной CMS я еще не работал (а движек писал сам).
_________________ Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
Для этого не нужно парсить CSS. Нужно держать структуру в удобном для редактировании виде (хотя бы и в базе) и генерировать -- в одну сторону -- из нее CSS.
Crazy, похожий вариант у меня прокручивался в голове.
Потому что CSS код надо ассоциировать с такими понятиями как: шапка, меню продуктов, заголовки и т.п.
Поэтому думал хранить такой CSS код в виде XML файлов. А XML файлы прекрасно парсируются в PHP. Другой вариант: INI файлы (тоже парсируются в PHP с помощью parse_ini_file). Ну и с базой тоже вариант.
_________________ Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
AlexShop, я расскажу Вам страшную тайну про разные такие модули типа для Drupal...
CSS-код ассоциировать конечно можно. И можно просто воспользоваться (раз уж Вам так припёрло XML) такой идеей, как namespsce. Одна беда: конструкция сайта, страницы, html-(xml, sgml)-документа суть логика структуры. Например, к чему бы такое понятие как "логическая разметка"?
А уж CSS - язык ВИЗУАЛИЗАЦИИ. К логике разметки отношения не имеющий. Таки Вы хотели что? Оживить довольно банальную историю про классификацию и последующую обработку НАЗВАНИЙ директив CSS для классов (или чего Вам там хотелось, идентификаторов, тегов...)?
Ну понятно, что это сделать можно и достаточно легко. Повторю вопрос свой и Crazy, ЗАЧЕМ???
Ваши слова описали механизм действия, давно известный и вполне банальный, но ЦЕЛИ Ваших действий не объяснили.
Даже при установке по дефолту, сколько помню, там пользователь может выбрать собственную тему. Ну аж клиентским скриптом менять директивы CSS было модно уже много лет назад.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.