620a9cfa0ee6b18ac4bde4257ca82c62cfd8fd8f
[Pman.Cms] / DataObjects / Cms_page_category.php
1 <?php
2 /**
3  * Table Definition for cms_page_category
4  *
5  */
6 require_once 'DB/DataObject.php';
7
8 class Pman_Cms_DataObjects_Cms_page_category  extends DB_DataObject 
9 {
10     ###START_AUTOCODE
11     /* the code below is auto generated do not remove the above tag */
12
13     public $__table = 'cms_page_category';
14     public $id;
15     public $page_id;
16     public $category_id;
17     
18     function applyFilters($q, $au, $roo)
19     { 
20         if(!empty($q['_category_list'])){
21             $this->category_list($roo);
22         }
23         
24     }
25     
26     function category_list($roo)
27     {
28         $core_enum = DB_DataObject::factory('core_enum');
29         $core_enum->setFrom(array(
30             'etype' => 'cms_page_type',
31             'active' => 1
32         ));
33         
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');
38         
39         $type_to_name = array_flip($base);
40         
41         $cms_page_category = DB_DataObject::factory('cms_page_category');
42         $cms_page_category->autoJoin();
43         
44         $sub = array(
45             'page' => array(),
46             'blog' => array()
47         );
48         
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 
55                                       
56         ");
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 
62         ");
63         
64         $cms_page_category->orderBy("cms_page_fullpath(cms_page_category.category_id, ' - ') ASC");
65         
66         foreach ($cms_page_category->fetchAll() as $s){
67             
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,
72                     'name' => 'page',
73                     'display_name' => 'Pages - '. $s->category_id_title,
74                     'type' => 'category',
75                     'page_type' => $type_to_name['page'],
76                 );
77                 continue;
78             }
79             
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,
84                     'name' => 'blog',
85                     'display_name' =>  'Blog Posts - ' . $s->category_id_title,
86                     'type' => 'category',
87                     'page_type' => $type_to_name['blog'],
88                     
89                 );
90             }
91         }
92         
93         $categories = array();
94         
95         foreach ($display_names as $id=>$name){
96             if($base[$id] == 'page'){
97                 
98                 $categories[] = array(
99                     'pid' => $id,
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'],
105                 );
106                 $categories = array_merge($categories, $sub['page']);
107                 continue;
108             }
109             
110             if($base[$id] == 'blog'){
111                 $categories[] = array(
112                     'pid' => $id,
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'],
118                 );
119                  $categories = array_merge($categories, $sub['blog']);
120
121                 continue;
122             }
123             
124             $categories[] = array(
125                 'pid' => $id,
126                 'category_id_is_draft' => 0,
127                 'name' => $base[$id],
128                 'display_name' => $name,
129                 'type' => 'page_type',
130                 'page_type' => 0
131                 
132             );
133         }
134         
135         $roo->jdata($categories);
136         
137     }
138     
139 }