Поскольку вам нужно настроить session
и запустить его, самое простое решение - использовать хук post_controller_constructor.
In config.php
$config['enable_hooks'] = TRUE;
Файл application / config / hooks.php
$hook['post_controller_constructor'][] = array(
'class' => '',
'function' => 'set_tab_constants',
'filename' => 'post_controller_hook.php',
'filepath' => 'hooks'
);
В файле application / hooks / post_controller_hook.php
function set_tab_constants()
{
if(isset($_SESSION['private']))
{
define("TAB_ACCOUNTS", "accounts");
define("TAB_INVENTORY", "inventory");
define("TAB_INVENTORY_PRODUCTS", "inventory_products");
define("TAB_INVENTORY_VIEW", "inventory_view");
define("TAB_ORDER_PRODUCTS", "order_products");
define("TAB_ORDERS", "orders");
define("TAB_ORDERS_VIEW", "orders_view");
define("TAB_VENDORACCOUNTS", "vendoraccounts");
}
else
{
define("TAB_ACCOUNTS", "back_accounts");
define("TAB_INVENTORY", "back_inventory");
define("TAB_INVENTORY_PRODUCTS", "back_inventory_products");
define("TAB_INVENTORY_VIEW", "back_inventory_view");
define("TAB_ORDER_PRODUCTS", "back_order_products");
define("TAB_ORDERS", "back_orders");
define("TAB_ORDERS_VIEW", "back_orders_view");
define("TAB_VENDORACCOUNTS", "back_vendoraccounts");
}
}
Прямой доступ к суперглобальному $_SESSION
позволяет избежать затрат на получение экземпляра CI
, поэтому класс session
можно использовать для чтения userdata
. Этот метод в любом случае напрямую читает переменную $_SESSION
. Избегайте посредников и покупайте напрямую!
В PHP область действия константы является глобальной. Вы можете получить доступ к константам в любом месте вашего скрипта независимо от области видимости.