В одном из моих проектов у моих пользователей будет выделенная часть моего сайта ({username} .example.org). В этом поддомене я планирую позволить им легко менять дизайн.
Я посмотрел на какой-то онлайн-сайт, который уже делает это, например Tumblr , Posterous и Shopify .
Что касается языка этого приложения, я начал его с Django, в котором я успешно реализовал "рендеринг шаблонов, основанный на имени URL-адреса со стандартным откатом" * (http://someuser.example.com будет загружать шаблоны в шаблонах / someuser / * или в шаблонах / generic / *, если не найдено в первом).
Но я могу экспортировать его в PHP или Play! Framework, если они более приспособлены к моим потребностям.
Используется шаблонный движок Jinja2 , поскольку он так же прост, как шаблонизатор Django, прост в освоении и безопасен (ни один Python-код не может (должен нормально!) Выполняться).
Вот плюсы / минусы каждого решения, которое я нашел. Я был бы очень признателен за ваши мысли об этом и о том, как вы поступите, почему. Благодаря.
Примечание: пользователи будут хорошо знать HTML / CSS.
Изменение переменных (например, цвет заголовка и т. Д.)
Плюсы:
- Простой и безопасный
Минусы:
- Слишком ограниченный, пользователь, который хочет персонализировать свой сайт, не сможет сделать это с этим решением
Только загрузка CSS
Плюсы:
- Простота интеграции
- Безопасный
Минусы:
- Limited
- Где хранится изображение пользователя? (логотип, фон, градиент и т. д.)
Разрешить пользователю редактировать шаблоны (хранятся в базе данных)
Плюсы:
- Изменения важнее
- Пользователь (почти) может делать все, что ему захочется (реализует GA, FeedBurner и т. Д.)
Минусы:
- Куда они помещают статические файлы (логотип, фоновое изображение, какой-то спецэффект (градиент))?
- Шаблоны хранятся в базе данных, что требует еще одного запроса SQL для каждой отображаемой страницы.
Разрешить пользователю редактировать шаблоны (хранятся в файлах)
Плюсы:
- Изменения важнее
- Пользователь (почти) свободен делать все, что он хочет (реализует GA, FeedBurner и т. Д.)
- Доступ по FTP может быть включен, рутируя пользователя в его папке Template.
Минусы:
- Та же проблема для статических файлов
Кроме того, я застрял в том, как обрабатывать статические файлы (изображения, css, js): я не вижу, как определить VirtualHost в Apache (или NGinx), который будет запрашивать базу данных, чтобы узнать, какие пользователи принадлежит этот URL.
Спасибо за вашу помощь, я ценю!