public function testSetStatus() { $c = new ae_CategoryModel(); $this->assertTrue(ae_CategoryModel::isValidStatus($c->getStatus())); $c->setStatus(ae_CategoryModel::STATUS_AVAILABLE); $this->assertEquals($c->getStatus(), ae_CategoryModel::STATUS_AVAILABLE); $this->setExpectedException('Exception'); $c->setStatus('bogus'); }
/** * Assign the loaded category models to their post models. * @param {array} $categories Category models. */ protected function assignCategoriesToPosts($categories) { $id2Post = array(); foreach ($this->items as $item) { $id2Post[$item->getId()] = $item; } foreach ($categories as $row) { $ca = new ae_CategoryModel(); $ca->setId($row['ca_id']); $ca->setTitle($row['ca_title']); $ca->setPermalink($row['ca_permalink']); $ca->setParent($row['ca_parent']); $ca->setStatus(ae_CategoryModel::STATUS_AVAILABLE); $id2Post[$row['pc_post']]->addCategory($ca); } }
/** * Load post category models. * @return {boolean} TRUE, if loading succeeded, FALSE otherwise. */ public function loadCategories() { if (!ae_Validate::id($this->id)) { throw new Exception('[' . get_class() . '] Cannot load post categories. No valid post ID.'); } $stmt = ' SELECT ca_id, ca_title, ca_parent, ca_permalink FROM ( SELECT * FROM `' . AE_TABLE_POSTS2CATEGORIES . '` WHERE pc_post = :id ) AS `' . AE_TABLE_POSTS2CATEGORIES . '` LEFT JOIN `' . AE_TABLE_CATEGORIES . '` ON pc_category = ca_id WHERE ca_status = :caStatus '; $params = array(':id' => $this->id, ':caStatus' => ae_CategoryModel::STATUS_AVAILABLE); $result = ae_Database::query($stmt, $params); if ($result === FALSE) { return FALSE; } foreach ($result as $row) { $ca = new ae_CategoryModel($row); $ca->setStatus(ae_CategoryModel::STATUS_AVAILABLE); $this->addCategory($ca); } return TRUE; }