diff options
-rw-r--r-- | modules/news.inc.php | 61 | ||||
-rw-r--r-- | templates/main-menu.html | 1 | ||||
-rw-r--r-- | templates/page-news.html | 20 |
3 files changed, 82 insertions, 0 deletions
diff --git a/modules/news.inc.php b/modules/news.inc.php new file mode 100644 index 00000000..03850527 --- /dev/null +++ b/modules/news.inc.php @@ -0,0 +1,61 @@ +<?php + +class Page_News extends Page +{ + + private $latestNews = array(); + + protected function doPreprocess() + { + // load user, we will need it later + User::load(); + + // check if news content were set by the user + $newsTitle = Request::post('news-title'); + $newsContent = Request::post('news-content'); + if ($newsContent !== false && $newsTitle !== false) { + + // we got title and content, save it to DB + Database::exec("INSERT INTO news (dateline, title, content) VALUES (:dateline, :title, :content)", array( + 'dateline' => time(), + 'title' => $newsTitle, + 'content' => $newsContent + )); + // all done, redirect to main news page + Util::redirect('?do=News'); + } + + } + + protected function doRender() + { + // user must be logged in + if (!User::isLoggedIn()) { + Render::addTemplate('page-main-guest'); + return; + } + + // only admins should be able to edit news + if (!User::hasPermission('superadmin')) { + Message::addError('no-permission'); + return; + } + + // fetch the latest news + $res = Database::simpleQuery('SELECT * FROM news ORDER BY dateline DESC LIMIT 1'); + while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + $latestTitle = $row['title']; + $latestContent = $row['content']; + $latestDate = $row['dateline']; + } + // show it to the user + Render::addDialog('News Verwaltung', false, 'page-news', array( + 'token' => Session::get('token'), + 'latestDate' => DateTime::createFromFormat('U', $latestDate)->format('Y-m-d H:i:s'), + 'latestContent' => $latestContent, + 'latestTitle' => $latestTitle + )); + + } + +} diff --git a/templates/main-menu.html b/templates/main-menu.html index a419857c..50fdd211 100644 --- a/templates/main-menu.html +++ b/templates/main-menu.html @@ -26,6 +26,7 @@ <li><a href="?do=VmStore">VM Speicherort</a></li> </ul> </li> + <li><a href="?do=News">News</a></li> </ul> <ul class="nav navbar-nav navbar-right"> {{{loginPanel}}} diff --git a/templates/page-news.html b/templates/page-news.html new file mode 100644 index 00000000..37a23b66 --- /dev/null +++ b/templates/page-news.html @@ -0,0 +1,20 @@ +<p>Hier haben Sie die Möglichkeit, die von bwLehrpool-Clients angezeigten News zu editieren. +</p> +<form action="?do=News" method="post"> + <div class="panel panel-default"> + <div class="panel-heading">bwLehrpool News + </div> + <div class="panel-body"> + <div class="form-group"> + <span class="input-group-addon slx-ga"><strong>Titel</strong></span> + <input type="text" name="news-title" class="form-control" placeholder="Willkommen!" value="{{latestTitle}}"> + <br></br> + <span class="input-group-addon slx-ga"><b>Inhalt</b></span> + <textarea name="news-content" class="form-control" rows="5" cols="30" placeholder="Willkommen beim bwLehrpool-System!">{{latestContent}}</textarea> + </div> + </div> + <div class="panel-footer">Letzte Aktualisierung: {{latestDate}}</div> + </div> + <input type="hidden" name="token" value="{{token}}"> + <button class="btn btn-sm btn-primary" type="submit">Speichern</button> +</form> |