X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=UpdateDatabase.php;h=2385354e5afd5049a7a2707d71e67d17d7a815c8;hb=e6eb2122a2c49c78628944680de6b01f7439bed7;hp=2c9def144923970e75bc9596b33b15b5c9810925;hpb=10ce07902b6e7ec71fba6d6b3ede06660cec9426;p=Pman.Core diff --git a/UpdateDatabase.php b/UpdateDatabase.php index 2c9def14..2385354e 100644 --- a/UpdateDatabase.php +++ b/UpdateDatabase.php @@ -113,7 +113,6 @@ class Pman_Core_UpdateDatabase extends Pman $ret = array_merge($ret, $cls->getStaticPropertyValue('cli_opts')); } - } return $ret; @@ -129,6 +128,7 @@ class Pman_Core_UpdateDatabase extends Pman var $emailTemplates = array( 'EVENT_ERRORS_REPORT' => array( + 'bcc_group' => 'Empty Group', 'test_class' => 'Pman/Admin/Report/SendEventErrors', 'to_group' => 'Administrators', 'active' => 1, @@ -137,6 +137,11 @@ class Pman_Core_UpdateDatabase extends Pman ) ); + var $required_extensions = array( + 'curl', + 'gd' + ); + function getAuth() { @@ -157,12 +162,11 @@ class Pman_Core_UpdateDatabase extends Pman function get($args, $opts=array()) { - PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError')); $this->checkSystem(); - $this->verifyExtensions(array('curl')); + $this->verifyExtensions($this->required_extensions); if (class_exists('PDO_DataObjects_Introspection')) { PDO_DataObject_Introspection::$cache = array(); @@ -194,10 +198,30 @@ class Pman_Core_UpdateDatabase extends Pman } // ask all the modules to verify the opts - echo "Checi options\n"; + echo "Checking options\n"; $this->checkOpts($opts); - + $response = $this->curl("http://localhost{$this->local_base_url}/Core/UpdateDatabase/VerifyExtensions"); + $json = json_decode($response, true); + + if(empty($json['data']) || $json['data'] != 'DONE'){ + echo "\nError: Missing php extensions:\n"; + print_r($response); + echo "Please install the above extensions and restart the apache.\n"; + sleep(5); + + //exit; + } + + echo "Checking Setup Requirements\n"; + require_once 'Pman/Core/UpdateDatabase/VerifyConfig.php'; + $sq = new Pman_Core_UpdateDatabase_VerifyConfig(); + $ret = $sq->get($args, $opts); + + if(!empty($ret)){ + echo implode("\n", $ret) . "\n"; + sleep(30); + } // do this first, so the innodb change + utf8 fixes column max sizes @@ -794,16 +818,23 @@ class Pman_Core_UpdateDatabase extends Pman array( 'name' => 'bcc-email', // group who are bcc'ed on all requests. 'type' => 0, // system + 'display_name' => 'Standard BCC Group' ), array( 'name' => 'system-email-from', 'type' => 0, // system + 'display_name' => 'Standard System Email From Group' ), array( 'name' => 'core-person-signup-bcc', 'type' => 0, // system + 'display_name' => 'Standard Person Signup BCC Group' ), - + array( + 'name' => 'Empty Group', // use for no bcc emails. + 'type' => 0, + 'display_name' => 'Standard Empty Group' + ) )); @@ -816,17 +847,21 @@ class Pman_Core_UpdateDatabase extends Pman $c = DB_DataObject::Factory('core_company'); $c->selectAdd(); $c->selectAdd('distinct(comptype) as comptype'); - $c->whereAdd("comptype != ''"); + $c->whereAdd(" + comptype != '' + AND + comptype != 'undefined' + AND + comptype != 'undefine' + "); $ctb = array(); foreach($c->fetchAll('comptype') as $cts) { - - - $ctb[]= array( 'etype'=>'COMPTYPE', 'name' => $cts, 'display_name' => ucfirst(strtolower($cts))); + $ctb[]= array( 'etype'=>'COMPTYPE', 'name' => $cts, 'display_name' => ucfirst(strtolower($cts))); } - $c = DB_DataObject::Factory('core_enum'); + $c = DB_DataObject::Factory('core_enum'); $c->initEnums($ctb); //DB_DataObject::debugLevel(1); @@ -857,7 +892,7 @@ class Pman_Core_UpdateDatabase extends Pman $this->initEmails( $mail_dir, array($k => $mail), - $mapping + false ); } } @@ -876,13 +911,14 @@ class Pman_Core_UpdateDatabase extends Pman if (empty($data['bcc_group'])) { $this->jerr("missing bcc_group for template $name"); } + $g = DB_DataObject::Factory('core_group')->lookup('name',$data['bcc_group']); if (empty($g->id)) { $this->jerr("bcc_group {$data['bcc_group']} does not exist when importing template $name"); } - if (!$g->members('email')) { + if (!$g->members('email') && $g->name != 'Empty Group') { $this->jerr("bcc_group {$data['bcc_group']} does not have any members"); } @@ -919,7 +955,11 @@ class Pman_Core_UpdateDatabase extends Pman $cm->active = $data['active']; } - if(!empty($data['description'])){ + /* + * Set description to email. + * However we do not update if it is been set. + */ + if(empty($cm->description) && !empty($data['description'])){ $cm->description = $cm->escape($data['description']); } @@ -974,7 +1014,6 @@ class Pman_Core_UpdateDatabase extends Pman } HTML_FlexyFramework::get()->generateDataobjectsCache(true); - $this->updateDataEnums(); $this->updateDataGroups(); $this->updateDataCompanies(); @@ -983,10 +1022,6 @@ class Pman_Core_UpdateDatabase extends Pman $c = DB_DataObject::Factory('I18n'); $c->buildDB(); - - - - } function fixMysqlInnodb() @@ -1029,7 +1064,9 @@ class Pman_Core_UpdateDatabase extends Pman in_array('STRICT_TRANS_TABLES', $modes) || !in_array('ALLOW_INVALID_DATES', $modes) ){ - die("Error: set sql_mode include 'ALLOW_INVALID_DATES', remove 'NO_ZERO_IN_DATE' AND 'STRICT_TRANS_TABLES' AND 'NO_ZERO_DATE' in my.cnf\n\n"); + die("Error: set sql_mode include 'ALLOW_INVALID_DATES', remove 'NO_ZERO_IN_DATE' AND 'STRICT_TRANS_TABLES' AND 'NO_ZERO_DATE' in my.cnf\n\n". + "Recommended line: \n\nsql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ALLOW_INVALID_DATES\n\n" + ); } } @@ -1177,7 +1214,8 @@ class Pman_Core_UpdateDatabase extends Pman 'pdftoppm', 'rsvg-convert', //librsvg2-bin 'strings', - 'oathtool' + 'oathtool', + 'gifsicle', // used for gif conversions ); @@ -1226,13 +1264,14 @@ class Pman_Core_UpdateDatabase extends Pman echo "Clearing Database Cache\n"; // this needs to clear it's own cache along with remote one.. - - $response = $this->curl("http://localhost{$this->local_base_url}/Core/RefreshDatabaseCache"); + $url = "http://localhost{$this->local_base_url}/Core/RefreshDatabaseCache"; + $response = $this->curl($url); $json = json_decode($response, true); if(empty($json['data']) || $json['data'] != 'DONE'){ - echo $response. "\n"; + echo "fetching $url\n"; + echo "GOT:" . $response. "\n"; echo "Clear DataObjects Cache failed\n"; exit; } @@ -1299,7 +1338,7 @@ class Pman_Core_UpdateDatabase extends Pman foreach ($extensions as $e){ - if(extension_loaded($e)) { + if(empty($e) || extension_loaded($e)) { continue; }