public function init(Website $website, Request $request) { $categoryId = $request->getParamInt(0, 0); $categoriesRepo = new CategoryRepository($website->getDatabase()); $this->category = $categoriesRepo->getCategory($categoryId); $articlesRepo = new ArticleRepository($website); $this->articles = $articlesRepo->getArticlesData($categoryId); $this->showArticleEditLinks = $website->isLoggedInAsStaff(); $this->showCategoryEditLinks = $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) { $isStaff = $website->isLoggedInAsStaff(true); $documentRepo = new DocumentRepository($website->getDatabase(), $isStaff); $this->documents = $documentRepo->getAll(); $this->editLinks = $isStaff; }
public function init(Website $website, Request $request) { $text = $website->getText(); $articleId = $request->getParamInt(0); $showAdminPageLink = $website->isLoggedInAsStaff(true); $oArticles = new ArticleRepository($website); $article = $oArticles->getArticleOrFail($articleId); $this->article = $article; $formToken = RequestToken::generateNew(); $action = $request->getRequestString("action"); if ($action == "delete" && Validate::requestToken($request)) { // Bye bye article if ($oArticles->delete($article)) { $this->view = new ArticleDeleteTemplate($text, $article, $formToken, $showAdminPageLink, ArticleDeleteTemplate::STATE_DELETED); } else { $this->view = new ArticleDeleteTemplate($text, $article, $formToken, $showAdminPageLink, ArticleDeleteTemplate::STATE_ERROR); } return; } elseif ($action == "make_private" && Validate::requestToken($request)) { // Hide article for visitors $article->setHidden(true); if ($oArticles->saveArticle($article)) { $this->view = new ArticleDeleteTemplate($text, $article, $formToken, $showAdminPageLink, ArticleDeleteTemplate::STATE_HIDDEN); } else { $this->view = new ArticleDeleteTemplate($text, $article, $formToken, $showAdminPageLink, ArticleDeleteTemplate::STATE_ERROR); } return; } else { // Ask what to do $this->view = new ArticleDeleteTemplate($text, $article, $formToken, $showAdminPageLink, ArticleDeleteTemplate::STATE_CONFIRMATION); } $formToken->saveToSession(); }
public function init(Website $website, Request $request) { $this->keyword = trim($request->getRequestString("searchbox")); $this->pageNumber = $request->getRequestInt("page", 0); $this->showEditLinks = $website->isLoggedInAsStaff(); if (strLen($this->keyword) < self::MIN_SEARCH_LENGTH) { // Don't search for too short words if (!empty($this->keyword)) { $website->addError($website->t("articles.search_term") . " " . $website->tReplaced("errors.is_too_short_num", self::MIN_SEARCH_LENGTH)); } return; } // Fetch article count $articles = new ArticleRepository($website); $this->totalResults = $articles->getMatchesFor($this->keyword); // Count total number of pages, limit current page number $this->highestPageNumber = floor($this->totalResults / self::ARTICLES_PER_PAGE); if ($this->pageNumber < 0 || $this->pageNumber > $this->highestPageNumber) { $this->pageNumber = 0; } // Fetch articles $this->displayedArticles = $articles->getArticlesDataMatch($this->keyword, self::ARTICLES_PER_PAGE, $this->pageNumber * self::ARTICLES_PER_PAGE); // Fetch links $menus = new LinkRepository($website->getDatabase()); $this->links = $menus->getLinksBySearch($this->keyword); }
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) { $oArticles = new ArticleRepository($website); $yearNumber = $request->getParamInt(0, date('Y')); if ($yearNumber < self::MIN_YEAR || $yearNumber > self::MAX_YEAR) { $yearNumber = date('Y'); } $this->year = DateTime::createFromFormat('Y', $yearNumber); $this->yearNumber = $yearNumber; $this->articlesInYear = $oArticles->getArticlesDataCalendarYear($this->year); $this->showCreateLinks = $website->isLoggedInAsStaff(); }
public function init(Website $website, Request $request) { $this->request = $request; // Handle login ourselves // (Using the provided getMinimumRank helper gives an ugly // "You need to be logged in to view this page" message.) $this->loggedIn = $website->getAuth()->check(Authentication::RANK_USER, false); $this->loggedInAsAdmin = $website->isLoggedInAsStaff(true); if (!$this->loggedIn) { $this->errorMessage = $this->getLoginErrorMessage($website->getText(), $website->getAuth()); } $this->canCreateAccounts = (bool) $website->getConfig()->get(Config::OPTION_USER_ACCOUNT_CREATION); }
public function init(Website $website, Request $request) { $articleId = $request->getParamInt(0); $oArticles = new ArticleRepository($website); $this->article = $oArticles->getArticleOrFail($articleId); $this->editLinks = $website->isLoggedInAsStaff(); $this->currentUser = $website->getAuth()->getCurrentUser(); if ($this->article->showComments) { $oComments = new CommentRepository($website->getDatabase()); $this->comments = $oComments->getCommentsArticle($this->article->getId()); } else { $this->comments = []; } }
public function writeText(StreamInterface $stream, Website $website, $id, $data) { // Check variables if (!isset($data["title"]) || !isset($data["count"]) || !isset($data["display_type"]) || !isset($data["categories"])) { // The order variable is not checked, as older configurations may // not have it. The default value will be used instead. return; } // Title if (strLen($data["title"]) > 0) { $stream->write("<h2>" . htmlSpecialChars($data["title"]) . "</h2>"); } // Get options $categories = $data["categories"]; $articlesCount = (int) $data["count"]; $displayType = (int) $data["display_type"]; // Sorting $oldestTop = false; if (isset($data["order"]) && $data["order"] == self::SORT_OLDEST_TOP) { $oldestTop = true; } // Archive link $showArchiveLink = false; if (!isset($data["archive"]) || $data["archive"] == true) { $showArchiveLink = true; } $oArticles = new ArticleRepository($website); $articles = $oArticles->getArticlesData($categories, $articlesCount, $oldestTop); if ($displayType >= self::TYPE_LIST) { // Small <ul> list $oArticlesTemplate = new ArticleSmallListTemplate($website->getText(), $articles, $website->isLoggedInAsStaff(), $categories[0], $displayType == self::TYPE_LIST_WITH_IMAGES, $showArchiveLink); } else { // Real paragraphs $oArticlesTemplate = new ArticleListTemplate($website->getText(), $articles, $categories[0], $displayType == self::TYPE_WITH_METADATA, $showArchiveLink, $website->isLoggedInAsStaff()); } $oArticlesTemplate->writeText($stream); }
public function writeText(StreamInterface $stream, Website $website, $id, $data) { $text = $website->getText(); $editLinks = $website->isLoggedInAsStaff(); // Title $title = ""; if (isset($data["title"]) && strLen($data["title"]) > 0) { $title = "<h2>" . $text->e($data["title"]) . "</h2>"; } $stream->write($title); $oArticles = new ArticleRepository($website); $articles = $oArticles->getArticlesDataUpcomingEvents(); $articlesTemplate = new ArticleEventListTemplate($text, $articles, $editLinks, 0, true); // Articles $articlesTemplate->writeText($stream); }
public function init(Website $website, Request $request) { $this->showEditLinks = $website->isLoggedInAsStaff(); $this->selectedYear = $request->getRequestInt("year", 0); $this->selectedCategory = $request->getParamInt(0); // Fetch all categories $categories = new CategoryRepository($website->getDatabase()); $this->allCategories = $categories->getCategoriesArray(); // Check if valid category if ($this->selectedCategory != 0 && !array_key_exists($this->selectedCategory, $this->allCategories)) { $website->addError($website->t("main.category") . " " . $website->t("errors.not_found")); $this->selectedCategory = 0; } // Fetch all articles $articles = new ArticleRepository($website); $this->articleCountInYears = $articles->getArticleCountInYears($this->selectedCategory); $this->foundArticles = $articles->getArticlesDataArchive($this->selectedYear, $this->selectedCategory); }
public function writeText(StreamInterface $stream, Website $website, $id, $data) { if (!isset($data["menu_id"]) || !isset($data["title"])) { return; } $loggedInStaff = $website->isLoggedInAsStaff(true); $menuId = (int) $data["menu_id"]; // Title if (strLen($data["title"]) > 0) { $stream->write("<h2>" . htmlSpecialChars($data["title"]) . "</h2>\n"); } // Links $oMenu = new LinkRepository($website->getDatabase()); $links = $oMenu->getLinksByMenu($menuId); $linkTemplate = new LinkListTemplate($website->getText(), $links, $loggedInStaff); $linkTemplate->writeText($stream); // Link to add link if ($loggedInStaff) { $stream->write('<p><a class="arrow" href="' . $website->getUrlPage("create_link", $menuId)); $stream->write('">' . $website->t("links.create") . '</a></p>'); } }
/** Gets the links for the bottom of the page */ public function get_account_links_html(Website $website) { $textToDisplay = ""; if ($this->editing_someone_else) { // Editing someone else, don't show "My account" link $textToDisplay .= <<<EOT <p> <a class="arrow" href="{$website->getUrlPage("account", $this->user->getId())}"> {$website->tReplaced("users.profile_page_of", $this->user->getDisplayName())} </a><br /> <a class="arrow" href="{$website->getUrlPage("account_management")}"> {$website->t("main.account_management")} </a> EOT; } else { $textToDisplay .= '<p><a class="arrow" href="' . $website->getUrlPage("account") . '">' . $website->t("main.my_account") . "</a>\n"; if ($website->isLoggedInAsStaff(true)) { $textToDisplay .= '<br /><a class="arrow" href="' . $website->getUrlPage("account_management") . '">' . $website->t("main.account_management") . "</a>\n"; } $textToDisplay .= "</p>"; } return $textToDisplay; }
public function can_user_edit_someone_else(Website $website) { return $website->isLoggedInAsStaff(false); }
/** * Returns links to edit the profile, based on the permissions of the user * that is viewing this page. */ public function get_edit_links_html(Website $website) { $viewing_user = $website->getAuth()->getCurrentUser(); $returnValue = ""; // Get privileges $is_viewing_themselves = false; $is_viewing_as_moderator = false; $is_viewing_as_admin = false; if ($viewing_user != null) { $is_viewing_themselves = $this->user->getId() == $viewing_user->getId(); if ($website->isLoggedInAsStaff(false)) { $is_viewing_as_moderator = true; } if ($website->isLoggedInAsStaff(true)) { $is_viewing_as_admin = true; } } // Gravatar link + help if ($is_viewing_themselves) { // No way that other admins can edit someone's avatar, so only display help text for owner $returnValue .= <<<EOT <p> {$website->tReplaced("users.gravatar.explained", '<a href="http://gravatar.com/">gravatar.com</a>')} </p> EOT; } // Add all account edit links $edit_links = []; if (!$is_viewing_themselves && $is_viewing_as_moderator) { // Accessed by a moderator that isn't viewing his/her own account // Add (un)ban link $edit_links[] = $this->get_edit_link($website, "edit_account_status", "users.status.edit"); } if ($is_viewing_themselves || $is_viewing_as_admin) { // Accessed by the user themselves or an admin // Display links to edit profile $edit_links[] = $this->get_edit_link($website, "edit_email", "users.email.edit"); $edit_links[] = $this->get_edit_link($website, "edit_password", "users.password.edit"); $edit_links[] = $this->get_edit_link($website, "edit_display_name", "users.display_name.edit"); } if (!$is_viewing_themselves && $is_viewing_as_admin) { // Accessed by an admin that isn't viewing his/her own account // Add rank edit link and login link $edit_links[] = $this->get_edit_link($website, "edit_rank", "users.rank.edit"); // Only display login link if account is not deleted/banned if ($this->user->canLogIn()) { $edit_links[] = $this->get_edit_link($website, "login_other", "main.log_in"); } } if (count($edit_links) > 0) { $returnValue .= "<p>\n" . implode($edit_links) . "</p>\n"; } return $returnValue; }