summaryrefslogtreecommitdiffstats
path: root/modules-available/news
diff options
context:
space:
mode:
authorSimon Rettberg2023-11-14 14:47:55 +0100
committerSimon Rettberg2023-11-14 14:47:55 +0100
commit06bff0b9b84d47c43f9bc8aff06a29d85ebb7ed0 (patch)
tree7e5493b102074672d8cfd8fe1a61e49f080edbe8 /modules-available/news
parentUpdate phpstorm config (diff)
downloadslx-admin-06bff0b9b84d47c43f9bc8aff06a29d85ebb7ed0.tar.gz
slx-admin-06bff0b9b84d47c43f9bc8aff06a29d85ebb7ed0.tar.xz
slx-admin-06bff0b9b84d47c43f9bc8aff06a29d85ebb7ed0.zip
Add function param/return types, fix a lot more phpstorm complaints
Diffstat (limited to 'modules-available/news')
-rw-r--r--modules-available/news/page.inc.php47
1 files changed, 20 insertions, 27 deletions
diff --git a/modules-available/news/page.inc.php b/modules-available/news/page.inc.php
index bb74c711..291f15fc 100644
--- a/modules-available/news/page.inc.php
+++ b/modules-available/news/page.inc.php
@@ -67,18 +67,18 @@ class Page_News extends Page
User::assertPermission('access-page');
/* and also the news (or help) with the given id */
- $newsId = Request::get('newsid', false, 'int');
- $pageType = Request::get('type', false, 'string');
+ $newsId = Request::get('newsid', null, 'int');
+ $pageType = Request::get('type', null, 'string');
$this->locationId = Request::get('locationid', 0, 'int');
- if ($pageType === false && $newsId === false) {
+ if ($pageType === null && $newsId === null) {
Util::redirect('?do=news&type=news&locationid=' . $this->locationId);
}
- $this->pageType = $pageType === false ? 'news' : $pageType;
- $this->loadNews($newsId, $pageType);
+ $this->pageType = $pageType ?? 'news';
+ $this->loadNews($newsId);
foreach (self::TYPES as $type => $entry) {
Dashboard::addSubmenu('?do=news&type=' . $type . '&locationid=' . $this->locationId,
- Dictionary::translate('type_' . $type, true));
+ Dictionary::translate('type_' . $type));
}
} else {
@@ -103,7 +103,7 @@ class Page_News extends Page
} elseif ($action === 'delete') {
// delete it
User::assertPermission("$pageType.delete", $this->locationId);
- $this->delNews(Request::post('newsid', false, 'int'), $pageType);
+ $this->delNews(Request::post('newsid', Request::REQUIRED, 'int'), $pageType);
} else {
// unknown action, redirect user
Message::addError('invalid-action', $action);
@@ -149,7 +149,7 @@ class Page_News extends Page
$data = array(
'withTitle' => self::TYPES[$this->pageType]['headline'],
- 'newsTypeName' => Dictionary::translate('type_' . $this->pageType, true),
+ 'newsTypeName' => Dictionary::translate('type_' . $this->pageType),
'dateline_s' => Util::prettyTime($this->newsDateline),
'expires_s' => $this->formatExpires($this->newsExpires),
'currentContent' => $this->newsContent,
@@ -189,7 +189,7 @@ class Page_News extends Page
Render::addTemplate('page-news', $data);
}
- private function formatExpires($ts)
+ private function formatExpires(int $ts): string
{
if ($ts - 86400 * 365 * 5 > time())
return '-';
@@ -199,13 +199,12 @@ class Page_News extends Page
/**
* Loads the news with the given ID into the form.
*
- * @param int $newsId ID of the news to be shown.
- * @param string $pageType type if news id is not given.
+ * @param ?int $newsId ID of the news to be shown, or latest if null
*/
- private function loadNews($newsId, $pageType)
+ private function loadNews(?int $newsId): void
{
// check to see if we need to request a specific newsid
- if ($newsId !== false) {
+ if ($newsId !== null) {
$row = Database::queryFirst('SELECT newsid, title, content, dateline, expires, type FROM vmchooser_pages
WHERE newsid = :newsid LIMIT 1', [
'newsid' => $newsId,
@@ -217,7 +216,7 @@ class Page_News extends Page
$str = $this->locationId === 0 ? 'IS NULL' : ' = ' . $this->locationId;
$row = Database::queryFirst("SELECT newsid, title, content, dateline, expires, type FROM vmchooser_pages
WHERE type = :type AND locationid $str AND expires > UNIX_TIMESTAMP() ORDER BY dateline DESC LIMIT 1", [
- 'type' => $pageType,
+ 'type' => $this->pageType,
]);
}
if ($row === false)
@@ -235,7 +234,7 @@ class Page_News extends Page
/**
* Save the given $newsTitle and $newsContent as POST'ed into the database.
*/
- private function saveNews($pageType)
+ private function saveNews(string $pageType): bool
{
// check if news content were set by the user
$newsTitle = Request::post('news-title', '', 'string');
@@ -290,18 +289,12 @@ class Page_News extends Page
* @param int $newsId ID of the entry to be deleted.
* @param string $pageType type of news to be deleted. Must match the ID, otherwise do nothing.
*/
- private function delNews($newsId, $pageType)
+ private function delNews(int $newsId, string $pageType): void
{
- // sanity check: is newsId even numeric?
- if (!is_numeric($newsId)) {
- Message::addError('main.value-invalid', 'newsid', $newsId);
- } else {
- // check passed - do delete
- Database::exec('DELETE FROM vmchooser_pages WHERE newsid = :newsid AND type = :type LIMIT 1', array(
- 'newsid' => $newsId,
- 'type' => $pageType,
- ));
- Message::addSuccess('news-del-success');
- }
+ Database::exec('DELETE FROM vmchooser_pages WHERE newsid = :newsid AND type = :type LIMIT 1', array(
+ 'newsid' => $newsId,
+ 'type' => $pageType,
+ ));
+ Message::addSuccess('news-del-success');
}
}