Как получить клиентские цветовые схемы в Symfony2, основываясь на URL-адресе, по которому вы попали на сайт - PullRequest
0 голосов
/ 04 октября 2011

У нас есть единственный веб-интерфейс в Symfony2, который используется рядом клиентов. Каждый клиент заходит на наш сайт по отдельному URL. Например:

  • клиент A входит с clientA.our-domain.com
  • клиент B входит с clientB.our-domain.com
  • клиент C может даже присоединиться с clientC.com, то есть использовать собственный выбранный домен вместо нашего поддомена

Однако, независимо от того, какой URL они используют, они заканчиваются тем же машина: наш сайт.

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

Теперь в заголовке HTTP 'Host' можно увидеть, какой URL использовал клиент, право. Можно ли это использовать, например, в app.php, чтобы установить некоторую глобальную переменную который определяет клиента? Twig может прочитать эту переменную в основном шаблоне и решить, какие Может быть, использовать таблицу стилей на ее основе?

Кроме того, должны ли мы тогда использовать переменные CSS? Это может быть предпочтительнее, чем хранить полные таблицы клонов для каждого клиента, если изменяются только цвета.

Итак, подведем итог:

  • Можно ли использовать HTTP-заголовок 'host' в Symfony2, чтобы указать Twig, какую таблицу стилей использовать?
  • Должны ли мы использовать CSS-переменные для определения цветов в схеме или есть лучший способ?

Заранее спасибо!

Dieter

1 Ответ

1 голос
/ 12 октября 2011

Лично я предпочел бы использовать специальный файл CSS для каждого сайта (содержащий стили, которые различны для каждого сайта, например, цвета или фоновые изображения). Например. site-clientA.our-domain.com.css.

Тогда вы можете использовать что-то вроде этого:

<link rel="stylesheet" type="text/css" 
      href="/path/to/css/site-{{ app.request.host }}.css" />

Или

{% if app.request.host in ['site-clientA.our-domain.com', 'site-clientB.our-domain.com', 'site-clientC.our-domain.com'] %}
  <link rel="stylesheet" type="text/css" 
        href="/path/to/css/site-style1.css" />
{% elseif ... %}
  ...
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...