<?php
/**
* Newssystem Klasse zum Auslesen und Einfügen von Beiträgen
*/
class Newssystem {
/**
* @var resource
*/
private $link;
/**
* Konstruktor der Klasse
*/
public function __construct() {
# Auslesen der Konfigurationsdatei
if(file_exists('config.ini.php')) {
$config = parse_ini_file('config.ini.php', true);
$this->link = mysql_connect($config['database']['db_host'], $config['database']['db_user'], $config['database']['db_pwd']);
mysql_select_db('news_db', $this->link);
}
}
/**
* Gibt ein Array mit den Newseinträgen zurück
*
* @return array
*/
public function getEntries() {
$sql = 'SELECT * FROM news ORDER BY UNIX_TIMESTAMP(date_created) DESC';
if(!$res=$this->query($sql)) {
return false;
}
$entries = array();
while($data = mysql_fetch_assoc($res)) {
$entries[] = new Newsitem($data);
}
return $entries;
}
/**
* Fügt einen neuen Beitrag in die Datenbank ein
*
* @param Newsitem $newsitem
* @return Newsitem | false
*/
public function insertEntry($newsitem) {
$sql = sprintf(
'INSERT INTO news SET author=%s, subject=%s, message=%s, date_created=NOW()',
$newsitem->getAuthor(),
$newsitem->getSubject(),
$newsitem->getMessage()
);
if(!$res=$this->query($sql)) {
return false;
}
$newsitem->setId(mysql_insert_id());
return $newsitem;
}
/**
* Führt den übergebenen SQL-Anweisung in der Datenbank aus
*
* @param string $sql
* @return resource
*/
private function query($sql) {
/**
* @todo: Hier sollte auf jeden Fall noch eine Überprüfung der Daten statt finden um SQL-Injections vorzubeugen.
*/
return mysql_query($sql, $this->link);
}
}
/**
* Newsitem Klasse. Dies stellt das Objekt eines Beitrages dar
*/
class Newsitem {
/**
* @var string
*/
protected $author;
/**
* @var string
*/
protected $subject;
/**
* @var string
*/
protected $message;
/**
* Konstruktor der Klasse
*/
public function __construct($data=null) {
# wenn daten übergeben wurden, setze die Objektparameter
if($data!=null) {
foreach($data as $key => $val) {
$this->$key = $val;
}
}
}
/**
* @return string
*/
public function getAuthor() {
return $this->author;
}
/**
* @param string $author
*/
public function setAuthor($author) {
$this->author = $author;
}
/**
* @return string
*/
public function getSubject() {
return $this->subject;
}
/**
* @param string $subject
*/
public function setSubject($subject) {
$this->subject = $subject;
}
/**
* @return string
*/
public function getMessage() {
return $this->message;
}
/**
* @param string $message
*/
public function setMessage($message) {
$this->message = $message;
}
}
?>