Как лучше создать мультисайт в Codeigniter? - PullRequest
1 голос
/ 23 октября 2010

Я хочу знать, что может быть лучшим способом сделать мультисайт с одним бэкэндом.Я хочу сказать, что у меня есть глобальная корзина покупок (скажем, www.abc.com) и некоторые региональные корзины покупок (скажем, www.abc.fr, www.abc.in и т. Д.), И я хочу управлять ими с помощью однойend.

Должен ли я использовать одну базу данных и идентификатор сайта в своих таблицах?Также как сохранить файлы?

Спасибо всем.

Ответы [ 2 ]

2 голосов
/ 25 октября 2010

Подход site_id также работает хорошо, если вам нужна система, совместно использующая одну базу данных, я сделал это для нескольких приложений.

Лучший способ использовать этот код в MY_Controller:

    $domain = $this->input->server('SERVER_NAME');

    $this->load->model('sites_m');

    // Check to see if a site exists
    if ( ! $site = $this->sites_m->get_by('domain', $domain))
    {
        // Maybe this domain is an alias
        if ( ! $alias = $this->sites_m->get_alias($domain))
        {
            show_error('This domain has not been set up yet.');
            exit;
        }

        $site = $this->sites_m->get_by('id', $alias->site_id);

        if ($alias->is_redirect)
        {
            redirect('http://'.$site->domain.uri_string());
        }
    }

    $this->site =& $site;

Это означает, что в ваших моделях, представлениях, контроллерах вы можете использовать $ this-> site-> id. Или вы можете установить константу, в зависимости от того, что вы предпочитаете:)

1 голос
/ 23 октября 2010

Чуть больше года назад Фил Стерджон (частый участник CI) написал замечательное руководство о том, как это сделать.Смотрите здесь: http://philsturgeon.co.uk/blog/2009/06/How-to-Multi-site-CodeIgniter-Set-up

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