2013-12-07 2 views
1

Я просто не имею в виду, как определить глобальную переменную/константу в CodeIgniter. Позвольте мне объяснить: Я создал движок темы, который можно выбрать из текущей входной панели управления пользователя. Этот движок не очень сложный, но простая папка. во всяком случае, то, что я делаю во всем приложении, заключается в том, что я пишу одну строку кода, чтобы получить текущую тему, выбранную пользователем. Я использую одну строку кода, чтобы получить имя, а затем сохранить его в переменной:Как определить глобальную переменную (значение) в codeIgniter

$theme_name = $this->theme->get_theme_with_slash(false); 

И потом, я пользователя $ THEME_NAME, как это, чтобы получить надлежащее представление:

$this->load->view($theme_name.'result', $data); 

И во всех моих контроллерах, которые загружают представление, я должен повторить этот процесс. То, что мне нужно, это вызвать функцию, которая получает имя_имя и хранить в переменной, а затем использовать переменную/сессию/функцию в приложении. Мой подход в настоящее время является вспомогательной функцией, которая немного менее удобна по сравнению с сеансом/переменной.

ответ

1

Создание основного контроллера, так как ваш процесс требует логических операций, тогда вам нужен метод для этого.

приложение/ядро ​​/ MY_Controller.php

class MY_Controller Extends CI_Controller 
{ 

    protected $default_theme = 'theme'; 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function get_theme() 
    { 
     //your code for selecting the current theme selected from 
     //the database 
     $theme_from_db = ''; 

     return $theme_from_db == NULL ? $this->default_theme : $theme_from_db; 
    } 
} 

Ваш контроллер должен простираться MY_Controller

приложение/контроллер/view.php

class view extends MY_Controller 
{ 
    public function index() 
    { 
    $this->load->view($this->get_theme().'result', $data); 
    } 
} 
2

в код воспламенитель глобальные константы могут быть определены в

config->constants.php 

даже вам не нужно, чтобы загрузить его, он автоматически автоматически загружаются с помощью CI автоматически.

+0

так, то как я должен использовать CI libr овен в постоянном –

2

Я получил от этого руководства и это то, что я имею в верхней части моего файла конфигурации/config.php: (У меня есть набор пользовательских конфигурации для тестирования PAYPAL)

// HOW TO USE - For example if there's $config['foo'] = 'bar'; 
// in the config 
// using $this- >config->item('foo') will be 'bar'. 

// example for my paypal testing: 
$config['paypaltest']=0; 

http://ellislab.com/codeigniter%20/user-guide/libraries/config.html

и как получить доступ к контроллеру:

$paypaltest = $this->config->item('paypaltest'); 
0
In Codeigniter all constant is defined inside application/config/constant.php. 
like: define("CONSTANTNAME","value"); 

Constant degined here is accessible throughout all pages, ie; controllers, models and views 
Смежные вопросы