getRequest()->getParam(); $usr = $system->getUserSvc()->getUser(); if($step == iPlugInContent::STEP_BEFORE_RUN) { if(empty($param['cat']) && !empty($param['do_login']) && is_null($usr)) { $svc = $system->getUserSvc(); $result = $svc->loginUser($param['login'], $param['passwd'], 0); if(is_int($result)) $response->setRedirectURL(_SELF_ . '?error=' . $result); else $response->setRedirectURL(_SELF_); } elseif(empty($param['cat']) && !empty($param['do_logout']) && !is_null($usr)) { $svc = $system->getUserSvc(); $result = $svc->logoutUser(); $response->setRedirectURL(_SELF_); } } if($step == iPlugInContent::STEP_RUN) { if (empty($usr) || !$system->getUserSvc()->userHasPriv($usr)) throw new AccessDeniedException('Not authenticated!'); $cat = $system->getTarget('cat'); $plugin = $system->getTarget('plugin'); $part = $system->getTarget('part'); $action = $system->getTarget('action'); $fqn = explode('.', $plugin); $class = $fqn[count($fqn) - 1]; $pluginpath = str_replace('.', __DS__, $plugin); $basedir = file_exists(_PLUGINPATHX_ . __DS__ . $cat . __DS__ . $pluginpath) ? _PLUGINPATHX_ . __DS__ . $cat . __DS__ . $pluginpath : _PLUGINPATH_ . __DS__ . $cat . __DS__ . $pluginpath; $filename = $basedir . __DS__ . '_admin_' . __DS__ . 'pia.' . $part . '.php'; $classname = 'PIA' . ucfirst($class) . ucfirst($part); if(include_exists($filename)) { include ($filename); if(class_exists($classname)) { try { $class = new $classname(); $class->handleAction($response); } catch(Exception $e) { ob_start(); if($e instanceof \Mammut\Exception\PageNotFoundException) { switch($context->findBestLocale(array('de','en'))) { case 'en': echo 'Page not found: ' . $e->getMessage(); break; case 'de': echo 'Seite nicht gefunden: ' . $e->getMessage(); break; } } else { echo get_class($e) . ':' . $e->getMessage(); echo '
'; echo $e->getTraceAsString(); echo ''; } try { $db = System::getInstance()->getDB(); $data = new \stdClass(); $data->eventtime = new \DateTime(); $data->level = LOG_ERR; $data->area = 'module'; $data->areaname = $classname; $data->user = 0; $data->code = 0; $data->message = $e->getMessage(); if(strlen($data->message) > 254) $data->message = substr($data->message, 0, 254); $db->table('log')->insert($data); $id = $db->getInsertId(); if($e instanceof \Mammut\DB\SQLException) { $data = new stdClass(); $data->parent = $id; $data->eventtime = new \DateTime(); $data->level = LOG_ERR; $data->area = 'module'; $data->areaname = $classname; $data->user = 0; $data->code = 0; $data->message = $e->getQuery(); if(strlen($data->message) > 254) $data->message = substr($data->message, 0, 254); $db->table('log')->insert($data); } } catch(\Exception $e) { echo '
Note: SQL-Logger reported another error:' . $e->getMessage() . '
'; } $response->setFragment('CONTENT', ob_get_clean()); } } else { switch($context->findBestLocale(array('de','en'))) { case 'en': $response->setFragment('CONTENT', 'Warning: Class ' . $classname . ' not found'); break; case 'de': $response->setFragment('CONTENT', 'Warnung: Klasse ' . $classname . ' nicht gefunden'); break; } } } else { switch($context->findBestLocale(array('de','en'))) { case 'en': $response->setFragment('CONTENT', 'Warning: Class file ' . $classname . ' not found' . (defined('DEBUG') ? '