setCode($code); $this->_defaultView = $this->getCode(); } public function init() { /*load model and other preload data goes here*/ } protected function _onBeforeInit() { } protected function _onAfterInit() { } public function setCode( $code ) { $this->_code = $code; } public function getCode() { return $this->_code; } public function exec( $task = '' ) { if (method_exists($this, $task)) { $this->_task = $task; //For multicontrollers module version - who know, maybe that's will be?)) return $this->$task(); } return null; } public function getView( $name = '' ) { if (empty($name)) { $name = $this->getCode(); } if (!isset($this->_views[$name])) { $this->_views[$name] = $this->_createView($name); } return $this->_views[$name]; } public function getModel( $name = '' ) { if (!$name) { $name = $this->_code; } if (!isset($this->_models[$name])) { $this->_models[$name] = $this->_createModel($name); } return $this->_models[$name]; } protected function _createModel( $name = '' ) { if (empty($name)) { $name = $this->getCode(); } $parentModule = WaicFrame::_()->getModule( $this->getCode() ); $className = ''; if (waicImport($parentModule->getModDir() . 'models' . WAIC_DS . $name . '.php')) { $className = waicToeGetClassName($name . 'Model'); } if ($className) { $model = new $className(); $model->setCode( $this->getCode() ); return $model; } return null; } protected function _createView( $name = '' ) { if (empty($name)) { $name = $this->getCode(); } $parentModule = WaicFrame::_()->getModule( $this->getCode() ); $className = ''; if (waicImport($parentModule->getModDir() . 'views' . WAIC_DS . $name . '.php')) { $className = waicToeGetClassName($name . 'View'); } if ($className) { $view = new $className(); $view->setCode( $this->getCode() ); return $view; } return null; } public function display( $viewName = '' ) { $view = $this->getView($viewName); if (null === $view) { $view = $this->getView(); //Get default view } if ($view) { $view->display(); } } /** * Retrive permissions for controller methods if exist. * If need - should be redefined in each controller where it required. * * @return array with permissions * Can be used on of sub-array - WAIC_METHODS or WAIC_USERLEVELS */ public function getPermissions() { return array(); } /** * Methods that require nonce to be generated * If need - should be redefined in each controller where it required. * * @return array */ public function getNotNoncedMethods() { return array(); } /** * Methods that do not require user rights control */ public function getFrontMethods() { return array(); } public function getModule() { return WaicFrame::_()->getModule( $this->getCode() ); } protected function _prepareTextLikeSearch( $val ) { return ''; // Should be re-defined for each type } protected function _prepareModelBeforeListSelect( $model ) { return $model->setSelectFields('*'); } protected function _prepareListForTbl( $data ) { return $data; } protected function _prepareSearchField( $searchField ) { return $searchField; } protected function _prepareSearchString( $searchString ) { return $searchString; } protected function _prepareSortOrder( $sortOrder ) { return $sortOrder; } }