Скининг различных микросайтов на основе поддоменов - PullRequest
3 голосов
/ 28 мая 2011

Сводка

Поиск предложений о том, как использовать xdv для применения различных оболочек к одному и тому же сайту, в зависимости от того, какой URL-адрес использовался в запросе.

Текст

Требования

Нам нужно несколько микросайтов, каждый со своим скином и отличающийся от основного сайта.Микросайты должны иметь подмножество контента основного сайта.Часть основного контента сайта не должна быть видна на микросайтах, но этого можно достичь, просто скрыв ссылки на эти части, как из навигации, карты сайта, так и из портлетов.Это нормально, если пользователи находят скрытый контент с помощью URL-взлома.HTML-код микро-сайтов должен быть настраиваемым.Доступ к каждому микросайту осуществляется через поддомен основного сайта.т.е. пусть основной сайт будет http://site.com,, микро-сайты будут в http://a.site.com, http://b.site.com, и т. д.

Клиент хочет иметь возможность активировать новый микро-сайт.сайт без дополнительной разработки, только некоторые html, css и файлы изображений и добавление виртуального хоста в конфигурацию apache.

Возможные решения

коллективный. xdv звучит замечательно, но мы не смогливыяснить, как заставить его выбрать другой файл theme.html на основе URL.Кажется, что большинство решений сосредоточены на создании дочерних сайтов, основанных на подпапках сайта Plone.Мы не хотим иметь различный контент для микросайта, просто другой скин (и некоторый контент, скрытый от навигации), поэтому мы не хотим создавать новую папку для каждого микросайта.

Пара идей, которые мыхотите попробовать: а) настроить основной шаблон, чтобы он добавил отдельный класс в тело html для каждого субдомена, а затем использовать правила xdv, которые ищут этот класс, и б) пропатчить издателя, чтобы он что-то делал на основе субдомена.

Другой подход заключается в том, чтобы разветвлять коллектив.xdv для изменения своих «альтернативных тем», чтобы он использовал URL для выбора темы.

Что-то еще, что мы могли пропустить?

Спасибо!

1 Ответ

5 голосов
/ 28 мая 2011

Вам следует подумать о переходе на последний выпуск Plone 4.1.Используя новый и блестящий plone.app.theming (доступен только для Plone> 4.1), вы можете использовать theme parameters (см. Документацию здесь) внутри вашего файла правил diazo (прежний xdv), например, $hostпеременная (или любой другой пользовательский параметр, который вы можете установить для своего варианта использования - настраивается через панель управления plone.app.theming).Если вы застряли с Plone3.x/collective.xdv, то лучшим вариантом будет установка заголовков на вашем веб-сервере, например (пример Nginx).

location / {
...
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-XDV "true";
proxy_set_header X-Subsite "sub-a";
}

и доступ к ним из запроса.

...