do not show translated category ids in list
[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->whereAdd('join_category_id_id.translation_of_id = 0');
58         
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 
64         ");
65         
66         $cms_page_category->orderBy("cms_page_fullpath(cms_page_category.category_id, ' - ') ASC");
67         
68         foreach ($cms_page_category->fetchAll() as $s){
69             
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,
74                     'name' => 'page',
75                     'display_name' => 'Pages - '. $s->category_id_title,
76                     'type' => 'category',
77                     'page_type' => $type_to_name['page'],
78                 );
79                 continue;
80             }
81             
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,
86                     'name' => 'blog',
87                     'display_name' =>  'Blog Posts - ' . $s->category_id_title,
88                     'type' => 'category',
89                     'page_type' => $type_to_name['blog'],
90                     
91                 );
92             }
93         }
94         
95         $categories = array();
96         
97         foreach ($display_names as $id=>$name){
98             if($base[$id] == 'page'){
99                 
100                 $categories[] = array(
101                     'pid' => $id,
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'],
107                 );
108                 $categories = array_merge($categories, $sub['page']);
109                 continue;
110             }
111             
112             if($base[$id] == 'blog'){
113                 $categories[] = array(
114                     'pid' => $id,
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'],
120                 );
121                  $categories = array_merge($categories, $sub['blog']);
122
123                 continue;
124             }
125             
126             $categories[] = array(
127                 'pid' => $id,
128                 'category_id_is_draft' => 0,
129                 'name' => $base[$id],
130                 'display_name' => $name,
131                 'type' => 'page_type',
132                 'page_type' => 0
133                 
134             );
135         }
136         
137         $roo->jdata($categories);
138         
139     }
140     
141 }