diff options
| author | deva <deva> | 2009-03-23 09:19:13 +0000 | 
|---|---|---|
| committer | deva <deva> | 2009-03-23 09:19:13 +0000 | 
| commit | 93a934051be4af5f61e28d98650808fcc701ae91 (patch) | |
| tree | 75e22f28c1fbb1fca50cb1d6955261b6b2667ed6 /utils/modules/news.php | |
| parent | 9059fdbae945e9ba925254203f835ad02907cfa2 (diff) | |
Restructured the files and formats of the modules.
Diffstat (limited to 'utils/modules/news.php')
| -rw-r--r-- | utils/modules/news.php | 119 | 
1 files changed, 119 insertions, 0 deletions
diff --git a/utils/modules/news.php b/utils/modules/news.php new file mode 100644 index 0000000..22de6a0 --- /dev/null +++ b/utils/modules/news.php @@ -0,0 +1,119 @@ +<?php + +include_once($UTIL_DIR . "/convert.php"); + +class NewsEntry { +	public $title; +	public $time; +	public $description; +	public $category; + +	public function show() +	{ +		$str = "<div class=\"news_entry\">\n"; +		$str .= "  <div class=\"news_title\">" . +			htmlspecialchars_decode($this->title, ENT_QUOTES) . "</div>\n"; +		$str .= "  <div class=\"news_time\">" . date("D M jS Y G:i", $this->time) . "</div>\n"; +		$str .= "  <div class=\"news_description\">" . +			htmlspecialchars_decode($this->description, ENT_QUOTES) . "</div>\n"; +		$str .= "</div>\n"; +		return $str; +	} + +	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 run($module) +	{ +		global $show; + +		switch($module) { +		case "news": +		default: +			if($show == "all") return $this->show(-1, "all"); +			else return $this->show(-1, "main"); +			break; +		} +	} + +	public function show($number, $category) +	{ +		$str = ""; + +		// If number is -1 show all shows. +		if($number == -1) $number = 100000; + +		foreach($this->news as $newsentry) { +			if($newsentry->category == $category || $category == "all") { +				$str .= $newsentry->show(); +				$number--; +			} +			if(!$number) return $str; +		} +		return $str; +	} + +	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; +		if(file_exists($file)) $this->read(); +	} + +} + +?>  | 
