public function executeUpdate(\core\HTTPRequest $request) { $this->page()->addVar('title', 'Modifier les identifiants de connexion'); $this->_addBreadcrumb(); $configData = $this->config->read(); $this->page()->addVar('username', $configData['username']); if ($request->postExists('login-password')) { $password = $request->postData('login-password'); if ($this->_hashPassword($password) == $configData['password']) { $configData['username'] = $request->postData('login-update-username'); $newPassword = $request->postData('login-update-password'); if (!empty($newPassword)) { $configData['password'] = $this->_hashPassword($newPassword); } try { $this->config->write($configData); } catch (\Exception $e) { $this->page()->addVar('error', $e->getMessage()); return; } $this->page()->addVar('updated?', true); } else { $this->page()->addVar('error', 'Incorrect password'); } } }
public function executeShowPage(\core\HTTPRequest $request) { $manager = $this->managers->getManagerOf('gutenberg'); try { $page = $manager->getPage($request->getData('pageName')); } catch (\Exception $e) { $this->page()->addVar('error', $e->getMessage()); return; } $this->page()->addVar('title', $page['title']); $this->page()->addVar('page', $page); }
public function executeDeletePage(\core\HTTPRequest $request) { $this->page()->addVar('title', 'Supprimer un billet'); $this->_addBreadcrumb(); $manager = $this->managers->getManagerOf('gutenberg'); $pageName = $request->getData('pageName'); if ($request->postExists('check')) { if (!$manager->pageExists($pageName)) { $this->page()->addVar('error', 'Cannot find the page named "' . $pageName . '"'); return; } try { $manager->deletePage($pageName); } catch (\Exception $e) { $this->page()->addVar('error', $e->getMessage()); return; } $this->page()->addVar('deleted?', true); } else { $page = $manager->getPage($pageName); $this->page()->addVar('page', $page); } }
public function executeIndex(\core\HTTPRequest $request) { $captcha = \lib\Captcha::build(); $this->page()->addVar('captcha', $captcha); if ($request->postExists('message-sender-name')) { $messageData = array('senderName' => trim($request->postData('message-sender-name')), 'senderEmail' => $request->postData('message-sender-email'), 'subject' => trim($request->postData('message-subject')), 'content' => trim($request->postData('message-content'))); $this->page()->addVar('message', $messageData); try { $message = new \lib\entities\ContactMessage($messageData); } catch (\InvalidArgumentException $e) { $this->page()->addVar('error', $e->getMessage()); return; } $captchaId = (int) $request->postData('captcha-id'); $captchaValue = (int) $request->postData('captcha-value'); $captcha = \lib\Captcha::get($captchaId); if (empty($captcha)) { $this->page()->addVar('error', 'Your session has expired. Please try again'); return; } if (!$captcha->check($captchaValue)) { $this->page()->addVar('error', 'Invalid captcha'); return; } $contactConfig = $this->config->read(); $messageDest = $contactConfig['email']; $messageSubject = $contactConfig['subjectPrepend'] . ' ' . $message['subject']; $messageContent = 'Nom : ' . $message['senderName'] . ' <' . $message['senderEmail'] . '>' . "\n"; $messageContent .= 'Sujet : ' . $message['subject'] . "\n"; $messageContent .= 'Message :' . "\n" . $message['content']; $messageHeaders = 'From: ' . $message['senderEmail'] . "\r\n" . 'Reply-To: ' . $message['senderEmail'] . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if (mail($messageDest, $messageSubject, $messageContent, $messageHeaders) !== false) { $this->page()->addVar('messageSent?', true); } else { $this->page()->addVar('error', 'Cannot send message : server error'); } } $this->page()->addVar('title', 'Contact'); }
public function executeRemoveRepository(\core\HTTPRequest $request) { $this->page()->addVar('title', 'Supprimer un dépôt'); $this->_addBreadcrumb(); $packageManager = $this->managers->getManagerOf('Packagecontrol'); $repoName = $request->getData('name'); $repo = $packageManager->getRemoteRepository($repoName); $this->page()->addVar('repository', $repo); if ($request->postExists('check')) { try { $packageManager->removeRemoteRepository($repoName); } catch (\Exception $e) { $this->page()->addVar('error', $e->getMessage()); return; } $this->page()->addVar('removed?', true); } }
public function executeShowAction(\core\HTTPRequest $request) { $this->page()->addVar('title', 'Afficher une action'); $this->page()->addVar('breadcrumb', array(array())); $moduleName = $request->getData('module'); $actionName = $request->getData('action'); $searchQuery = $request->getExists('q') ? trim($request->getData('q')) : null; $backend = $this->_getBackendMetadata($moduleName); $action = $this->_getAction($moduleName, $actionName); $this->page()->addVar('searchQuery', $searchQuery); if (!empty($backend) && !empty($action)) { $this->page()->addVar('backend', $backend); $this->page()->addVar('action', $action); $this->page()->addVar('title', $action['title']); $this->page()->addVar('breadcrumb', array(array('title' => $backend['title'], 'url' => $this->app->router()->getUrl($this->module(), 'showModule', array('module' => $moduleName))), array('title' => $action['title']))); if (isset($action['list'])) { if (!isset($action['list']['items'])) { return; } $itemsToList = $action['list']['items']; $ctrl = $this->app->buildController($moduleName, $actionName); $methodName = 'list' . ucfirst($itemsToList); if (method_exists($ctrl, $methodName)) { $items = $ctrl->{$methodName}($request); $router = $this->app->router(); $route = $router->getRoute($moduleName, $actionName); foreach ($items as $key => $item) { if (isset($item['vars']) && $route->hasVars()) { if (isset($action['list']['vars'])) { $routeVarsNames = $route->varsNames(); $joinVarsNames = $action['list']['vars']; $itemsVars = $item['vars']; $vars = array(); foreach ($routeVarsNames as $routeVarName) { if (isset($joinVarsNames[$routeVarName])) { $itemVarName = $joinVarsNames[$routeVarName]; $vars[$routeVarName] = $itemsVars[$itemVarName]; } } } else { $vars = $item['vars']; } $route->setVars($vars); } $items[$key]['url'] = $route->buildUrl(); } //Search query if (!empty($searchQuery)) { $searcher = new \lib\ArraySearcher($items); $items = $searcher->search($searchQuery, array('title', 'shortDescription')); } $this->page()->addVar('items', $items); } } } }
public function executeDeleteRoute(\core\HTTPRequest $request) { $this->page()->addVar('title', 'Supprimer une route'); $this->_addBreadcrumb(); $routeApp = $request->getData('app'); $routeId = (int) $request->getData('id'); $configPath = __DIR__ . '/../../../etc/app/' . $routeApp . '/routes.json'; try { $conf = new \core\Config($configPath); $routes = $conf->read(); foreach ($routes as $id => $route) { if ($id == $routeId) { unset($routes[$id]); break; } } $conf->write($routes); } catch (\Exception $e) { $this->page()->addVar('error', $e->getMessage()); return; } $this->page()->addVar('deleted?', true); }