8 define(
'CH_WSB_REQUEST_ERROR_MODULE_NOT_FOUND', 1);
9 define(
'CH_WSB_REQUEST_ERROR_PAGE_NOT_FOUND', 2);
17 if (
empty($aRequest) || ($sFileName = array_shift($aRequest)) ==
"") {
21 $sFile = CH_DIRECTORY_PATH_MODULES .
$aModule[
'path'] . $sFileName .
'.php';
22 if (!file_exists(
$sFile)) {
23 (
new self())->pageNotFound($sFileName,
$aModule[
'uri']);
25 if (isset(
$GLOBALS[
'ch_profiler'])) {
26 $GLOBALS[
'ch_profiler']->beginModule(
'file', ($sPrHash = uniqid(rand())),
$aModule, $sFileName);
29 if (isset(
$GLOBALS[
'ch_profiler'])) {
30 $GLOBALS[
'ch_profiler']->endModule(
'file', $sPrHash);
37 $sAction =
empty($aRequest) || (isset($aRequest[0]) &&
empty($aRequest[0])) ?
'Home' : array_shift($aRequest);
38 $sMethod =
'action' . str_replace(
' ',
'', ucwords(str_replace(
'_',
' ',
$sAction)));
40 if (isset(
$GLOBALS[
'ch_profiler'])) {
41 $GLOBALS[
'ch_profiler']->beginModule(
'action', ($sPrHash = uniqid(rand())),
$aModule, $sClass, $sMethod);
44 $mixedRet = (
new self())->_perform(
$aModule, $sClass, $sMethod, $aRequest);
46 if (isset(
$GLOBALS[
'ch_profiler'])) {
47 $GLOBALS[
'ch_profiler']->endModule(
'action', $sPrHash);
55 $sMethod =
'service' . str_replace(
' ',
'', ucwords(str_replace(
'_',
' ', $sMethod)));
57 if (isset(
$GLOBALS[
'ch_profiler'])) {
58 $GLOBALS[
'ch_profiler']->beginModule(
'service', ($sPrHash = uniqid(rand())),
$aModule, $sClass, $sMethod);
61 $mixedRet = (
new self())->_perform(
$aModule, $sClass, $sMethod, $aParams,
false);
63 if (isset(
$GLOBALS[
'ch_profiler'])) {
64 $GLOBALS[
'ch_profiler']->endModule(
'service', $sPrHash);
70 public static function serviceExists($mixedModule, $sMethod, $sClass =
"Module")
72 $oChWsbRequest =
new self();
73 return $oChWsbRequest->_methodExists($mixedModule,
'service', $sMethod, $sClass);
76 public static function actionExists($mixedModule, $sMethod, $sClass =
"Module")
78 $oChWsbRequest =
new self();
79 return $oChWsbRequest->_methodExists($mixedModule,
'action', $sMethod, $sClass);
84 (
new self())->_error(
'module',
$sModule);
89 (
new self())->_error(
'page', $sPage,
$sModule);
94 (
new self())->_error(
'method', $sMethod,
$sModule);
99 $sClass =
$aModule[
'class_prefix'] . $sClass;
102 if (
$oModule ===
false && $bTerminateOnError) {
105 if (
$oModule ===
false && !$bTerminateOnError) {
110 $bMethod = method_exists(
$oModule, $sMethod);
112 return call_user_func_array(array(
$oModule, $sMethod), $aParams);
114 if (!$bMethod && $bTerminateOnError) {
117 if (!$bMethod && !$bTerminateOnError) {
126 if (!isset(
$GLOBALS[
'chWsbClasses'][$sClass])) {
127 $sFile = CH_DIRECTORY_PATH_MODULES .
$aModule[
'path'] .
'classes/' . $sClass .
'.php';
128 if (!file_exists(
$sFile)) {
143 function _methodExists($mixedModule, $sMethodType, $sMethodName, $sClass =
"Module")
146 if (is_string($mixedModule)) {
155 $sClass =
$aModule[
'class_prefix'] . $sClass;
160 $sMethod = $sMethodType . str_replace(
' ',
'', ucwords(str_replace(
'_',
' ', $sMethodName)));
162 return method_exists(
$oModule, $sMethod);
167 header(
'Status: 404 Not Found');
168 header(
'HTTP/1.0 404 Not Found');
175 $_page[
'header'] =
_t(
"_sys_request_" .
$sType .
"_not_found_cpt");