public function useModel($name = null) { if ($name) { if (strstr($name, '/')) { $names = explode('/', $name); $modelpath = $names[0] . _DS_ . 'model' . _DS_ . $names[1]; $modelname = $names[1] . 'Model'; $modelfile = $modelpath . 'Model.php'; } else { $modelpath = $name . 'Model'; $modelname = $name . 'Model'; $modelfile = _MODEL_DIR_ . $modelpath . '.php'; } } else { $modelpath = str_replace('Controller', '', get_class($this)) . 'Model'; $modelname = $modelpath; $modelfile = _MODEL_DIR_ . $modelpath . '.php'; } if (file_exists(_SYS_DIR_ . $modelfile)) { include_once _SYS_DIR_ . $modelfile; return $model = new $modelname($this->db); } else { q4mSystem::haltOnError('The file is not found', $modelfile, __FILE__, __LINE__); exit; } }
public function validate($file = '', $rule = '', $encode = 'utf8', $VAL = null) { q4mController::useHelper('validator'); if ($file == '') { $file = str_replace('Model', '', get_class($this)) . 'Rules.php'; } if ($rule == '') { $rule = str_replace('Model', '', get_class($this)); } if (file_exists(_SYS_DIR_ . _SETTINGS_DIR_ . $file . 'Rules.php')) { include_once _SETTINGS_DIR_ . $file . 'Rules.php'; if (!isset(${$rule}) || !count(${$rule})) { q4mSystem::haltOnError('The requested rule "' . ${$rule} . '" is empty in ', _SYS_DIR_ . _SETTINGS_DIR_ . $file . 'Rules.php', __FILE__, __LINE__); exit; } } else { q4mSystem::haltOnError('The file is not found', _SYS_DIR_ . _SETTINGS_DIR_ . $file . 'Rules.php', __FILE__, __LINE__); exit; } $rules = ${$rule}; $vc = new validator($rules, $encode, $VAL); if (count($vc->RULES)) { foreach ($vc->RULES as $key => $SV) { $vc->validate($key); } } if (count($vc->ERRORS)) { return $vc->ERRORS; } else { return false; } }
public function query($string, $values = null) { $stmt = $this->dbLink->prepare($string); $stmt->setFetchMode(PDO::FETCH_ASSOC); try { $stmt->execute($values); return $stmt; } catch (PDOException $e) { q4mSystem::haltOnError('Query error', get_class($this) . $e->getMessage(), __FILE__, __LINE__); exit; } }
public function logOut(&$view) { $_SESSION[_SESS_MY_KEY_] = array(); if (!file_exists(_SYS_DIR_ . _MY_DIR_ . 'auth_inc.php')) { q4mSystem::haltOnError('The file is not found', _SYS_DIR_ . _MY_DIR_ . 'auth_inc.php', __FILE__, __LINE__); exit; } include_once _MY_DIR_ . 'auth_inc.php'; if (!file_exists(_SYS_DIR_ . _HELPER_DIR_ . 'class.' . _AUTH_TYPE_ . '.php')) { q4mSystem::haltOnError('The file is not found', _SYS_DIR_ . _HELPER_DIR_ . 'class.' . _AUTH_TYPE_ . '.php', __FILE__, __LINE__); exit; } include_once _HELPER_DIR_ . 'class.' . _AUTH_TYPE_ . '.php'; $authclass = _AUTH_TYPE_; $authmodel = new $authclass(); $authmodel->showLogin($view); }
/** * Breaks donwn the REQUEST_URI and derives names of a controller, a method and its parameter. * If not specified, the defaults are: indexController, index() and an empty parameter. * GET is ignored here. It's handled as usual php $_GET. * After setting these names, the method of the controller is triggered. * @param none * @return none * Should be called as a static function from q4m_index.php */ public function kaboom() { $command = str_replace(dirname($_SERVER['PHP_SELF']) . "/", '', $_SERVER['REQUEST_URI']); $command = str_replace('?' . $_SERVER['QUERY_STRING'], '', $command); if (!strlen($command)) { $controller = 'indexController'; $method = 'index'; } else { $command = preg_replace("/^\\//", "", $command); $commands = explode('/', $command); if (isset($commands[0]) && strlen($commands[0])) { $controller = preg_replace("/(.+)(\\.[^.]+\$)/", "\$1", $commands[0]); $controller = $controller . 'Controller'; } else { $controller = 'indexController'; } if (isset($commands[1]) && strlen($commands[1])) { $method = preg_replace("/(.+)(\\.[^.]+\$)/", "\$1", $commands[1]); } else { $method = 'index'; } } if (file_exists(_CONTROLLER_DIR_ . $controller . '.php')) { include_once _CONTROLLER_DIR_ . $controller . '.php'; $controllerObj = new $controller(); $controllerObj->setDefaultMethod($method); $controllerObj->setTemplate($method); if (isset($commands[2])) { $controllerObj->action($commands[2]); } else { $controllerObj->action(); } } else { q4mSystem::haltOnError('The file can not be found', _CONTROLLER_DIR_ . $controller . '.php', __FILE__, __LINE__); exit; } }
public function showLogin(&$view, $message = '') { $view->assign('system_name', _SYSTEM_NAME_); $view->assign('base_path', _MY_PATH_); $view->assign('timestamp', time()); $view->assign('message', $message); if (isset($_POST[_USERNAME_NAME_])) { $view->assign(_USERNAME_NAME_, $_POST[_USERNAME_NAME_]); } else { $view->assign(_USERNAME_NAME_, ""); } if (isset($_POST[_PASS_NAME_])) { $view->assign(_PASS_NAME_, $_POST[_PASS_NAME_]); } else { $view->assign(_PASS_NAME_, ""); } try { $view->display(_MY_DIR_ . _DEFAULT_LANG_ . _DS_ . 'login.' . _TPL_EXT_); exit; } catch (SmartyException $e) { q4mSystem::haltOnError($e->getMessage(), get_class($this) . '::' . $this->default_method, __FILE__, __LINE__); exit; } }