diff --git a/application/models/BlogPost.php b/application/models/BlogPost.php index 45f8ded..1f2be3d 100644 --- a/application/models/BlogPost.php +++ b/application/models/BlogPost.php @@ -2,17 +2,16 @@ class BlogPost extends Fiktiv_Model_Abstract { - protected $_id; - protected $_title; - protected $_content; - protected $_author; - protected $_pubDate; - protected $_isPublished = false; - - public function __construct(array $data = array()) - { - $this->setAttribs($data); - } + protected $_data = array(); + + protected $_default = array( + 'id' => 0, + 'title' => null, + 'content' => null, + 'pubDate' => null, + 'author' => null, + 'isPublished' => false + ); public function setAttribs(array $data) { @@ -35,83 +34,55 @@ class BlogPost extends Fiktiv_Model_Abstract } } - public function getId() - { - return $this->_id; - } - public function setId($id) { if (is_numeric($id)) - $this->_id = $id; - } - - public function getTitle() - { - return $this->_title; + $this->_data['id'] = $id; } public function setTitle($title) { if (is_string($title) && null == $title[30]) { - $this->_title = $title; + $this->_data['title'] = $title; return true; } return false; } - - public function getContent() - { - return $this->_content; - } - public function setContent($content) { if (is_string($content)) { - $this->_content = $content; + $this->_data['content'] = $content; return true; } return false; } - - public function getAuthor() - { - return $this->_author; - } - public function setAuthor($author) { if ($author instanceof User) { - $this->_author = $author; + $this->_data['author'] = $author; return true; } return false; } - - public function getPubDate() - { - return $this->_pubDate; - } - public function setPubDate($date) { if (Fiktiv_Date::isDate($date)) { - $this->_pubDate = new Fiktiv_Date($date); + $this->_data['pubDate'] = new Fiktiv_Date($date); } else if ($date instanceof Zend_Date) { - $this->_pubDate = $date; + $this->_data['pubDate'] = $date; } else { @@ -124,9 +95,9 @@ class BlogPost extends Fiktiv_Model_Abstract public function isPublished($flag = null) { if (null === $flag) { - return $this->_isPublished; + return $this->_data['isPublished']; } - $this->_isPublished = (boolean)$flag; + $this->_data['isPublished'] = (boolean)$flag; } } \ No newline at end of file diff --git a/application/models/Mapper/BlogPost.php b/application/models/Mapper/BlogPost.php index 0a1f04a..4d955da 100644 --- a/application/models/Mapper/BlogPost.php +++ b/application/models/Mapper/BlogPost.php @@ -65,7 +65,10 @@ class Mapper_BlogPost extends Fiktiv_Model_Mapper_DbTableAbstract public function findAll($limit = null) { - $rows = $this->_dbTable->fetchAll(null, 'pubDate DESC'); + if (!is_numeric($limit)) + throw new Fiktiv_Exception('limit must be numeric'); + + $rows = $this->_dbTable->fetchAll(null, 'pubDate DESC', $limit); $posts = array(); diff --git a/application/models/User.php b/application/models/User.php index f86f551..e6583e6 100644 --- a/application/models/User.php +++ b/application/models/User.php @@ -5,55 +5,21 @@ */ class User extends Fiktiv_Model_Abstract { - protected $_id = 0; - protected $_email; - protected $_firstName; - protected $_lastName; - protected $_regDate; - protected $_isDeleted = false; + protected $_data = array(); - - public function __construct($data = array()) - { - $data = (array)$data; - - $this->setAttribs($data); - } - - /** - * Quick way to set user data - * @param array $data - */ - public function setAttribs(array $data) - { - foreach ($data as $key => $value) { - - switch(strtolower($key)) { - case 'email': - $this->setEmail($value); - break; - case 'firstname': - $this->setFirstName($value); - break; - case 'lastname': - $this->setLastName($value); - break; - case 'regdate': - $this->setRegDate(new Zend_Date($value)); - break; - } - } - } - - public function getId() - { - return $this->_id; - } + protected $_default = array( + 'id' => 0, + 'email' => null, + 'firstName' => null, + 'lastName' => null, + 'regDate' => null, + 'isDeleted' => false + ); public function setId($id) { if (is_numeric($id)) - $this->_id = $id; + $this->_data['id'] = $id; } /** @@ -66,7 +32,7 @@ class User extends Fiktiv_Model_Abstract $validator = new Zend_Validate_EmailAddress(); if ($validator->isValid($email)) { - $this->_email = $email; + $this->_data['email'] = $email; return true; } @@ -83,7 +49,7 @@ class User extends Fiktiv_Model_Abstract public function setLastName($name) { if (is_string($name) && preg_match('/^[A-ö\ \.\-]{0,20}$/', $name)) { - $this->_lastName = $name; + $this->_data['lastName'] = $name; return true; } @@ -101,7 +67,7 @@ class User extends Fiktiv_Model_Abstract $name = trim($name); if (is_string($name) && preg_match('/^[A-ö]{2,8}\-?[A-ö]{2,8}$/', $name)) { - $this->_firstName = $name; + $this->_data['firstName'] = $name; return true; } @@ -119,10 +85,10 @@ class User extends Fiktiv_Model_Abstract if (is_string($date) && preg_match('/^(?:(?:19[0-9]{2})|(?:20[0-9]{2}))\-' . '(?:(?:0[1-9])|(?:1[012]))\-(?:(?:0[1-9])|(?:[12][0-9])|(?:3[01]))$/', $date)) { - $this->_regDate = $date; + $this->_data['regDate'] = $date; } else if ($date instanceof Zend_Date) { - $this->_regDate = $date->toString('yyyy-MM-dd'); + $this->_data['regDate'] = $date->toString('yyyy-MM-dd'); } else { return false; @@ -156,7 +122,7 @@ class User extends Fiktiv_Model_Abstract */ public function isActive() { - return !$this->_isDeleted; + return !$this->_data['isDeleted']; } /** @@ -165,7 +131,7 @@ class User extends Fiktiv_Model_Abstract */ public function __toString() { - return '(' . __CLASS__ . '){' . $this->_email . ', ' . $this->_firstName . ' ' . $this->_lastName . '}'; + return '(' . __CLASS__ . '){' . $this->_data['email'] . ', ' . $this->_data['firstName'] . ' ' . $this->_data['lastName'] . '}'; } /** @@ -173,14 +139,7 @@ class User extends Fiktiv_Model_Abstract */ public function toArray() { - return array( - 'id' => $this->_id, - 'email' => $this->_email, - 'firstName' => $this->_firstName, - 'lastName' => $this->_lastName, - 'isDeleted' => $this->_isDeleted, - 'regDate' => $this->_regDate - ); + return $this->_data; } /** diff --git a/application/modules/blog/controllers/IndexController.php b/application/modules/blog/controllers/IndexController.php index 27eba98..96b09f0 100644 --- a/application/modules/blog/controllers/IndexController.php +++ b/application/modules/blog/controllers/IndexController.php @@ -9,7 +9,8 @@ class Blog_IndexController extends Fiktiv_Controller_Action public function latestAction() { - $this->view->posts = $this->dataService->BlogPost->findAll(); + // Fetch last ten posts + $this->view->posts = $this->dataService->BlogPost->findAll(10); } public function readableAction() diff --git a/application/modules/blog/views/scripts/index/readable.phtml b/application/modules/blog/views/scripts/index/readable.phtml index fadce2c..0721b66 100644 --- a/application/modules/blog/views/scripts/index/readable.phtml +++ b/application/modules/blog/views/scripts/index/readable.phtml @@ -1,18 +1,16 @@
Lite text
+=$this->translate('u:BLOG_READABLE_TXT') ?>
php guru and security expert. Blogs about ...
-=$this->translate('BLOG_READABLE_SHIFLETT') ?>
php guru and security expert. Blogs about ...
+=$this->translate('BLOG_READABLE_NETTUTS') ?>