UpdateDatabase.php
[Pman.Cms] / UpdateDatabase.php
1 <?php
2
3 /**
4  *
5  * This applies database files from
6  * a) OLD - {MODULE}/DataObjects/XXXX.{dbtype}.sql
7  *
8  * b) NEW - {MODULE}/sql/XXX.sql (SHARED or translable)
9  *  and {MODULE}/{dbtype}/XXX.sql (SHARED or translable)
10  *
11  *
12  */
13
14 require_once 'Pman.php';
15 class Pman_Cms_UpdateDatabase extends Pman
16 {
17     
18     static $cli_desc = "Update SQL - Beta";
19  
20     static $cli_opts = array(
21         'template' => array(
22             'desc' => 'Compile a specific template',
23             'default' => '',
24             'short' => 't',
25             'min' => 1,
26             'max' => 1,
27             
28         ),
29         'debug' => array(
30             'desc' => 'Turn on debuggin',
31             'default' => '',
32             'short' => 'd',
33             'min' => 1,
34             'max' => 1,
35             
36         )
37     );
38     
39     var $cli = false;
40     function getAuth() {
41         
42         
43         $ff = HTML_FlexyFramework::get();
44         if (!empty($ff->cli)) {
45             $this->cli = true;
46             return true;
47         }
48         
49         parent::getAuth(); // load company!
50         $au = $this->getAuthUser();
51         if (!$au || $au->company()->comptype != 'OWNER') {
52             $this->jerr("Not authenticated", array('authFailure' => true));
53         }
54         $this->authUser = $au;
55         return true;
56     }
57      
58     function get($tbl, $opts)
59     {
60         if (!empty($opts['debug'])) {
61             DB_DataObject::debugLevel(1);
62             
63         }
64         if (!empty($opts['template'])) {
65              $tp = DB_DataObject::factory('cms_template');
66              //$opts = HTML_FlexyFramework::get()->Pman_Cms;
67              $tp->syncTemplate($opts['template'], true, '');
68              die("done");
69             
70         }
71         
72         $this->updateData();
73         if (!empty($tbl)) {
74             $d = DB_DataObject::factory($tbl);
75             $d->initDatabase($this);
76         }
77         
78     }
79     
80     function updateData()
81     {
82         $enum = DB_DataObject::Factory('core_enum');
83         $enum->initEnums(
84             array( 
85                 array(
86                     'etype' => '',
87                     'name' => 'cms_page_type',
88                     'display_name' =>  'Cms Page Type',
89                     'cn' => array(
90                         array(
91                             'name' => 'page',
92                             'display_name' => 'Pages',
93                         ),
94                         array(
95                             'name' => 'element',
96                             'display_name' => 'Elements',
97                             
98                         ),
99                         array(
100                             'name' => 'blog',
101                             'display_name' => 'Blog Entries',
102                             
103                         ),
104                         array(
105                             'name' => 'menu',
106                             'display_name' => 'Menu Tree',
107                             
108                         ),
109                         array(
110                             'name' => 'category',
111                             'display_name' => 'Category',
112                             
113                         ),
114                     )
115                 )
116             )
117         );
118        
119         $p = DB_DataObject::Factory('cms_page');
120         $p->page_type_id = 0;
121         $all = $p->fetchAll();
122         foreach($all as $t) {
123             $t->convertOld();
124         }
125        
126         $opts = HTML_FlexyFramework::get()->Pman_Cms;
127         
128         $tp = DB_DataObject::factory('cms_template');
129         $tp->syncTemplateDir(false, '', true);
130             //if (isset($q['lang'])) {
131             //    $this->syncLang($q['lang']);
132             //}
133         
134         $page = DB_DataObject::factory('cms_page');
135         $page->initData();
136         
137         
138         // templates.. -- assume the above does the template syncing..
139         //DB_DataObject::DebugLevel(1);
140         echo "Sync the Languages template.....\n";
141         $x = DB_Dataobject::Factory('cms_templatestr');
142         $x->selectAdd();
143         $x->selectAdd('distinct(lang) as lang');
144         $x->whereAdd("lang != ''");
145         if(!$x->count()){ 
146             echo "Sync default Language.....\n";
147             $tps = DB_DataObject::factory('cms_templatestr');
148             $tps->syncLang('en'); /// this should be configured somewhere..
149             return;
150         }
151         foreach( $x->fetchAll('lang') as $l) {
152             echo "Sync $l Language.....\n";
153             $tps = DB_DataObject::factory('cms_templatestr');
154             $tps->syncLang($l); /// this should be configured somewhere..
155         }
156         
157         
158         //sync the tables to cms_templatestr
159         if(isset($opts['trans_tables'])){
160             
161         }
162     }
163     
164 }