X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=UpdateDatabase.php;h=ee26b73a391db4c35f3e92bd8f50aaca9c958b41;hb=cd0367f0b1c72b3bf7140f594c7e54ef2ed94c9e;hp=d95eb513e535dfda6844ee80b1d876fca517e4a7;hpb=53fa550300f01419264b10f9e99fd8de43bcf270;p=Pman.Core diff --git a/UpdateDatabase.php b/UpdateDatabase.php index d95eb513..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...? @@ -191,11 +196,12 @@ class Pman_Core_UpdateDatabase extends Pman $this->runExtensions(); -// $this->generateDataobjectsCache(); + $this->generateDataobjectsCache(); } 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', @@ -1126,41 +1167,39 @@ class Pman_Core_UpdateDatabase extends Pman } -// function generateDataobjectsCache() -// { -// $url = "http://localhost{$this->local_base_url}/Roo/SaveDocuments"; -// -// $this->curl($url, array( -// 'onid' => $coba_declarations->id, -// 'ontable' => $coba_declarations->tableName(), -// 'method' => 'forms', -// 'file' => $file -// ), 'POST'); -// } + function generateDataobjectsCache() + { + $url = "http://localhost{$this->local_base_url}/Core/RefreshDatabaseCache"; + + $this->curl($url); + + } function curl($url, $request = array(), $method = 'GET') { - if(is_array($request)){ + if($method == 'GET'){ $request = http_build_query($request); + $url = $url . "?" . $request; } - print_R($request);exit; - - $url = $url . ($method == 'GET' ? "?" . $request : ''); - $ch = curl_init($url); if ($method == 'POST') { + curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); + + } else { + curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "Content-Length: " . strlen($request))); + } 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 +}