public function init(Website $website, Request $request) { $this->installedWidgets = $website->getWidgets(); $widgetRepo = new WidgetRepository($website); $widgetId = $request->getParamInt(0); if ($widgetId === 0) { // New widget $this->placedWidget = $this->getNewWidget($website, $request); } else { $this->placedWidget = $widgetRepo->getPlacedWidget($widgetId); } if ($request->hasRequestValue("submit") && Validate::requestToken($request)) { // Use incoming data $widgetDefinition = $this->installedWidgets->getDefinition($this->placedWidget); $data = $widgetDefinition->parseData($website, $widgetId); $this->placedWidget->setData($data); if ($this->isValid($data)) { // Save widget $widgetRepo->savePlacedWidget($this->placedWidget); $this->addSaveMessage($this->placedWidget, $website->getText()); } } $this->requestToken = RequestToken::generateNew(); $this->requestToken->saveToSession(); }
public function init(Website $website, Request $request) { $this->installedWidgets = $website->getWidgets(); $this->siteTitle = $website->getConfig()->get(Config::OPTION_SITE_TITLE); $widgetsRepo = new WidgetRepository($website); $this->widgets = $widgetsRepo->getWidgetsInDocumentWithId(self::DOCUMENT_ID); $this->editLinks = $website->isLoggedInAsStaff(true); }
public function init(Website $website, Request $request) { $isStaff = $website->isLoggedInAsStaff(); $id = $request->getParamInt(0); $this->editLinks = $website->isLoggedInAsStaff(true); // Load document $documentRepo = new DocumentRepository($website->getDatabase(), $isStaff); $this->document = $documentRepo->getDocument($id); // Load document widgets $this->widgetLoader = $website->getWidgets(); $widgetRepo = new WidgetRepository($website); $this->widgets = $widgetRepo->getWidgetsInDocumentWithId($id); }
public function init(Website $website, Request $request) { $this->installedWidgets = $website->getWidgets(); $widgetId = $request->getParamInt(0, 0); $widgetRepo = new WidgetRepository($website); $this->placedWidget = $widgetRepo->getPlacedWidget($widgetId); if (Validate::requestToken($request)) { $widgetRepo->deletePlacedWidget($this->placedWidget); $text = $website->getText(); $text->addMessage($text->t("main.widget") . ' ' . $text->t("editor.is_deleted"), Link::of($text->getUrlPage("edit_document", $this->placedWidget->getDocumentId()), $text->t("main.ok"))); } else { $this->requestToken = RequestToken::generateNew(); $this->requestToken->saveToSession(); } }
public function init(Website $website, Request $request) { $text = $website->getText(); $widgetId = $request->getParamInt(0); $moveUp = $request->getRequestString("direction", "up") === "up"; $widgetRepository = new WidgetRepository($website); $this->placedWidget = $widgetRepository->getPlacedWidget($widgetId); $this->installedWidgets = $website->getWidgets(); if (Validate::requestToken($request)) { // move $this->moveWidget($widgetRepository, $moveUp); $this->redirectUrl = $text->getUrlPage("edit_document", $this->placedWidget->getDocumentId()); } else { $text->addError(Validate::getLastError($text)); $linkText = $text->t("widgets.move_down"); if ($moveUp) { $linkText = $text->t("widgets.move_up"); } // Generate new request token, allowing user to perform action again $newRequestToken = RequestToken::generateNew(); $this->moveLink = Link::of($text->getUrlPage("move_widget", $widgetId, ["direction" => $moveUp ? "up" : "down", RequestToken::FIELD_NAME => $newRequestToken->getTokenString()]), $linkText); $newRequestToken->saveToSession(); } }
private function retrieveDocument(Website $website, DocumentRepository $documentRepo, $id, User $user) { if ($id === 0) { // New document return Document::createNew("", "", $user); } return $documentRepo->getDocumentOrWidgetArea($website->getWidgets(), $website->getText(), $id); }