5 * This applies database files from
6 * a) OLD - {MODULE}/DataObjects/XXXX.{dbtype}.sql
8 * b) NEW - {MODULE}/sql/XXX.sql (SHARED or translable)
9 * and {MODULE}/{dbtype}/XXX.sql (SHARED or translable)
14 require_once 'Pman.php';
15 class Pman_Cms_UpdateDatabase extends Pman
18 static $cli_desc = "Update SQL - Beta";
20 static $cli_opts = array(
22 'desc' => 'Compile a specific template',
30 'desc' => 'Turn on debuggin',
43 $ff = HTML_FlexyFramework::get();
44 if (!empty($ff->cli)) {
49 parent::getAuth(); // load company!
50 $au = $this->getAuthUser();
51 if (!$au || $au->company()->comptype != 'OWNER') {
52 $this->jerr("Not authenticated", array('authFailure' => true));
54 $this->authUser = $au;
58 function get($tbl, $opts)
60 if (!empty($opts['debug'])) {
61 DB_DataObject::debugLevel(1);
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, '');
74 $d = DB_DataObject::factory($tbl);
75 $d->initDatabase($this);
82 $enum = DB_DataObject::Factory('core_enum');
87 'name' => 'cms_page_type',
88 'display_name' => 'Cms Page Type',
92 'display_name' => 'Pages',
96 'display_name' => 'Elements',
100 'display_name' => 'Blog Entries',
104 'display_name' => 'Menu Tree',
107 'name' => 'category',
108 'display_name' => 'Category',
115 $p = DB_DataObject::Factory('cms_page');
116 $p->page_type_id = 0;
117 $all = $p->fetchAll();
118 foreach($all as $t) {
122 $opts = HTML_FlexyFramework::get()->Pman_Cms;
124 $tp = DB_DataObject::factory('cms_template');
125 $tp->syncTemplateDir(false, '', true);
126 //if (isset($q['lang'])) {
127 // $this->syncLang($q['lang']);
130 $page = DB_DataObject::factory('cms_page');
134 // templates.. -- assume the above does the template syncing..
135 //DB_DataObject::DebugLevel(1);
136 echo "Sync the Languages template.....\n";
137 $x = DB_Dataobject::Factory('cms_templatestr');
139 $x->selectAdd('distinct(lang) as lang');
140 $x->whereAdd("lang != ''");
142 echo "Sync default Language.....\n";
143 $tps = DB_DataObject::factory('cms_templatestr');
144 $tps->syncLang('en'); /// this should be configured somewhere..
147 foreach( $x->fetchAll('lang') as $l) {
148 echo "Sync $l Language.....\n";
149 $tps = DB_DataObject::factory('cms_templatestr');
150 $tps->syncLang($l); /// this should be configured somewhere..
154 //sync the tables to cms_templatestr
155 if(isset($opts['DataObjects_Cms_templatestr']['tables'])){
156 $cts = DB_DataObject::factory('cms_templatestr');
158 foreach($opts['DataObjects_Cms_templatestr']['tables'] as $table=>$cols){
159 $t = DB_DataObject::factory($table);
160 foreach($t->fetchAll() as $d) {
161 $cts->onTableChange($this, $t, 'update');