3 * Table Definition for cms_page_category
6 require_once 'DB/DataObject.php';
8 class Pman_Cms_DataObjects_Cms_page_category extends DB_DataObject
11 /* the code below is auto generated do not remove the above tag */
13 public $__table = 'cms_page_category';
18 function applyFilters($q, $au, $roo)
20 if(!empty($q['_category_list'])){
21 $this->category_list($roo);
26 function category_list($roo)
28 $core_enum = DB_DataObject::factory('core_enum');
29 $core_enum->setFrom(array(
30 'etype' => 'cms_page_type',
34 $core_enum->orderBy('seqid ASC');
35 $ce = clone($core_enum);
36 $base = $core_enum->fetchAll('id','name');
37 $display_names = $ce->fetchAll('id','display_name');
39 $type_to_name = array_flip($base);
41 $cms_page_category = DB_DataObject::factory('cms_page_category');
42 $cms_page_category->autoJoin();
49 $cms_page_category->selectAdd();
50 $cms_page_category->selectAdd("
51 cms_page_category.category_id as category_id,
52 join_category_id_id.is_draft AS category_id_is_draft,
53 cms_page_fullpath(cms_page_category.category_id, ' - ') as category_id_title,
54 join_page_id_id.page_type_id as page_id_page_type_id
57 $cms_page_category->groupBy("
58 cms_page_category.category_id,
59 join_category_id_id.is_draft,
60 join_category_id_id.title ,
61 join_page_id_id.page_type_id
64 $cms_page_category->orderBy("cms_page_fullpath(cms_page_category.category_id, ' - ') ASC");
66 foreach ($cms_page_category->fetchAll() as $s){
68 if($type_to_name['page'] == $s->page_id_page_type_id) {
69 $sub['page'][] = array(
70 'pid' => $s->category_id,
71 'category_id_is_draft' => $s->category_id_is_draft,
73 'display_name' => 'Pages - '. $s->category_id_title,
75 'page_type' => $type_to_name['page'],
80 if($type_to_name['blog'] == $s->page_id_page_type_id) {
81 $sub['blog'][] = array(
82 'pid' => $s->category_id,
83 'category_id_is_draft' => $s->category_id_is_draft,
85 'display_name' => 'Blog Posts - ' . $s->category_id_title,
87 'page_type' => $type_to_name['blog'],
93 $categories = array();
95 foreach ($display_names as $id=>$name){
96 if($base[$id] == 'page'){
98 $categories[] = array(
100 'category_id_is_draft' => 0,
101 'name' => $base[$id],
102 'display_name' => "{$name} (All)",
103 'type' => 'page_type',
104 'page_type' => $type_to_name['page'],
106 $categories = array_merge($categories, $sub['page']);
110 if($base[$id] == 'blog'){
111 $categories[] = array(
113 'category_id_is_draft' => 0,
114 'name' => $base[$id],
115 'display_name' => "{$name} (All)",
116 'type' => 'page_type',
117 'page_type' => $type_to_name['blog'],
119 $categories = array_merge($categories, $sub['blog']);
124 $categories[] = array(
126 'category_id_is_draft' => 0,
127 'name' => $base[$id],
128 'display_name' => $name,
129 'type' => 'page_type',
135 $roo->jdata($categories);