карта в ини файле:
[welcome]
default = "welcome"
path[default] = "modules\welcome\Welcome_Controller"
path[user] = "modules\welcome\User_Controller"
actions = "index;"
обработчик сегментов по карте
<?php
private function _fetch_module() {
// загружаем карту модулей
$ini = parse_ini_file(CM_ROOT .'modules/map.ini', TRUE);
// если модуль по первому сегменту найден
if (isset($ini[$this->_segments[0]])) {
// передаем имя модуля переменной
$module = $this->_segments[0];
// разбиваем строку с экшенами
$actions = explode(';', $ini[$module]);
// передаем массив контроллеров переменной
$controllers = $ini[$module]['path'];
// если котроллер по второму сегменту найден
if (isset($controllers[$this->_segments[1]])) {
// записываем его в обьект
$this->controller = $controllers[$this->_segments[1]];
// если экшен по третьему сегменту найден
if (isset($actions[$this->_segments[2]])) {
// записываем его в обьект
$this->action = $this->_segments[2];
return 0;
}
// или если экшен по второму сегменту найден
} elseif (isset($actions[$this->_segments[1]])) {
// записываем котроллер по умолчанию в обьект
$this->controller = $controllers['default'];
// записываем экшен в обьект
$this->action = $this->_segments[1];
return 0;
}
}
}
?>