id; } public function getURL($flag = 0) { switch ($flag) { case HTMLSAFE: return htmlspecialchars($this->url); break; case HTMLFORMSAFE: return htmlspecialchars($this->url, ENT_QUOTES); break; default: return $this->url; break; } } public function getTitle($flag = 0) { switch ($flag) { case HTMLSAFE: return htmlspecialchars($this->title); break; case HTMLFORMSAFE: return htmlspecialchars($this->title, ENT_QUOTES); break; default: return $this->title; break; } } public function getDescription($flag = 0) { switch ($flag) { case HTMLSAFE: return htmlspecialchars($this->description); break; case HTMLFORMSAFE: return htmlspecialchars($this->description, ENT_QUOTES); break; default: return $this->description; break; } } public function setURL($value) { if ( is_null($value) || ($value == "") ) return false; if ( !filter_var($value, FILTER_VALIDATE_URL) ) return false; $this->url = $value; return true; } public function setTitle($value) { if ( is_null($value) || ($value == "") ) return false; $this->title = $value; return true; } public function setDescription($value) { if ( is_null($value) || ($value == "") ) return false; $this->description = $value; return true; } public static function getList() { global $globaldbh; $query = "SELECT id FROM " . WebLink::TABLE . " ORDER BY title"; $sth = $globaldbh->prepare($query); $sth->execute(); $thelist = array(); while ( $row = $sth->fetch(PDO::FETCH_ASSOC) ) { $thelist[] = new WebLink($row['id']); } return $thelist; } public function delete() { global $globaldbh; if ( is_null($this->id) ) return false; $query = "DELETE from " . WebLink::TABLE . " WHERE id=:id"; $fields = array(); $fields[':id'] = $this->id; $sth = $globaldbh->prepare($query); $saved = $sth->execute($fields); return $saved; } public function save() { global $globaldbh; $query = "INSERT INTO " . WebLink::TABLE . " " . "(id, url, title, description) " . "VALUES(:id, :url, :title, :description) " . "ON DUPLICATE KEY UPDATE " . "url=:url, title=:title, description=:description"; $fields = array(); $fields[':id'] = $this->getID(); $fields[':url'] = $this->getURL(); $fields[':title'] = $this->getTitle(); $fields[':description'] = $this->getDescription(); $sth = $globaldbh->prepare($query); $saved = $sth->execute($fields); return $saved; } public function __construct($id = null) { global $globaldbh; $query = "SELECT id, url, title, description FROM " . WebLink::TABLE . " WHERE id=:id"; $fields = array(); $fields[':id'] = $id; $sth = $globaldbh->prepare($query); $sth->execute($fields); if ( $row = $sth->fetch(PDO::FETCH_ASSOC) ) { $this->id = $row['id']; $this->setURL($row['url']); $this->setTitle($row['title']); $this->setDescription($row['description']); } return; } }