Exemplo n.º 1
0
 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');
 }
Exemplo n.º 2
0
 /**
  * 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);
     }
 }
Exemplo n.º 3
0
    /**
     * 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;
    }