Aynı veriler için birden çok kez uygulamak için Fikirler

2 Cevap php

Ben CodeIgniter kullanıyorum, ancak soru herhangi bir MVC framework için de geçerlidir. Ben 5 farklı web sitelerinin yönetimi sağlayan özel bir CMS var. Kullanıcılar oturum ve bu siteler arasında geçiş. Onlar sitelerin alanların her içerik ekleyebilirsiniz. Girilebilir CMS ve veri her site için aynı.

Kamu bakan siteleri tüm tamamen farklı bir görünüm ve tüm diğerleri gibi aynı verileri içeren olsa bile farklı marka temsil eder.

Peki bu görüşlerini uygulama hakkında gitmek istiyorsunuz? Ben bakıyor olmalıdır herhangi bir tasarım desenleri var mı?

Ben şu anda bu yaptığını düşünebilirsiniz tek yolu, her web sitesi için farklı bir görünüm kapmak için her denetleyici> eylemin içinde bir switch deyimi koymak için ama bunu yapmanın çok daha akıllıca bir yolu olmalı. Etrafa şöyle bir kod yükleri üreten almak almak istiyorum:

class Home extends Controller {

    public function getPage()
    {
        $website = $this->session->userdata( "site_id" );
        switch( $website )
        {
            case "1":
                // load view one
            break;
            case "2":
                // load view 2
            break;
            // etc etc
        }
    }
}

2 Cevap

  • Controller ve tüm diğer kontrolörler CoreController sınıfını genişletmek var genişleten bir CoreController sınıf yazmak, senin durumunda Home:

    class CoreController extends Controller {}
    class Home extends CoreController {}
    
  • Site_ids ile view klasöründe klasör oluşturun:

    application/views/1/
    application/views/2/
    
  • Yapıcısı olarak baz klasörü açın CoreController.

O Django ile yaptığı şekilde yapmak onun optional "sites" framework:

  1. Sizin modelleri Sitesi ekleyin.
  2. Sitede ve mevcut modeller arasında bir ilişki kurmak.
  3. Yük Sitesi :: get_current_site () ve onun özelliklerini kullanın.

Fuel yaklaşımı organize dosyaları için iyidir.