2015-08-14 42 views
2

我有我的數據庫中的表,我得到一些蛞蝓文本的所有頁面可供選擇:彈頭通過郎笨

  • art_and_culture
  • business_and_financial
  • auto_and_moto

和通過我的網站顯示

<?php echo lang($slug_from_database); ?> 

我用這個方法,LanguageSwticher:

multi-language-support-in-codeigniter

所以在My_Controller.php我在構造:

$this->categories_list = $this->categories_model->entries(); 
    $list_categories['categories'] = $this->categories_list; 
    $this->data['sidebar_categories'] = $this->load->view('blocks/sidebar_categories', $list_categories, TRUE); 

和所有的類都可以從我的網站的所有頁面。問題是,當我發送到視圖的類別時,語言不是由在hooks.php中初始化的LanguageLoader.php控制器設置的(請參閱鏈接示例)。如果沒有語言,echo $ slug_from_database上沒有文本。你如何建議做?

+0

你應該添加一些細節.. – Linus

+0

主要的問題是在MY_Controller.php構造之後,鉤子LanguageLoader.php啓動。所以當我嘗試回顯lang('something')時,我在構造中沒有語言; 。 –

+0

我成功回答了我的問題。你能告訴我什麼? –

回答

0

我找到了一個解決方案:

創建:

在MY_Controller.php

public function LanguageLoader() { 

     $site_lang = $this->session->userdata('site_lang'); 
    if ($site_lang) { 
     $this->lang->load('message',$this->session->userdata('site_lang')); 
    } else { 
     $this->lang->load('message', $this->config->item('language')); 

    } 
} 

,並調用它的構造函數:$ this-> LanguageLoader();

和刪除

$hook['post_controller_constructor'] = array(
'class' => 'LanguageLoader', 
'function' => 'initialize', 
'filename' => 'LanguageLoader.php', 
'filepath' => 'hooks' 

);

from hooks.php所以現在我在控制器的構造中加載語言而不是掛鉤。