X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=UpdateDatabase.php;h=ee26b73a391db4c35f3e92bd8f50aaca9c958b41;hb=cd0367f0b1c72b3bf7140f594c7e54ef2ed94c9e;hp=bac41015951b66c4b8a71b85af5c94a4cb50c949;hpb=7bbe865fa19e2774f7fd88bf47a5ffc329f9d7ff;p=Pman.Core diff --git a/UpdateDatabase.php b/UpdateDatabase.php index bac41015..ee26b73a 100644 --- a/UpdateDatabase.php +++ b/UpdateDatabase.php @@ -61,6 +61,12 @@ class Pman_Core_UpdateDatabase extends Pman 'min' => 1, 'max' => 1, ), + 'skip-mysql-checks' => array( + 'desc' => 'Skip mysql checks', + 'default' => '', + 'min' => 1, + 'max' => 1, + ), 'procedures-only' => array( 'desc' => 'Only import procedures (not supported by most modules yet) - ignores sql directory', 'default' => '', @@ -144,7 +150,7 @@ class Pman_Core_UpdateDatabase extends Pman $ff = HTML_FlexyFramework::get(); if(!isset($ff->Pman) || !isset($ff->Pman['local_base_url'])){ - die("Please setup local_base_url"); + die("Please setup Pman[local_base_url]\n"); } $this->local_base_url = $ff->Pman['local_base_url']; @@ -182,7 +188,6 @@ class Pman_Core_UpdateDatabase extends Pman $this->runUpdateModulesData(); - if (!empty($opts['add-company']) && !in_array('Core', $this->disabled)) { // make sure we have a good cache...? @@ -196,6 +201,7 @@ class Pman_Core_UpdateDatabase extends Pman } function output() { + echo "\nUpdate Completed SUCCESS\n"; return ''; } /** @@ -677,13 +683,14 @@ class Pman_Core_UpdateDatabase extends Pman echo "$module\n"; $x->updateData(); } - + } function updateDataEnums() { - + HTML_FlexyFramework::get()->generateDataobjectsCache(true); + $enum = DB_DataObject::Factory('core_enum'); //DB_DAtaObject::debugLevel(1); $enum->initEnums( @@ -739,7 +746,8 @@ class Pman_Core_UpdateDatabase extends Pman ) - ), + ) + ) ); @@ -763,6 +771,8 @@ class Pman_Core_UpdateDatabase extends Pman 'name' => 'core-person-signup-bcc', 'type' => 0, // system ), + + )); } @@ -807,16 +817,17 @@ class Pman_Core_UpdateDatabase extends Pman } - function initEmails($templateDir, $emails) + function initEmails($templateDir, $emails, $mapping = false) { - + HTML_FlexyFramework::get()->generateDataobjectsCache(true); + $pg = HTML_FlexyFramework::get()->page; foreach($emails as $name=>$data) { $cm = DB_DataObject::factory('core_email'); $update = $cm->get('name', $name); $old = clone($cm); - if (empty($cm->bcc_group)) { + if (empty($cm->bcc_group_id)) { if (empty($data['bcc_group'])) { $this->jerr("missing bcc_group for template $name"); } @@ -826,19 +837,42 @@ class Pman_Core_UpdateDatabase extends Pman $this->jerr("bcc_group {$data['bcc_group']} does not exist when importing template $name"); } - if (!$g->members('email')) { $this->jerr("bcc_group {$data['bcc_group']} does not have any members"); } - $cm->bcc_group = $g->id; + $cm->bcc_group_id = $g->id; } - if (empty($cm->test_class)) { + // initEmails will always have the latest location of the test class - in theory the user should not be changign the value of this... + //if (empty($cm->test_class)) { if (empty($data['test_class'])) { $this->jerr("missing test_class for template $name"); } $cm->test_class = $data['test_class']; + //} + if(isset($cm->to_group_id)) { + print_r('isset'); + } + + if ( + !empty($data['to_group']) && + (!isset($cm->to_group_id) || !empty($cm->to_group_id)) + ) { + $gp = DB_DataObject::Factory('core_group')->lookup('name',$data['to_group']); + + if (empty($gp->id)) { + $this->jerr("to_group {$data['to_group']} does not exist when importing template $name"); + } + + $cm->to_group_id = $gp->id; + } + + if( + isset($data['active']) && !isset($cm->active) + ) { + $cm->active = $data['active']; } + require_once $cm->test_class . '.php'; $clsname = str_replace('/','_', $cm->test_class); @@ -874,7 +908,8 @@ class Pman_Core_UpdateDatabase extends Pman } require_once 'Pman/Core/Import/Core_email.php'; $x = new Pman_Core_Import_Core_email(); - $x->updateOrCreateEmail('', $opts, $cm); + + $x->updateOrCreateEmail('', $opts, $cm, $mapping); echo "email: {$name} - CREATED\n"; } @@ -907,13 +942,18 @@ class Pman_Core_UpdateDatabase extends Pman if ($done_check) { return; } + + + if (!empty($this->opts['skip-mysql-checks'])) { + return; + } // innodb in single files is far more efficient that MYD or one big innodb file. // first check if database is using this format. $db = DB_DataObject::factory('core_enum'); $db->query("show variables like 'innodb_file_per_table'"); $db->fetch(); if ($db->Value == 'OFF') { - die("Error: set innodb_file_per_table = 1 in my.cnf\n\n"); + die("Error: set innodb_file_per_table = 1 in my.cnf (or run with --skip-mysql-checks\n\n"); } $db = DB_DataObject::factory('core_enum'); @@ -1070,25 +1110,26 @@ class Pman_Core_UpdateDatabase extends Pman } - function checkSystem() + function checkSystem($req = false, $pref = false) { // most of these are from File_Convert... // these are required - and have simple dependancies. require_once 'System.php'; - $req = array( + $req = $req !== false ? $req : array( 'convert', 'grep', 'pdfinfo', 'pdftoppm', 'rsvg-convert', //librsvg2-bin 'strings', + 'oathtool' ); // these are prefered - but may have complicated depenacies - $pref= array( + $pref = $pref !== false ? $pref : array( 'abiword', 'faad', 'ffmpeg', @@ -1128,12 +1169,10 @@ class Pman_Core_UpdateDatabase extends Pman function generateDataobjectsCache() { - $url = "http://localhost{$this->local_base_url}/Roo/Core/RefreshDatabaseCache"; + $url = "http://localhost{$this->local_base_url}/Core/RefreshDatabaseCache"; - $response = $this->curl($url); + $this->curl($url); - echo "here\n"; - print_r($response);exit; } function curl($url, $request = array(), $method = 'GET') @@ -1160,7 +1199,7 @@ class Pman_Core_UpdateDatabase extends Pman curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_VERBOSE, 1); + curl_setopt($ch, CURLOPT_VERBOSE, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); @@ -1173,4 +1212,4 @@ class Pman_Core_UpdateDatabase extends Pman -} \ No newline at end of file +}