Skip to main content

Tanya : Templating di Codeigniter

October 28, 2010 by myhariez

myhariez's picture

Agan-agan master CI mo nanya neeh (wah ane kebanyakan nanya)....
Selama ini kan di CI untuk views nya selalu di folder application/views, nah gimana neeh caranya biar bisa mindah lokasi file viewnya. Ane mo bikin aplikasi yang bisa multiple theme, jadi nanti semua view-nya aku taruh di folder themes yang sejajar dengan folder system.
Mohon solusinya gan? makseeh....

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

@syabac : woch tengkiu gan,

November 3, 2010 by myhariez, 27 weeks 1 day ago
Comment: 7332

myhariez's picture

@syabac : woch tengkiu gan, udah paham ane..... sep...sep.... besokkalo nanya lagi dijawab lagi ya..hihihihihihi
@delina : woke ke TKP gan, tengkiu...

BLS:

October 31, 2010 by syabac, 27 weeks 5 days ago
Comment: 7312

syabac's picture

misal struktur file/folder:
/
+ index.php
+ system
+ views
- theme1
- view1.php
- view2.php
- theme2
- view1.php
- view2.php

nah trus biar otomatis memilih theme mana, kita custom dikit library Loader

class MY_Loader extends CI_Loader{
    function MY_Loader(){
        parent::CI_Loader();
        $this->_ci_view_path = FCPATH . 'views/';
    }
 
    function view($view, $vars = array(), $return = FALSE){
        $view = $this->_get_current_theme() . '/' . $view;
        return parent::view($view, $vars, $return);
    }
 
    function _get_current_theme(){
        /*
        bisa ambil settingan thema dari DB, atau config file atau juga constant file,
        misal disimpan di constant file, application/config/constants.php
        tambahkan baris berikut pada file constants.php
 
        define('DEFAULT_THEME', 'theme1');
 
        */
 
        return DEFAULT_THEME;
    }
}

Nah nanti di Controller,

class Page extends Controller{
    function view_page(){
        $this->load->view('view1.php');
    }
}

Note: seperti WordPress atau Joomla, untuk mendukung multi theme, view file yang digunakan juga memiliki nama file yg sama di setiap theme, sehingga bila berganti theme tidak akan crash/error.

semoga membantu.

Sekedar Referensi

October 30, 2010 by Delina, 27 weeks 6 days ago
Comment: 7306

Delina's picture

Jika buat theme dengan memindahkan atau membuat beberapa view, kayaknya ribet juga. Untuk satu atau dua view mungkin ga apa-apa, tapi bagaimana jika aplikasi yang kita buat mencakup puluhan atau ratusan view? Tentunya tidak efektif membuat view untuk masing-masing theme.

Untuk pengolahan template sepertinya bisa meniru pola CMS Wordpress atau Joomla. Sekedar referensi, pembuatan template untuk CI bisa dibaca di sini:

williamsconcepts.com/ci/codeigniter/libraries/template/index.html

Premium Drupal Themes by Adaptivethemes