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->whereAdd('join_category_id_id.translation_of_id = 0');
59 $cms_page_category->groupBy("
60 cms_page_category.category_id,
61 join_category_id_id.is_draft,
62 join_category_id_id.title ,
63 join_page_id_id.page_type_id
66 $cms_page_category->orderBy("cms_page_fullpath(cms_page_category.category_id, ' - ') ASC");
68 foreach ($cms_page_category->fetchAll() as $s){
70 if($type_to_name['page'] == $s->page_id_page_type_id) {
71 $sub['page'][] = array(
72 'pid' => $s->category_id,
73 'category_id_is_draft' => $s->category_id_is_draft,
75 'display_name' => 'Pages - '. $s->category_id_title,
77 'page_type' => $type_to_name['page'],
82 if($type_to_name['blog'] == $s->page_id_page_type_id) {
83 $sub['blog'][] = array(
84 'pid' => $s->category_id,
85 'category_id_is_draft' => $s->category_id_is_draft,
87 'display_name' => 'Blog Posts - ' . $s->category_id_title,
89 'page_type' => $type_to_name['blog'],
95 $categories = array();
97 foreach ($display_names as $id=>$name){
98 if($base[$id] == 'page'){
100 $categories[] = array(
102 'category_id_is_draft' => 0,
103 'name' => $base[$id],
104 'display_name' => "{$name} (All)",
105 'type' => 'page_type',
106 'page_type' => $type_to_name['page'],
108 $categories = array_merge($categories, $sub['page']);
112 if($base[$id] == 'blog'){
113 $categories[] = array(
115 'category_id_is_draft' => 0,
116 'name' => $base[$id],
117 'display_name' => "{$name} (All)",
118 'type' => 'page_type',
119 'page_type' => $type_to_name['blog'],
121 $categories = array_merge($categories, $sub['blog']);
126 $categories[] = array(
128 'category_id_is_draft' => 0,
129 'name' => $base[$id],
130 'display_name' => $name,
131 'type' => 'page_type',
137 $roo->jdata($categories);