2016-03-19 3 views
0

Я разрабатываю панель администратора для управления цветами в интерфейсе. Я не хочу добавлять все цветовые переменные в файлы тем (например, header.phtml, footer.phtml и т. Д.), Но я хочу сгенерировать файл со всеми css-классами и цветовыми переменными. Пример.Преобразование php или phtml-файла в css

<?php 

$color = Mage::getStoreConfig('themeadmin/frontend/general_color'); 

echo '.top-header-container { background-color : #'.$color.'; } .menu { background-color : #'.$color.'; }'; 
?> 

Как я могу это сделать без добавления этого в файл темы? Могу ли я создать файл Css? Каков наилучший способ? Thanks

+1

Я голосую, чтобы закрыть этот вопрос не по теме, потому что речь идет не о Magento. Пожалуйста, рассмотрите вопрос о более общем ориентированном потоке stackoverflow –

+0

Вместо этого это Magento, потому что то, что я разработал, является административной панелью для моей темы magento, без каких-либо других сценариев cms или php. – user3309614

+0

Я бы предложил иметь все эти файлы CSS на месте заранее и на основе выбора пользователя в админе, включите относительную в тему. – Prateek

ответ

0

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

исх: Include: css with php file extension?

Таким образом, учитывая, что возможность вы можете сделать следующее:

  1. Создать действие контроллера в модуле.
  2. Код для этого действия просто выход действительного отформатирован STYLESHEET
  3. добавить, что действие в макет, с помощью XML или программно вводить лист в макет, потенциально через действие события наблюдателя/модель/контроллер

пример:

Mage::app()->getLayout()->getBlock('head')->addCss(
     'dyncatprod/adminhtml.css' 
); 

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

Этот способ всегда обеспечивал бы один файл с правильными значениями в виде плоской таблицы стилей.

+0

Спасибо proxiblue, можете ли вы дать мне ссылку на учебник или что-то подобное для этого? потому что я новичок в magento, и я разрабатываю панель администратора по учебнику. Я пытаюсь включить css.php, но инспектор браузера дал мне ошибку: Не удалось загрузить ресурс: сервер ответил статусом 403 (Запрещено). Разрешение папки media/css/css.php - 775. Но не работает – user3309614

+0

Привет. Извините, занят, чтобы предоставить примеры кода или Google для вас;) - все, что вам нужно, - это ответ. Я бы пошел с вариантом 2. Так что google на мотыге, чтобы создать модуль magento, а затем, как делать наблюдатели для событий, найти подходящее событие и написать код :) - Удачи – proxiblue

+0

Я не уверен в запрещенной проблеме , Возможно, на вашем веб-сервере включена функция безопасности. Не делайте этого какое-то время, поэтому не уверен, что что-то изменилось в отношении возможности сделать это. но если вы используете вариант 2, это станет NOOP, вы сможете вывести фиксированное имя файла. В том числе это будет как обычно. – proxiblue