Лучший способ интегрировать PHP форум в сайт Django? - PullRequest
4 голосов
/ 23 мая 2009

Предположим, у вас есть сайт Django, и у вас есть устаревший форум PHP для поддержки и интеграции в ваш сайт, поскольку существующие решения для форумов Django еще недостаточно развиты.

Каков наилучший способ сделать это?

В настоящее время у меня есть простое представление, которое отображает очень простой шаблон, который расширяет базовый шаблон моего сайта, а в области контента есть только <IFRAME>, который содержит форум как src. Небольшая функция jQuery используется для максимизации высоты <IFRAME> (после завершения загрузки), чтобы она содержала 100% содержимого форума.

Но все это звучит довольно неловко. Как бы вы поступили об этом?

Ответы [ 2 ]

5 голосов
/ 24 мая 2009

Есть несколько вариантов. Ни одна из них не идеальна (но смешивание двух платформ никогда не бывает!)

  1. Используйте iframes, как вы предлагали (плохо, поскольку адрес в адресной строке всегда совпадает с адресом страницы django, и если кто-то скопирует ссылку с форума, это будет форум PHP, а не держатель django )

  2. Используйте iframes, но вместо того, чтобы все время использовать один и тот же src, проанализируйте URL и добавьте относительный бит в src iframe. т.е. если django видит /forum/this-url, установите src на http://forum-address/this-url и убедитесь, что все ваши ссылки нацелены на parent. Преимущество в том, что в адресной строке всегда отображается правильная ссылка (а не всегда / forum /). Вам нужно взломать ваш форум, чтобы это работало.

  3. Проксируйте содержимое и правильно добавьте его на страницу. Вам нужно будет передать файлы cookie, и они могут стать очень грязными, но в большинстве случаев это отличный способ интегрировать вещи, потому что ваши ссылки всегда будут правильными. Вам нужно разделить тему вашего форума, чтобы удалить все, что находится снаружи, включая теги <body>.

  4. Тема вашего форума так же, как и на сайте Django. Это дало бы лучшую производительность, но у вас могут быть проблемы, если вы используете динамический материал в шаблоне django. Можно обойти эту проблему, используя кеш шаблонов django для memcache и используя php-memcache для извлечения их в шаблон вашего форума.

Я делал 3 и 4 в прошлом. Я использовал 3 для очень простой формы (поэтому вам не приходилось иметь дело с файлами cookie и сессиями, как вы будете). Я использовал 4 для интеграции форума FluxBB в установку Wordpress. Оба PHP, но это будет очень много, чтобы загрузить FluxBB внутри Wordpress. Я кэшировал динамические шаблоны в memcache и извлекал их в шаблоне форума.

Для этого я бы, вероятно, предложил пойти с # 4. Боль в заднице - поддерживать две темы, но это, безусловно, самое быстрое решение.

1 голос
/ 24 мая 2009

Когда я прочитал резюме вопроса, я сразу подумал, что вам понадобится какой-то сценарий, который можно связать с сигналом через диспетчер в Django, чтобы синхронизировать базу данных пользователей с вашего сайта Django на форуме. Это будет держать сторону аутентификации под контролем, но вам все равно нужно будет сделать одно из предложенных Оли, чтобы они выглядели одинаково.

Тема, вероятно, будет наименее беспроблемным маршрутом, но это не значит, что это будет легко!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...