2010-10-23 5 views
1

Je veux savoir ce qui pourrait être la meilleure façon de faire multi-site avec un seul back-end. Je veux dire que j'ai un panier d'achat global (disons www.abc.com), et quelques caddies régionaux (disons www.abc.fr, www.abc.in etc.) et je veux les gérer avec un seul back- fin. Dois-je utiliser une base de données unique et un ID de site dans mes tables? Aussi comment maintenir les fichiers?Quelle peut être la meilleure façon de créer un multi-site dans Codeigniter?

Merci à tous.

Répondre

1

L'approche site_id fonctionne bien aussi si vous avez besoin d'un système partageant une seule base de données, je l'ai fait sur plusieurs applications.

La meilleure façon d'utiliser ce code dans un 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; 

Cela signifie dans vos modèles, vues, contrôleurs, tout ce que vous pouvez utiliser $ this-> site-> id. Ou vous pouvez définir une constante, selon votre préférence :)

+0

Vous pouvez bien sûr laisser le problème d'alias, c'est juste quelque chose que j'ai fait pour permettre aux domaines d'être parqués ou redirigés. –

Questions connexes