Создание CMS для веб-сайта - PullRequest
2 голосов
/ 14 августа 2011

У меня есть мой основной сайт kansasoutlawwrestling.com, который будет использовать Codeigniter, а затем я также создаю CMS для себя, которая будет отдельной сущностью, которая будет расположена по адресу kansasoutlawwrestling.com/kowmanager.

Моя CMS будетиспользовать разные CSS, javascript и графические файлы, так что мне интересно, стоит ли мне просто две разные установки CI.Я попытался просмотреть PyroCMS , но папок слишком много, и у меня возникли проблемы с пониманием его файловой структуры.Как правильно это настроить?

Ответы [ 3 ]

5 голосов
/ 14 августа 2011

Основная структура Codeigniter состоит в том, что у вас есть 2 папки и 1 файл в корневой папке:

root/application/
root/system/
root/index.php

Теперь, очевидно, у вас может быть и много других файлов и папок, но этиэто основы, на которых работает каждое приложение Codeigniter.

Что делает каждое из них?Для начала, каждый запрос страницы начинается с index.php .На этой странице настраиваются некоторые конфигурации и некоторые константы, а затем передается управление Codeigniter.

Где находится «Codeigniter»?Это будет папка system .Эта папка никогда не должна быть затронута вами или кем-либо еще.Все, что относится к вашему приложению, хранится в папке application .Это включает в себя все ваши конфигурации, ваши контроллеры, ваши модели, ваши представления, даже ваши расширения библиотеки (хотя вы можете хранить другие вещи вне этой папки, такие как images / css / js / fonts и т. Д.).

Итак,правильный способ настройки магазина:

root/application/
root/system/
root/index.php

root/kowmanager/application
root/kowmanager/index.php

Но вы должны сообщить index.php вашего kowmanager, что папка system не находится втот же каталог.Итак, в index.php (внутри kowmanager ), около строки 25, вы должны увидеть это:

$system_path = "system";

Просто измените его на:

$system_path = "../system";

и все готово.

Теперь оба ваших приложения (ваш основной сайт и ваша CMS) будут совместно использовать одну и ту же базу Codeigniter.Когда придет время обновить CI, вы сделаете это один раз в основной папке system ...

3 голосов
/ 15 августа 2011

На вашем месте я бы, вероятно, не пошел бы по пути отдельных приложений. Если вы делитесь такими вещами, как код, который отображает страницу или регистрирует пользователя, вы будете повторять его для обеих установок. Очевидно, что для двух отдельных установок потребуется только одна системная папка, к которой вы бы предоставили общий доступ, поскольку в системе ничего не меняется. Если бы это был я, я бы, вероятно, просто установил маршрут в вашем файле config/routes.php.

Что-то вроде следующего (при условии, что у вас есть контроллер с именем 'kowmanager' внутри папки с именем 'kowmanager' в папке контроллеров):

// This would redirect all calls to kansasoutlawwrestling.com/kowmanager 
// to the kowmanager controller.  

$route['kowmanager'] = "kowmanager/kowmanager";

// Redirects all kowmanager/method requests to the kowmanager folder
// and a particular controller

$route['kowmanager/(:any)'] = "kowmanager/$1";

// Redirects all kowmanager/method requests to the kowmanager folder and a
// particular controller and method inside controller.

$route['kowmanager/(:any)/(:any)'] = "kowmanager/$1/$2";

Возможно, это не лучший вариант, но это означает, что вы не будете повторять один и тот же код дважды, и вы по сути создали два приложения в одном. Существует множество других способов сделать это, включая некоторые изменения в вашем файле .htaccess.

Если вам нужен более простой вариант, пройдите отдельную установку и помните о повторении кода. Придерживайтесь методологии СУХОЙ (не повторяйте себя).

3 голосов
/ 14 августа 2011

Я сделал несколько CMS Codeigniter и взял оба маршрута:

  • Интегрировано (общие файлы приложений и ресурсы)
  • Отдельная установка (только общие системные файлы, если есть)

Сначала мне понравилось удобство интегрированного подхода: когда мне требовалась настраиваемая библиотека или файл значков для передней части и , она была доступна без дублирования. С тех пор я передумал.

Мое мнение сейчас, после 4 лет или около того работы над этим, заключается в том, что преимущества наличия интегрированной CMS недолговечны.

  • 90% кода находится в бэкэнде, так что вы получите множество помощников, библиотек и т. Д., Которые используются только для администрирования.
  • Любые общие ресурсы, которые вам нужно настроить, могут в конечном итоге работать отлично с одной стороны, но ломать другую, или быть излишним / бесполезным.
  • Модели имеют тенденцию быть раздутыми для использования на внешнем интерфейсе, когда они заполнены кодом, который используется только для внутреннего интерфейса.
  • Общие шаблоны, js и css файлы почти никогда не работают. Панель управления, вероятно, не должна работать в IE {вставить версию здесь}, но ваш интерфейс должен.
  • Он делает обновления и апгрейды с обеих сторон, если вы не знаете точно, что вам нужно обновить, а что нет, и где вы, возможно, сделали настройки для внешнего интерфейса конкретного сайта, которые не следует изменять.
  • Логика аутентификации намного проще, когда ваши администраторы и обычные пользователи не находятся в одном сегменте
  • Отдельные установки проще в настройке, и их можно «привязать» к существующему сайту, не прибегая к его интеграции.

Мой совет: идите с отдельной установкой.

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