summaryrefslogtreecommitdiff
path: root/utils/news.php
diff options
context:
space:
mode:
Diffstat (limited to 'utils/news.php')
-rw-r--r--utils/news.php103
1 files changed, 103 insertions, 0 deletions
diff --git a/utils/news.php b/utils/news.php
new file mode 100644
index 0000000..809e8dc
--- /dev/null
+++ b/utils/news.php
@@ -0,0 +1,103 @@
+<?php
+
+include_once("convert.php");
+
+class NewsEntry {
+ public $title;
+ public $time;
+ public $description;
+ public $category;
+
+ public function show()
+ {
+ echo "<div class=\"news_entry\">\n";
+ echo " <div class=\"news_title\">" .
+ htmlspecialchars_decode($this->title, ENT_QUOTES) . "</div>\n";
+ echo " <div class=\"news_time\">" . date("D M jS Y G:i", $this->time) . "</div>\n";
+ echo " <div class=\"news_description\">" .
+ htmlspecialchars_decode($this->description, ENT_QUOTES) . "</div>\n";
+ echo "</div>\n";
+ }
+
+ public function NewsEntry($title, $time, $category, $description)
+ {
+ $this->title = $title;
+ $this->time = $time;
+ $this->category = $category;
+ $this->description = $description;
+ }
+}
+
+class News {
+
+ private $file;
+ private $news = array();
+
+ public function show($number, $category)
+ {
+ // If number is -1 show all shows.
+ if($number == -1) $number = 100000;
+
+ foreach($this->news as $newsentry) {
+ if($newsentry->category == $category || $category == "all") {
+ $newsentry->show();
+ $number--;
+ }
+ if(!$number) return;
+ }
+ }
+
+ public function add($newsentry) {
+ $key = $newsentry->time;
+ $this->news[$key] = $newsentry;
+ }
+
+ public function write()
+ {
+ $fp = fopen($this->file, "w");
+ fwrite($fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+
+ fwrite($fp, "<news>\n");
+ foreach($this->news as $newsentry) {
+ fwrite($fp, " <newsentry title=\"" .
+ htmlspecialchars($newsentry->title, ENT_QUOTES, "UTF-8") . "\"\n");
+ fwrite($fp, " time=\"" . $newsentry->time . "\"\n");
+ fwrite($fp, " category=\"" . $newsentry->category . "\"\n");
+ fwrite($fp, " description=\"" .
+ htmlspecialchars($newsentry->description, ENT_QUOTES, "UTF-8") . "\">\n");
+ fwrite($fp, " </newsentry>\n");
+ }
+ fwrite($fp, "</news>\n");
+
+ fclose($fp);
+ }
+
+ private function read()
+ {
+
+ $dom = new DomDocument;
+ $dom->preserveWhiteSpace = FALSE;
+ $dom->load($this->file);
+ $params = $dom->getElementsByTagName('newsentry');
+
+ foreach ($params as $param) {
+ $newsentry = new NewsEntry($param->getAttribute('title'),
+ $param->getAttribute('time'),
+ $param->getAttribute('category'),
+ $param->getAttribute('description'));
+ $this->add($newsentry);
+ }
+
+ // Key sort
+ krsort($this->news);
+ }
+
+ public function News($file)
+ {
+ $this->file = $file;
+ $this->read();
+ }
+
+}
+
+?>