Commit ccb0e62ab3f38b2ef125a22e4254ab47eadf8b0c
Merge branch 'edge' of github.com:ktgit/knowledgetree into edge
Showing
56 changed files
with
605 additions
and
707 deletions
.gitignore
bin/system_info.php
| ... | ... | @@ -43,7 +43,12 @@ |
| 43 | 43 | * The following data is collected: |
| 44 | 44 | * Unique installation information: installation GUID, number of users in repository, number of documents in repository, |
| 45 | 45 | * operating system (platform, platform version, flavor if Linux), version and edition. |
| 46 | + | |
| 47 | +<installation guid>|<enabled user count>|<disabled user count>|<deleted user count>| | |
| 48 | +<live document count>|<deleted document count>|<archived document count>| | |
| 49 | +<KT version>|<KT edition>|<User licenses>|<OS info> | |
| 46 | 50 | */ |
| 51 | + | |
| 47 | 52 | chdir(realpath(dirname(__FILE__))); |
| 48 | 53 | require_once('../config/dmsDefaults.php'); |
| 49 | 54 | |
| ... | ... | @@ -56,7 +61,7 @@ function getGuid() |
| 56 | 61 | $guid = KTUtil::getSystemIdentifier(); |
| 57 | 62 | |
| 58 | 63 | if(PEAR::isError($guid)){ |
| 59 | - $guid = ''; | |
| 64 | + $guid = '-'; | |
| 60 | 65 | } |
| 61 | 66 | return $guid; |
| 62 | 67 | } |
| ... | ... | @@ -68,42 +73,43 @@ function getUserCnt() |
| 68 | 73 | $result = DBUtil::getResultArray($query); |
| 69 | 74 | |
| 70 | 75 | if(empty($result) || PEAR::isError($result)){ |
| 71 | - return ''; | |
| 76 | + return '-|-|-'; | |
| 72 | 77 | } |
| 73 | - $users = ''; | |
| 78 | + $enabled = '-'; | |
| 79 | + $disabled = '-'; | |
| 80 | + $deleted = '-'; | |
| 74 | 81 | |
| 75 | 82 | foreach ($result as $row){ |
| 76 | - $str = ''; | |
| 77 | 83 | switch($row['disabled']){ |
| 78 | - case 0: $str = 'Enabled'; break; | |
| 79 | - case 1: $str = 'Disabled'; break; | |
| 80 | - case 2: $str = 'Deleted'; break; | |
| 84 | + case 0: $enabled = $row['cnt']; break; | |
| 85 | + case 1: $disabled = $row['cnt']; break; | |
| 86 | + case 2: $deleted = $row['cnt']; break; | |
| 81 | 87 | } |
| 82 | - | |
| 83 | - $str .= ': '.$row['cnt']; | |
| 84 | - | |
| 85 | - $users .= (!empty($users)) ? '; ' : ''; | |
| 86 | - $users .= $str; | |
| 87 | 88 | } |
| 88 | - return $users; | |
| 89 | + return "{$enabled}|{$disabled}|{$deleted}"; | |
| 89 | 90 | } |
| 90 | 91 | |
| 91 | 92 | // Get the number of documents in the repository |
| 92 | 93 | function getDocCnt() |
| 93 | 94 | { |
| 94 | - $query = 'select count(*) as cnt, s.name from documents d, status_lookup s WHERE s.id = d.status_id group by d.status_id;'; | |
| 95 | + $query = 'select count(*) as cnt, status_id from documents d WHERE status_id IN (1,3,4) group by d.status_id;'; | |
| 95 | 96 | $result2 = DBUtil::getResultArray($query); |
| 96 | 97 | |
| 97 | 98 | if(empty($result2) || PEAR::isError($result2)){ |
| 98 | - return ''; | |
| 99 | + return '-|-|-'; | |
| 99 | 100 | } |
| 100 | - $docs = ''; | |
| 101 | + $live = '-'; | |
| 102 | + $deleted = '-'; | |
| 103 | + $archived = '-'; | |
| 101 | 104 | |
| 102 | 105 | foreach ($result2 as $row){ |
| 103 | - $docs .= (!empty($docs)) ? '; ' : ''; | |
| 104 | - $docs .= $row['name'].': '.$row['cnt']; | |
| 106 | + switch($row['status_id']){ | |
| 107 | + case 1: $live = $row['cnt']; break; | |
| 108 | + case 3: $deleted = $row['cnt']; break; | |
| 109 | + case 4: $archived = $row['cnt']; break; | |
| 110 | + } | |
| 105 | 111 | } |
| 106 | - return $docs; | |
| 112 | + return "{$live}|{$deleted}|{$archived}"; | |
| 107 | 113 | } |
| 108 | 114 | |
| 109 | 115 | // Get the version of KT |
| ... | ... | @@ -121,15 +127,21 @@ function getKTVersion() |
| 121 | 127 | // Get the edition of KT |
| 122 | 128 | function getKTEdition() |
| 123 | 129 | { |
| 124 | - $edition = 'Community'; | |
| 130 | + $edition = 'Community|-'; | |
| 125 | 131 | if (KTPluginUtil::pluginIsActive('ktdms.wintools')) { |
| 126 | 132 | $path = KTPluginUtil::getPluginPath('ktdms.wintools'); |
| 127 | 133 | require_once($path . 'baobabkeyutil.inc.php'); |
| 128 | 134 | $edition = BaobabKeyUtil::getName(); |
| 129 | 135 | |
| 136 | + // this could be done with regular expressions... | |
| 130 | 137 | // Remove the brackets around the name |
| 131 | 138 | $edition = substr($edition, 1); |
| 132 | 139 | $edition = substr($edition, 0, strlen($edition)-1); |
| 140 | + // Remove the "users" | |
| 141 | + $pos = strpos($edition, 'users'); | |
| 142 | + $edition = ($pos === false) ? $edition.'|-' : substr($edition, 0, $pos-1); | |
| 143 | + // Replace the , with | | |
| 144 | + $edition = str_replace(', ', '|', $edition); | |
| 133 | 145 | } |
| 134 | 146 | return $edition; |
| 135 | 147 | } |
| ... | ... | @@ -139,22 +151,33 @@ function getKTEdition() |
| 139 | 151 | function getOSInfo() |
| 140 | 152 | { |
| 141 | 153 | $server = php_uname(); |
| 154 | + $server_arr = explode(' ', $server); | |
| 155 | + | |
| 156 | + // kernel version and os type - 32bit / 64bit | |
| 157 | + $kernel_v = $server_arr[2]; | |
| 158 | + $os_v = array_pop($server_arr); | |
| 142 | 159 | |
| 143 | 160 | if(strpos($server, 'Darwin') !== false){ |
| 144 | 161 | $os = 'Mac OS X'; |
| 145 | 162 | }else if(strpos($server, 'Win') !== false){ |
| 146 | 163 | $os = 'Windows'; |
| 147 | - }else { | |
| 164 | + // windows differs from *nix | |
| 165 | + // kernel version = windows version | |
| 166 | + // os version = build number | |
| 167 | + $kernel_v = $server_arr[3]; | |
| 168 | + $os_v = array_pop($server_arr); | |
| 169 | + }else if(strpos($server, 'Linux') !== false) { | |
| 148 | 170 | $os = 'Linux'; |
| 171 | + }else { | |
| 172 | + $os = 'Unix'; | |
| 149 | 173 | } |
| 150 | 174 | |
| 151 | - return $os; | |
| 175 | + return $os.'|'.$kernel_v.'|'.$os_v; | |
| 152 | 176 | } |
| 153 | 177 | |
| 154 | 178 | function sendForm($data) |
| 155 | 179 | { |
| 156 | 180 | $url = 'http://ktnetwork.knowledgetree.com/call_home.php'; |
| 157 | - //$url = 'http://10.33.20.250/knowledgetree/call_home.php'; | |
| 158 | 181 | $data = http_build_query($data); |
| 159 | 182 | |
| 160 | 183 | $ch = curl_init($url); | ... | ... |
clienttools/.gitignore deleted
ktwebservice/KTDownloadManager.inc.php
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | * KnowledgeTree Community Edition |
| 10 | 10 | * Document Management Made Simple |
| 11 | 11 | * Copyright (C) 2008, 2009 KnowledgeTree Inc. |
| 12 | - * Portions copyright The Jam Warehouse Software (Pty) Limited | |
| 12 | + * | |
| 13 | 13 | * |
| 14 | 14 | * This program is free software; you can redistribute it and/or modify it under |
| 15 | 15 | * the terms of the GNU General Public License version 3 as published by the | ... | ... |
ktwebservice/KTUploadManager.inc.php
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | * KnowledgeTree Community Edition |
| 10 | 10 | * Document Management Made Simple |
| 11 | 11 | * Copyright (C) 2008, 2009 KnowledgeTree Inc. |
| 12 | - * Portions copyright The Jam Warehouse Software (Pty) Limited | |
| 12 | + * | |
| 13 | 13 | * |
| 14 | 14 | * This program is free software; you can redistribute it and/or modify it under |
| 15 | 15 | * the terms of the GNU General Public License version 3 as published by the | ... | ... |
ktwebservice/KTWebService.php
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | * KnowledgeTree Community Edition |
| 6 | 6 | * Document Management Made Simple |
| 7 | 7 | * Copyright (C) 2008, 2009 KnowledgeTree Inc. |
| 8 | - * Portions copyright The Jam Warehouse Software (Pty) Limited | |
| 8 | + * | |
| 9 | 9 | * |
| 10 | 10 | * This program is free software; you can redistribute it and/or modify it under |
| 11 | 11 | * the terms of the GNU General Public License version 3 as published by the |
| ... | ... | @@ -671,4 +671,4 @@ $ws->handle(); |
| 671 | 671 | |
| 672 | 672 | exit(); |
| 673 | 673 | |
| 674 | -?> | |
| 675 | 674 | \ No newline at end of file |
| 675 | +?> | ... | ... |
ktwebservice/checkup.php
ktwebservice/download.php
| ... | ... | @@ -7,7 +7,7 @@ |
| 7 | 7 | * KnowledgeTree Community Edition |
| 8 | 8 | * Document Management Made Simple |
| 9 | 9 | * Copyright (C) 2008, 2009 KnowledgeTree Inc. |
| 10 | - * Portions copyright The Jam Warehouse Software (Pty) Limited | |
| 10 | + * | |
| 11 | 11 | * |
| 12 | 12 | * This program is free software; you can redistribute it and/or modify it under |
| 13 | 13 | * the terms of the GNU General Public License version 3 as published by the |
| ... | ... | @@ -81,4 +81,4 @@ if (PEAR::isError($response)) |
| 81 | 81 | exit; |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | -?> | |
| 85 | 84 | \ No newline at end of file |
| 85 | +?> | ... | ... |
ktwebservice/download_cleanup.php
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | * KnowledgeTree Community Edition |
| 10 | 10 | * Document Management Made Simple |
| 11 | 11 | * Copyright (C) 2008, 2009 KnowledgeTree Inc. |
| 12 | - * Portions copyright The Jam Warehouse Software (Pty) Limited | |
| 12 | + * | |
| 13 | 13 | * |
| 14 | 14 | * This program is free software; you can redistribute it and/or modify it under |
| 15 | 15 | * the terms of the GNU General Public License version 3 as published by the | ... | ... |
ktwebservice/index.php
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | * KnowledgeTree Community Edition |
| 10 | 10 | * Document Management Made Simple |
| 11 | 11 | * Copyright (C) 2008, 2009 KnowledgeTree Inc. |
| 12 | - * Portions copyright The Jam Warehouse Software (Pty) Limited | |
| 12 | + * | |
| 13 | 13 | * |
| 14 | 14 | * This program is free software; you can redistribute it and/or modify it under |
| 15 | 15 | * the terms of the GNU General Public License version 3 as published by the | ... | ... |
ktwebservice/json.php
ktwebservice/upload.php
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | * KnowledgeTree Community Edition |
| 10 | 10 | * Document Management Made Simple |
| 11 | 11 | * Copyright (C) 2008, 2009 KnowledgeTree Inc. |
| 12 | - * Portions copyright The Jam Warehouse Software (Pty) Limited | |
| 12 | + * | |
| 13 | 13 | * |
| 14 | 14 | * This program is free software; you can redistribute it and/or modify it under |
| 15 | 15 | * the terms of the GNU General Public License version 3 as published by the |
| ... | ... | @@ -207,4 +207,4 @@ function respond($code, $msg, $uploads=array()) |
| 207 | 207 | } |
| 208 | 208 | |
| 209 | 209 | |
| 210 | -?> | |
| 211 | 210 | \ No newline at end of file |
| 211 | +?> | ... | ... |
lib/dispatcher.inc.php
| ... | ... | @@ -343,8 +343,8 @@ class KTStandardDispatcher extends KTDispatcher { |
| 343 | 343 | } |
| 344 | 344 | |
| 345 | 345 | function loginRequired() { |
| 346 | - $oKTConfig =& KTConfig::getSingleton(); | |
| 347 | - if ($oKTConfig->get('allowAnonymousLogin', false)) { | |
| 346 | + $oKTConfig =& KTConfig::getSingleton(); | |
| 347 | + if ($oKTConfig->get('allowAnonymousLogin', false)) { | |
| 348 | 348 | // anonymous logins are now allowed. |
| 349 | 349 | // the anonymous user is -1. |
| 350 | 350 | // |
| ... | ... | @@ -352,9 +352,9 @@ class KTStandardDispatcher extends KTDispatcher { |
| 352 | 352 | |
| 353 | 353 | $oUser =& User::get(-2); |
| 354 | 354 | if (PEAR::isError($oUser) || ($oUser->getName() != 'Anonymous')) { |
| 355 | - ; // do nothing - the database integrity would break if we log the user in now. | |
| 355 | + ; // do nothing - the database integrity would break if we log the user in now. | |
| 356 | 356 | } else { |
| 357 | - $session = new Session(); | |
| 357 | + $session = new Session(); | |
| 358 | 358 | $sessionID = $session->create($oUser); |
| 359 | 359 | $this->sessionStatus = $this->session->verify(); |
| 360 | 360 | if ($this->sessionStatus === true) { | ... | ... |
lib/metadata/fieldsetregistry.inc.php
| ... | ... | @@ -139,26 +139,26 @@ class KTFieldsetRegistry { |
| 139 | 139 | // FIXME delegate. |
| 140 | 140 | $oFieldset =& $fieldsetOrType; |
| 141 | 141 | |
| 142 | - $widgets = array(); | |
| 143 | - $fields = $oFieldset->getFields(); | |
| 142 | + $widgets = array(); | |
| 143 | + $fields = $oFieldset->getFields(); | |
| 144 | 144 | |
| 145 | - if ($oFieldset->getIsConditional()) { | |
| 146 | - $iMasterId = $oFieldset->getMasterFieldId(); | |
| 145 | + if ($oFieldset->getIsConditional()) { | |
| 146 | + $iMasterId = $oFieldset->getMasterFieldId(); | |
| 147 | 147 | |
| 148 | - $oMasterField = DocumentField::get($iMasterId); | |
| 148 | + $oMasterField = DocumentField::get($iMasterId); | |
| 149 | 149 | |
| 150 | - $newfields = array(); | |
| 151 | - $newfields[] = $oMasterField; | |
| 152 | - foreach($fields as $oField) { | |
| 153 | - if($oField->getId() != $iMasterId) { | |
| 154 | - $newfields[] = $oField; | |
| 155 | - } | |
| 156 | - } | |
| 150 | + $newfields = array(); | |
| 151 | + $newfields[] = $oMasterField; | |
| 152 | + foreach($fields as $oField) { | |
| 153 | + if($oField->getId() != $iMasterId) { | |
| 154 | + $newfields[] = $oField; | |
| 155 | + } | |
| 156 | + } | |
| 157 | 157 | |
| 158 | 158 | foreach ($newfields as $oField) { |
| 159 | 159 | $fname = 'metadata_' . $oField->getId(); |
| 160 | 160 | $value = null; |
| 161 | - | |
| 161 | + | |
| 162 | 162 | if (!is_null($oDocument)) { |
| 163 | 163 | $oFL = DocumentFieldLink::getByDocumentAndField($oDocument, $oField); |
| 164 | 164 | if (!is_null($oFL) && (!PEAR::isError($oFL))) { |
| ... | ... | @@ -166,7 +166,7 @@ class KTFieldsetRegistry { |
| 166 | 166 | } |
| 167 | 167 | } |
| 168 | 168 | |
| 169 | - $widgets[] = $this->oWF->get('ktcore.widgets.conditionalselection', | |
| 169 | + $widgets[] = $this->oWF->get('ktcore.widgets.conditionalselection', | |
| 170 | 170 | array( |
| 171 | 171 | 'label' => $oField->getName(), |
| 172 | 172 | 'required' => $oField->getIsMandatory(), | ... | ... |
lib/session/Session.inc
| ... | ... | @@ -228,7 +228,7 @@ class Session { |
| 228 | 228 | // Compare the system version and the database version to determine if the database needs to be upgraded. |
| 229 | 229 | $version = KTUtil::getSystemSetting('databaseVersion'); |
| 230 | 230 | |
| 231 | - if ($default->systemVersion != $version) { | |
| 231 | + if (trim($default->systemVersion) != trim($version)) { | |
| 232 | 232 | if (KTLOG_CACHE) $default->log->info("Session::verify : Database not upgraded"); |
| 233 | 233 | $_SESSION['errormessage']['login'] = sprintf(_kt('Database incompatibility error: <br> Please ensure that you have completed the database upgrade procedure. <br> Please <a href=%s>click here</a> to complete.'),'setup/upgrade.php'); |
| 234 | 234 | return PEAR::raiseError($_SESSION['errormessage']['login']); | ... | ... |
lib/widgets/forms.inc.php
| ... | ... | @@ -328,7 +328,7 @@ class KTForm { |
| 328 | 328 | $aOldData = array(); |
| 329 | 329 | $aErrors = array(); |
| 330 | 330 | $old_data = KTUtil::arrayGet((array) $_SESSION['_kt_old_data'], |
| 331 | - $this->_kt_form_name, array()); | |
| 331 | + $this->_kt_form_name, array()); | |
| 332 | 332 | if (KTUtil::arrayGet($old_data, 'identifier') == $this->sIdentifier) { |
| 333 | 333 | $bUseOld = true; |
| 334 | 334 | $aStoredData = (array) unserialize(KTUtil::arrayGet($old_data, 'data')); | ... | ... |
presentation/lookAndFeel/knowledgeTree/documentmanagement/getTypeMetadataFields.php
| ... | ... | @@ -44,6 +44,7 @@ require_once(KT_LIB_DIR . '/metadata/fieldset.inc.php'); |
| 44 | 44 | |
| 45 | 45 | require_once(KT_LIB_DIR . '/widgets/fieldsetDisplay.inc.php'); |
| 46 | 46 | require_once(KT_LIB_DIR . "/widgets/fieldWidgets.php"); |
| 47 | +require_once(KT_LIB_DIR . "/widgets/forms.inc.php"); | |
| 47 | 48 | |
| 48 | 49 | require_once(KT_LIB_DIR . "/metadata/fieldsetregistry.inc.php"); |
| 49 | 50 | require_once(KT_LIB_DIR . "/widgets/widgetfactory.inc.php"); | ... | ... |
setup/migrate/steps/migrateInstallation.php
| ... | ... | @@ -148,7 +148,7 @@ class migrateInstallation extends step |
| 148 | 148 | return false; |
| 149 | 149 | } else { |
| 150 | 150 | $this->foundVersion = $this->readVersion(); |
| 151 | - if($version) { | |
| 151 | + if($this->foundVersion) { | |
| 152 | 152 | $this->checkVersion(); |
| 153 | 153 | } |
| 154 | 154 | $this->storeSilent(); |
| ... | ... | @@ -239,6 +239,8 @@ class migrateInstallation extends step |
| 239 | 239 | ); |
| 240 | 240 | $ktSettings = $this->util->iniUtilities->getSection('KnowledgeTree'); |
| 241 | 241 | $froot = $ktSettings['fileSystemRoot']; |
| 242 | +// print_r($ktSettings); | |
| 243 | +// die; | |
| 242 | 244 | if ($froot == 'default') { |
| 243 | 245 | $froot = $this->location; |
| 244 | 246 | } | ... | ... |
setup/postcheckup.php
| ... | ... | @@ -38,7 +38,7 @@ |
| 38 | 38 | |
| 39 | 39 | $checkup = true; |
| 40 | 40 | error_reporting(E_ALL); |
| 41 | -require_once('../config/dmsDefaults.php'); | |
| 41 | +//require_once('../config/dmsDefaults.php'); | |
| 42 | 42 | |
| 43 | 43 | function writablePath($name, $path) { |
| 44 | 44 | $ret = sprintf('<tr><td>%s (%s)</td><td>', $name, $path); | ... | ... |
setup/precheckup.php
setup/upgrade/lib/UpgradeItems.inc.php
| ... | ... | @@ -49,19 +49,24 @@ |
| 49 | 49 | */ |
| 50 | 50 | // }}} |
| 51 | 51 | |
| 52 | -//require_once(KT_LIB_DIR . '/upgrades/UpgradeFunctions.inc.php'); | |
| 53 | 52 | require_once('sqlfile.inc.php'); |
| 54 | -require_once('datetime.inc'); | |
| 53 | +require_once('datetime.inc.php'); | |
| 54 | + | |
| 55 | +require_once("../wizard/iniUtilities.php"); | |
| 56 | +require_once("../wizard/dbUtilities.php"); | |
| 55 | 57 | |
| 56 | 58 | // {{{ Upgrade_Already_Applied |
| 57 | -class Upgrade_Already_Applied { //extends PEAR_Error { | |
| 59 | +class Upgrade_Already_Applied { | |
| 60 | + | |
| 58 | 61 | function Upgrade_Already_Applied($oUpgradeItem) { |
| 59 | 62 | $this->oUpgradeItem = $oUpgradeItem; |
| 60 | 63 | } |
| 64 | + | |
| 61 | 65 | } |
| 62 | 66 | // }}} |
| 63 | 67 | |
| 64 | -class UpgradeItem extends InstallUtil { | |
| 68 | +class UpgradeItem { | |
| 69 | + | |
| 65 | 70 | var $type = ""; |
| 66 | 71 | var $name; |
| 67 | 72 | var $version; |
| ... | ... | @@ -81,9 +86,9 @@ class UpgradeItem extends InstallUtil { |
| 81 | 86 | $this->description = $description; |
| 82 | 87 | $this->phase = $phase; |
| 83 | 88 | $this->priority = $priority; |
| 84 | - parent::__construct(); | |
| 85 | -// print_r($this); | |
| 86 | -// die; | |
| 89 | + | |
| 90 | + $this->dbUtilities = new dbUtilities(); | |
| 91 | + $this->iniUtilities = new iniUtilities(); | |
| 87 | 92 | } |
| 88 | 93 | |
| 89 | 94 | function setParent($parent) { |
| ... | ... | @@ -117,24 +122,41 @@ class UpgradeItem extends InstallUtil { |
| 117 | 122 | return $this->type; |
| 118 | 123 | } |
| 119 | 124 | |
| 120 | - function runDBQuery($query) { | |
| 121 | - require_once("../wizard/steps/configuration.php"); // configuration to read the ini path | |
| 125 | + /** | |
| 126 | + * Runs a DB query and returns a result based on arguments which specify what to look for | |
| 127 | + * | |
| 128 | + * @param string $query The query to run | |
| 129 | + * @param boolean $checkResult Whether to check that a result was found (not needed for update/delete, only select): This result may be empty | |
| 130 | + * @param boolean $resultCheck Whether to check for returned results from the query | |
| 131 | + * @return unknown | |
| 132 | + */ | |
| 133 | + function runDBQuery($query, $checkResult = false, $resultCheck = false) { | |
| 134 | + if(!isset($this->iniUtilities) || !is_object($this->iniUtilities)) { | |
| 135 | + $this->dbUtilities = new dbUtilities(); | |
| 136 | + $this->iniUtilities = new iniUtilities(); | |
| 137 | + } | |
| 138 | + | |
| 122 | 139 | $wizConfigHandler = new configuration(); |
| 123 | 140 | $configPath = $wizConfigHandler->readConfigPathIni(); |
| 124 | - if(!is_object($this->iniUtilities)) { | |
| 125 | - parent::__construct(); | |
| 126 | - } | |
| 141 | + | |
| 127 | 142 | $this->iniUtilities->load($configPath); |
| 128 | 143 | $dconf = $this->iniUtilities->getSection('db'); |
| 129 | 144 | $this->dbUtilities->load($dconf['dbHost'], '', $dconf['dbUser'], $dconf['dbPass'], $dconf['dbName']); |
| 130 | 145 | $result = $this->dbUtilities->query($query); |
| 131 | - $assArr = $this->dbUtilities->fetchAssoc($result); | |
| 132 | - return $assArr; | |
| 146 | + if($checkResult) { | |
| 147 | + $assArr = $this->dbUtilities->fetchAssoc($result); | |
| 148 | + if($resultCheck) { | |
| 149 | + return !is_null($assArr); | |
| 150 | + } else { | |
| 151 | + return is_null($assArr); | |
| 152 | + } | |
| 153 | + } | |
| 154 | + return !is_null($result); | |
| 133 | 155 | } |
| 134 | 156 | |
| 135 | 157 | function _upgradeTableInstalled() { |
| 136 | 158 | $query = "SELECT COUNT(id) FROM upgrades"; |
| 137 | - $res = $this->runDBQuery($query); | |
| 159 | + $res = $this->runDBQuery($query, true, true); | |
| 138 | 160 | if($res) { |
| 139 | 161 | return true; |
| 140 | 162 | } |
| ... | ... | @@ -146,8 +168,9 @@ class UpgradeItem extends InstallUtil { |
| 146 | 168 | return false; |
| 147 | 169 | } |
| 148 | 170 | $query = "SELECT id FROM upgrades WHERE descriptor = '".$this->getDescriptor()."' AND result = 1"; |
| 149 | - $res = $this->runDBQuery($query); | |
| 150 | - if($res) { | |
| 171 | + $res = $this->runDBQuery($query, true, false); | |
| 172 | + | |
| 173 | + if(!$res) { | |
| 151 | 174 | return true; |
| 152 | 175 | } |
| 153 | 176 | return false; |
| ... | ... | @@ -161,27 +184,23 @@ class UpgradeItem extends InstallUtil { |
| 161 | 184 | return new Upgrade_Already_Applied($this); |
| 162 | 185 | } |
| 163 | 186 | } |
| 164 | -// if (PEAR::isError($res)) { | |
| 165 | -// return $res; | |
| 166 | -// } | |
| 167 | - $oCache =& KTCache::getSingleton(); | |
| 168 | - $save = $oCache->bEnabled; | |
| 169 | - $oCache->bEnabled = false; | |
| 170 | 187 | $res = $this->_performUpgrade(); |
| 171 | - $oCache->bEnabled = $save; | |
| 172 | -// if (PEAR::isError($res)) { | |
| 173 | -// $this->_recordUpgrade(false); | |
| 174 | -// return $res; | |
| 175 | -// } | |
| 188 | + if (!$res) { | |
| 189 | + $this->_recordUpgrade(false); | |
| 190 | + $this->error[] = $this->dbUtilities->getErrors(); | |
| 191 | + return false; | |
| 192 | + } | |
| 176 | 193 | $res = $this->_recordUpgrade(true); |
| 177 | -// if (PEAR::isError($res)) { | |
| 178 | -// return $res; | |
| 179 | -// } | |
| 194 | + if (!$res) { | |
| 195 | + $this->error[] = 'An Error Has Occured'; | |
| 196 | + return false; | |
| 197 | + } | |
| 180 | 198 | return true; |
| 181 | 199 | } |
| 182 | 200 | |
| 183 | 201 | function _performUpgrade() { |
| 184 | -// return PEAR::raiseError("Unimplemented"); | |
| 202 | + $this->error[] = 'Unimplemented'; | |
| 203 | + return false; | |
| 185 | 204 | } |
| 186 | 205 | |
| 187 | 206 | function _recordUpgrade($result) { |
| ... | ... | @@ -193,28 +212,20 @@ class UpgradeItem extends InstallUtil { |
| 193 | 212 | } else { |
| 194 | 213 | $parentid = null; |
| 195 | 214 | } |
| 196 | - //TODO: Where is the code? | |
| 197 | - exit("add code"); | |
| 198 | - /*return $this->autoInsert(); | |
| 199 | - | |
| 200 | - DBUtil::autoInsert("upgrades", array( | |
| 201 | - "descriptor" => $this->getDescriptor(), | |
| 202 | - "description" => $this->description, | |
| 203 | - "date_performed" => $this->date, | |
| 204 | - "result" => $result, | |
| 205 | - "parent" => $parentid, | |
| 206 | - ));*/ | |
| 215 | + $sql = "INSERT INTO upgrades (`id`, `descriptor`, `description`, `date_performed`, `result`, `parent`) VALUES (NULL, '". $this->getDescriptor()."', '".$this->description."', '".$this->date."', '".$result."', '".$parentid."')"; | |
| 216 | + $this->dbUtilities->query($sql); | |
| 217 | + | |
| 218 | + return true; | |
| 207 | 219 | } |
| 208 | 220 | |
| 209 | - // STATIC | |
| 210 | 221 | function getAllUpgrades() { |
| 211 | 222 | return array(); |
| 212 | 223 | } |
| 213 | - | |
| 214 | 224 | |
| 215 | -} | |
| 225 | +} // end class UpgradeItem | |
| 216 | 226 | |
| 217 | 227 | class SQLUpgradeItem extends UpgradeItem { |
| 228 | + | |
| 218 | 229 | function SQLUpgradeItem($path, $version = null, $description = null, $phase = null, $priority = null) { |
| 219 | 230 | $this->type = "sql"; |
| 220 | 231 | $this->priority = 0; |
| ... | ... | @@ -249,19 +260,16 @@ class SQLUpgradeItem extends UpgradeItem { |
| 249 | 260 | * |
| 250 | 261 | * STATIC |
| 251 | 262 | */ |
| 252 | - function getUpgrades($origVersion, $currVersion) { | |
| 253 | -// global $default; | |
| 254 | - | |
| 255 | -// $sqlupgradedir = KT_DIR . '/sql/' . $default->dbType . '/upgrade/'; | |
| 256 | - $dbType = 'mysql'; | |
| 257 | - $sqlupgradedir = KT_DIR . 'sql/' . $dbType . '/upgrade/'; | |
| 263 | + public static function getUpgrades($origVersion, $currVersion) { | |
| 264 | + $dbType = 'mysql'; | |
| 265 | + $sqlupgradedir = KT_DIR . 'sql/' . $dbType . '/upgrade/'; | |
| 258 | 266 | $ret = array(); |
| 259 | 267 | |
| 260 | 268 | if (!is_dir($sqlupgradedir)) { |
| 261 | -// return PEAR::raiseError("SQL Upgrade directory ($sqlupgradedir) not accessible"); | |
| 269 | + return false; | |
| 262 | 270 | } |
| 263 | 271 | if (!($dh = opendir($sqlupgradedir))) { |
| 264 | -// return PEAR::raiseError("SQL Upgrade directory ($sqlupgradedir) not accessible"); | |
| 272 | + return false; | |
| 265 | 273 | } |
| 266 | 274 | |
| 267 | 275 | while (($file = readdir($dh)) !== false) { |
| ... | ... | @@ -289,9 +297,6 @@ class SQLUpgradeItem extends UpgradeItem { |
| 289 | 297 | if (!lte_version($details[1], $currVersion)) { |
| 290 | 298 | continue; |
| 291 | 299 | } |
| 292 | - //print "Will run $file\n"; | |
| 293 | -// print_r($this->util->dbUtilities); | |
| 294 | -// die; | |
| 295 | 300 | $ret[] = new SQLUpgradeItem($file); |
| 296 | 301 | } |
| 297 | 302 | } |
| ... | ... | @@ -310,10 +315,6 @@ class SQLUpgradeItem extends UpgradeItem { |
| 310 | 315 | if (!lte_version($details[1], $currVersion)) { |
| 311 | 316 | continue; |
| 312 | 317 | } |
| 313 | - //print "Will run $file\n"; | |
| 314 | -// print_r(SQLUpgradeItem::); | |
| 315 | -// die; | |
| 316 | -// new InstallUtil(); | |
| 317 | 318 | $ret[] = new SQLUpgradeItem($relpath); |
| 318 | 319 | } |
| 319 | 320 | } |
| ... | ... | @@ -323,7 +324,7 @@ class SQLUpgradeItem extends UpgradeItem { |
| 323 | 324 | return $ret; |
| 324 | 325 | } |
| 325 | 326 | |
| 326 | - function _getDetailsFromFileName($path) { | |
| 327 | + public static function _getDetailsFromFileName($path) { | |
| 327 | 328 | // Old format (pre 2.0.6) |
| 328 | 329 | $matched = preg_match('#^([\d.]*)-to-([\d.]*).sql$#', $path, $matches); |
| 329 | 330 | if ($matched != 0) { |
| ... | ... | @@ -358,18 +359,16 @@ class SQLUpgradeItem extends UpgradeItem { |
| 358 | 359 | } |
| 359 | 360 | |
| 360 | 361 | function _performUpgrade() { |
| 361 | -// global $default; | |
| 362 | 362 | $dbType = 'mysql'; |
| 363 | 363 | $sqlupgradedir = KT_DIR . 'sql/' . $dbType . '/upgrade/'; |
| 364 | 364 | $queries = SQLFile::sqlFromFile($sqlupgradedir . $this->name); |
| 365 | - exit('add code'); | |
| 366 | -// return DBUtil::runQueries($queries, $default->_admindb); | |
| 365 | + return $this->dbUtilities->runQueries($queries); | |
| 367 | 366 | } |
| 368 | 367 | |
| 369 | - | |
| 370 | -} | |
| 368 | +} // end class SQLUpgradeItem | |
| 371 | 369 | |
| 372 | 370 | class KTRebuildPermissionObserver { |
| 371 | + | |
| 373 | 372 | function start() { |
| 374 | 373 | $this->lastBeat = time(); |
| 375 | 374 | } |
| ... | ... | @@ -383,9 +382,11 @@ class KTRebuildPermissionObserver { |
| 383 | 382 | } |
| 384 | 383 | function end() { |
| 385 | 384 | } |
| 385 | + | |
| 386 | 386 | } |
| 387 | 387 | |
| 388 | 388 | class RecordUpgradeItem extends UpgradeItem { |
| 389 | + | |
| 389 | 390 | function RecordUpgradeItem ($version, $oldversion = null) { |
| 390 | 391 | $this->type = "upgrade"; |
| 391 | 392 | if (is_null($oldversion)) { |
| ... | ... | @@ -399,24 +400,30 @@ class RecordUpgradeItem extends UpgradeItem { |
| 399 | 400 | } |
| 400 | 401 | |
| 401 | 402 | function _performUpgrade() { |
| 402 | -// $this->_deleteSmartyFiles(); | |
| 403 | -// $this->_deleteProxyFiles(); | |
| 404 | -// require_once(KT_LIB_DIR . '/cache/cache.inc.php'); | |
| 405 | -// $oCache =& KTCache::getSingleton(); | |
| 406 | -// $oCache->deleteAllCaches(); | |
| 403 | + // What did this do? | |
| 404 | + /* | |
| 405 | + $this->_deleteSmartyFiles(); | |
| 406 | + $this->_deleteProxyFiles(); | |
| 407 | + require_once(KT_LIB_DIR . '/cache/cache.inc.php'); | |
| 408 | + $oCache =& KTCache::getSingleton(); | |
| 409 | + $oCache->deleteAllCaches(); | |
| 407 | 410 | // TODO : clear cache folder |
| 408 | -// require_once(KT_LIB_DIR . '/permissions/permissionutil.inc.php'); | |
| 409 | - // TODO : What does this do | |
| 410 | -// $po =& new KTRebuildPermissionObserver($this); | |
| 411 | -// $po->start(); | |
| 412 | -// $oChannel =& KTPermissionChannel::getSingleton(); | |
| 413 | -// $oChannel->addObserver($po); | |
| 411 | + require_once(KT_LIB_DIR . '/permissions/permissionutil.inc.php'); | |
| 412 | + TODO : What does this do | |
| 413 | + $po =& new KTRebuildPermissionObserver($this); | |
| 414 | + $po->start(); | |
| 415 | + $oChannel =& KTPermissionChannel::getSingleton(); | |
| 416 | + $oChannel->addObserver($po); | |
| 417 | + */ | |
| 414 | 418 | |
| 415 | 419 | set_time_limit(0); |
| 416 | 420 | ignore_user_abort(true); |
| 417 | 421 | |
| 418 | -// KTPermissionUtil::rebuildPermissionLookups(true); | |
| 419 | -// $po->end(); | |
| 422 | + // What did this do? | |
| 423 | + /* | |
| 424 | + KTPermissionUtil::rebuildPermissionLookups(true); | |
| 425 | + $po->end(); | |
| 426 | + */ | |
| 420 | 427 | |
| 421 | 428 | $versionFile=KT_DIR . '/docs/VERSION-NAME.txt'; |
| 422 | 429 | $fp = fopen($versionFile,'rt'); |
| ... | ... | @@ -426,8 +433,8 @@ class RecordUpgradeItem extends UpgradeItem { |
| 426 | 433 | $query = "UPDATE system_settings SET value = '$systemVersion' WHERE name = 'knowledgetreeVersion'"; |
| 427 | 434 | $this->runDBQuery($query); |
| 428 | 435 | $query = "UPDATE system_settings SET value = '{$this->version}' WHERE name = 'databaseVersion'"; |
| 429 | - $assArray = $this->runDBQuery($query); | |
| 430 | - return !is_null($assArray); | |
| 436 | + $result = $this->runDBQuery($query); | |
| 437 | + return $result; | |
| 431 | 438 | } |
| 432 | 439 | |
| 433 | 440 | function _deleteSmartyFiles() { |
| ... | ... | @@ -452,7 +459,6 @@ class RecordUpgradeItem extends UpgradeItem { |
| 452 | 459 | } |
| 453 | 460 | } |
| 454 | 461 | |
| 455 | - | |
| 456 | 462 | function _deleteProxyFiles() { |
| 457 | 463 | $oKTConfig =& KTConfig::getSingleton(); |
| 458 | 464 | |
| ... | ... | @@ -487,6 +493,7 @@ class RecordUpgradeItem extends UpgradeItem { |
| 487 | 493 | @unlink($sFile); |
| 488 | 494 | } |
| 489 | 495 | } |
| 490 | -} | |
| 496 | + | |
| 497 | +} // end class RecordUpgradeItem | |
| 491 | 498 | |
| 492 | 499 | ?> | ... | ... |
setup/upgrade/lib/datetime.inc renamed to setup/upgrade/lib/datetime.inc.php
setup/upgrade/lib/upgrade.inc.php
| ... | ... | @@ -40,31 +40,34 @@ |
| 40 | 40 | |
| 41 | 41 | require_once('UpgradeItems.inc.php'); |
| 42 | 42 | |
| 43 | -//function setupAdminDatabase() { | |
| 44 | -// global $default; | |
| 45 | -// $dsn = array( | |
| 46 | -// 'phptype' => $default->dbType, | |
| 47 | -// 'username' => $default->dbAdminUser, | |
| 48 | -// 'password' => $default->dbAdminPass, | |
| 49 | -// 'hostspec' => $default->dbHost, | |
| 50 | -// 'database' => $default->dbName, | |
| 51 | -// 'port' => $default->dbPort, | |
| 52 | -// ); | |
| 53 | -// | |
| 54 | -// $options = array( | |
| 55 | -// 'debug' => 2, | |
| 56 | -// 'portability' => DB_PORTABILITY_ERRORS, | |
| 57 | -// 'seqname_format' => 'zseq_%s', | |
| 58 | -// ); | |
| 59 | -// | |
| 60 | -// $default->_admindb = &DB::connect($dsn, $options); | |
| 61 | -// if (PEAR::isError($default->_admindb)) { | |
| 62 | -// die($default->_admindb->toString()); | |
| 63 | -// } | |
| 64 | -// $default->_admindb->setFetchMode(DB_FETCHMODE_ASSOC); | |
| 65 | -// return; | |
| 66 | -//} | |
| 67 | -//setupAdminDatabase(); | |
| 43 | +// What did this do? | |
| 44 | +/* | |
| 45 | +function setupAdminDatabase() { | |
| 46 | + global $default; | |
| 47 | + $dsn = array( | |
| 48 | + 'phptype' => $default->dbType, | |
| 49 | + 'username' => $default->dbAdminUser, | |
| 50 | + 'password' => $default->dbAdminPass, | |
| 51 | + 'hostspec' => $default->dbHost, | |
| 52 | + 'database' => $default->dbName, | |
| 53 | + 'port' => $default->dbPort, | |
| 54 | + ); | |
| 55 | + | |
| 56 | + $options = array( | |
| 57 | + 'debug' => 2, | |
| 58 | + 'portability' => DB_PORTABILITY_ERRORS, | |
| 59 | + 'seqname_format' => 'zseq_%s', | |
| 60 | + ); | |
| 61 | + | |
| 62 | + $default->_admindb = &DB::connect($dsn, $options); | |
| 63 | + if (PEAR::isError($default->_admindb)) { | |
| 64 | + die($default->_admindb->toString()); | |
| 65 | + } | |
| 66 | + $default->_admindb->setFetchMode(DB_FETCHMODE_ASSOC); | |
| 67 | + return; | |
| 68 | +} | |
| 69 | +setupAdminDatabase(); | |
| 70 | +*/ | |
| 68 | 71 | |
| 69 | 72 | // {{{ Format of the descriptor |
| 70 | 73 | /** |
| ... | ... | @@ -92,25 +95,24 @@ function &describeUpgrade ($origVersion, $currVersion) { |
| 92 | 95 | // How to figure out what upgrades to do: |
| 93 | 96 | // |
| 94 | 97 | // 1. Get all SQL upgrades >= origVersion and <= currVersion |
| 95 | - // 2. Get all Function upgrades >= origVersion and <= currVersion | |
| 96 | - // 3. Categorise each into version they upgrade to | |
| 97 | - // 4. Sort each version subgroup into correct order | |
| 98 | + // 2. Categorise each into version they upgrade to | |
| 99 | + // 3. Sort each version subgroup into correct order | |
| 98 | 100 | // 5. Add "recordSubUpgrade" for each version there. |
| 99 | - // 6. Add back into one big list again | |
| 100 | - // 7. Add "recordUpgrade" for whole thing | |
| 101 | + // 5. Add back into one big list again | |
| 102 | + // 6. Add "recordUpgrade" for whole thing | |
| 101 | 103 | |
| 102 | 104 | // $recordUpgrade = array('upgrade*' . $currVersion, 'Upgrade to ' . $currVersion, null); |
| 103 | 105 | |
| 104 | 106 | $steps = array(); |
| 105 | 107 | foreach (array('SQLUpgradeItem') as $itemgen) { |
| 106 | 108 | $f = array($itemgen, 'getUpgrades'); |
| 107 | - $ssteps =& call_user_func($f, $origVersion, $currVersion); | |
| 109 | + $ssteps = call_user_func($f, $origVersion, $currVersion); | |
| 108 | 110 | $scount = count($ssteps); |
| 109 | 111 | for ($i = 0; $i < $scount; $i++) { |
| 110 | 112 | $steps[] =& $ssteps[$i]; |
| 111 | 113 | } |
| 112 | 114 | } |
| 113 | - $upgradestep =& new RecordUpgradeItem($currVersion, $origVersion); | |
| 115 | + $upgradestep = new RecordUpgradeItem($currVersion, $origVersion); | |
| 114 | 116 | $steps[] =& $upgradestep; |
| 115 | 117 | $stepcount = count($steps); |
| 116 | 118 | for ($i = 0; $i < $stepcount; $i++) { |
| ... | ... | @@ -197,7 +199,7 @@ function compare_version($version1, $version2) { |
| 197 | 199 | */ |
| 198 | 200 | function lte_version($version1, $version2) { |
| 199 | 201 | if (in_array(compare_version($version1, $version2), array(-1, 0))) { |
| 200 | - return true; | |
| 202 | + return true; | |
| 201 | 203 | } |
| 202 | 204 | return false; |
| 203 | 205 | } |
| ... | ... | @@ -209,7 +211,7 @@ function lte_version($version1, $version2) { |
| 209 | 211 | */ |
| 210 | 212 | function gte_version($version1, $version2) { |
| 211 | 213 | if (in_array(compare_version($version1, $version2), array(0, 1))) { |
| 212 | - return true; | |
| 214 | + return true; | |
| 213 | 215 | } |
| 214 | 216 | return false; |
| 215 | 217 | } | ... | ... |
setup/upgrade/session.php
setup/upgrade/step.php
| ... | ... | @@ -39,6 +39,9 @@ |
| 39 | 39 | * @package Upgrader |
| 40 | 40 | * @version Version 0.1 |
| 41 | 41 | */ |
| 42 | + | |
| 43 | +require_once("../wizard/steps/configuration.php"); // configuration to read the ini path | |
| 44 | + | |
| 42 | 45 | class Step |
| 43 | 46 | { |
| 44 | 47 | /** |
| ... | ... | @@ -435,6 +438,44 @@ class Step |
| 435 | 438 | |
| 436 | 439 | return $_SESSION[$package][$class]; |
| 437 | 440 | } |
| 441 | + | |
| 442 | + protected function readConfig() { | |
| 443 | + $wizConfigHandler = new configuration(); | |
| 444 | + $path = $wizConfigHandler->readConfigPathIni(); | |
| 445 | + $this->util->iniUtilities->load($path); | |
| 446 | + $dbSettings = $this->util->iniUtilities->getSection('db'); | |
| 447 | + $this->dbSettings = array('dbHost'=> $dbSettings['dbHost'], | |
| 448 | + 'dbName'=> $dbSettings['dbName'], | |
| 449 | + 'dbUser'=> $dbSettings['dbUser'], | |
| 450 | + 'dbPass'=> $dbSettings['dbPass'], | |
| 451 | + 'dbPort'=> $dbSettings['dbPort'], | |
| 452 | + 'dbAdminUser'=> $dbSettings['dbAdminUser'], | |
| 453 | + 'dbAdminPass'=> $dbSettings['dbAdminPass'], | |
| 454 | + ); | |
| 455 | + $this->paths = $this->util->iniUtilities->getSection('urls'); | |
| 456 | + $this->paths = array_merge($this->paths, $this->util->iniUtilities->getSection('cache')); | |
| 457 | + $this->sysVersion = $this->readVersion(); | |
| 458 | + $this->cachePath = $wizConfigHandler->readCachePath(); | |
| 459 | + $this->proxyPath = $this->cachePath."/.."; // Total guess. | |
| 460 | + $this->proxyPath = realpath($this->proxyPath."/proxies"); | |
| 461 | + $this->storeSilent(); | |
| 462 | + } | |
| 463 | + | |
| 464 | + protected function readVersion() { | |
| 465 | + $verFile = SYSTEM_DIR."docs".DS."VERSION.txt"; | |
| 466 | + if(file_exists($verFile)) { | |
| 467 | + $foundVersion = file_get_contents($verFile); | |
| 468 | + return $foundVersion; | |
| 469 | + } else { | |
| 470 | + $this->error[] = "KT installation version not found"; | |
| 471 | + } | |
| 472 | + | |
| 473 | + return false; | |
| 474 | + } | |
| 475 | + | |
| 476 | + protected function storeSilent() { | |
| 477 | + | |
| 478 | + } | |
| 438 | 479 | } |
| 439 | 480 | |
| 440 | 481 | ?> |
| 441 | 482 | \ No newline at end of file | ... | ... |
setup/upgrade/stepAction.php
| ... | ... | @@ -382,12 +382,12 @@ class stepAction { |
| 382 | 382 | $step_errors = $this->action->getErrors(); // Get errors |
| 383 | 383 | $step_warnings = $this->action->getWarnings(); // Get warnings |
| 384 | 384 | if($this->displayConfirm()) { // Check if theres a confirm step |
| 385 | - $template = "templates/{$this->stepName}_confirm.tpl"; | |
| 385 | + $template = "templates" . DS . "{$this->stepName}_confirm.tpl"; | |
| 386 | 386 | } else { |
| 387 | 387 | if($this->displayFirst()) { |
| 388 | - $template = "templates/{$this->stepName}_confirm.tpl"; | |
| 388 | + $template = "templates" . DS . "{$this->stepName}_confirm.tpl"; | |
| 389 | 389 | } else { |
| 390 | - $template = "templates/{$this->stepName}.tpl"; | |
| 390 | + $template = "templates" . DS . "{$this->stepName}.tpl"; | |
| 391 | 391 | } |
| 392 | 392 | } |
| 393 | 393 | $step_tpl = new Template($template); |
| ... | ... | @@ -402,7 +402,7 @@ class stepAction { |
| 402 | 402 | } |
| 403 | 403 | } |
| 404 | 404 | $content = $step_tpl->fetch(); |
| 405 | - $tpl = new Template("templates/wizard.tpl"); | |
| 405 | + $tpl = new Template("templates" . DS . "wizard.tpl"); | |
| 406 | 406 | $vars = $this->getVars(); // Get template variables |
| 407 | 407 | $tpl->set("vars", $vars); // Set template errors |
| 408 | 408 | $tpl->set('content', $content); | ... | ... |
setup/upgrade/steps/upgradeBackup.php
| ... | ... | @@ -40,9 +40,8 @@ |
| 40 | 40 | * @version Version 0.1 |
| 41 | 41 | */ |
| 42 | 42 | |
| 43 | -//require_once('../../config/dmsDefaults.php'); | |
| 44 | - | |
| 45 | 43 | class upgradeBackup extends Step { |
| 44 | + | |
| 46 | 45 | protected $silent = false; |
| 47 | 46 | protected $temp_variables = array(); |
| 48 | 47 | |
| ... | ... | @@ -83,13 +82,14 @@ class upgradeBackup extends Step { |
| 83 | 82 | return 'landing'; |
| 84 | 83 | } |
| 85 | 84 | |
| 86 | - private function backupNow() | |
| 87 | - { | |
| 85 | + private function backupNow() { | |
| 88 | 86 | return isset($_POST['BackupNow']); |
| 89 | 87 | } |
| 90 | 88 | |
| 91 | 89 | private function doRun($action = null) { |
| 90 | + $this->readConfig(); | |
| 92 | 91 | $this->temp_variables['action'] = $action; |
| 92 | + $this->temp_variables['backupStatus'] = false; | |
| 93 | 93 | |
| 94 | 94 | if (is_null($action) || ($action == 'confirm')) { |
| 95 | 95 | $this->temp_variables['title'] = 'Confirm Backup'; |
| ... | ... | @@ -101,18 +101,10 @@ class upgradeBackup extends Step { |
| 101 | 101 | // TODO error checking (done in backupDone at the moment) |
| 102 | 102 | $this->backupDone(); |
| 103 | 103 | } |
| 104 | - $this->storeSilent();// Set silent mode variables | |
| 105 | 104 | |
| 106 | 105 | return true; |
| 107 | 106 | } |
| 108 | 107 | |
| 109 | - /** | |
| 110 | - * Set all silent mode varibles | |
| 111 | - * | |
| 112 | - */ | |
| 113 | - private function storeSilent() { | |
| 114 | - } | |
| 115 | - | |
| 116 | 108 | private function backup() { |
| 117 | 109 | $targetfile = $_SESSION['backupFile']; |
| 118 | 110 | $stmt = $this->create_backup_stmt($targetfile); |
| ... | ... | @@ -126,11 +118,11 @@ class upgradeBackup extends Step { |
| 126 | 118 | $handle = popen($stmt['cmd'], 'r'); |
| 127 | 119 | $read = fread($handle, 10240); |
| 128 | 120 | pclose($handle); |
| 129 | - $_SESSION['backupOutput']=$read; | |
| 121 | + $_SESSION['backupOutput'] = $read; | |
| 130 | 122 | $dir = $this->util->resolveTempDir(); |
| 131 | - $_SESSION['backupFile'] = $stmt['target']; | |
| 123 | + $_SESSION['backupFile'] = $stmt['target']; | |
| 132 | 124 | |
| 133 | - if (OS_UNIX) { | |
| 125 | + if (!WINDOWS_OS) { | |
| 134 | 126 | chmod($stmt['target'],0600); |
| 135 | 127 | } |
| 136 | 128 | |
| ... | ... | @@ -151,7 +143,7 @@ class upgradeBackup extends Step { |
| 151 | 143 | |
| 152 | 144 | if ($status) |
| 153 | 145 | { |
| 154 | - $stmt = $this->util->create_restore_stmt($filename); | |
| 146 | + $stmt = $this->util->create_restore_stmt($filename, $this->dbSettings); | |
| 155 | 147 | $this->temp_variables['display'] = 'The backup file <nobr><i>"' . $filename . '"</i></nobr> has been created. |
| 156 | 148 | <P> It appears as though the <font color=green>backup has been successful</font>. |
| 157 | 149 | <P>'; |
| ... | ... | @@ -193,56 +185,54 @@ class upgradeBackup extends Step { |
| 193 | 185 | } |
| 194 | 186 | |
| 195 | 187 | private function create_backup_stmt($targetfile=null) |
| 196 | - { | |
| 197 | - $oKTConfig =& KTConfig::getSingleton(); | |
| 198 | - | |
| 199 | - $adminUser = $oKTConfig->get('db/dbAdminUser'); | |
| 200 | - $adminPwd = $oKTConfig->get('db/dbAdminPass'); | |
| 201 | - $dbHost = $oKTConfig->get('db/dbHost'); | |
| 202 | - $dbName = $oKTConfig->get('db/dbName'); | |
| 203 | - | |
| 204 | - $dbPort = trim($oKTConfig->get('db/dbPort')); | |
| 188 | + { | |
| 189 | + $adminUser = $this->dbSettings['dbAdminUser']; | |
| 190 | + $adminPwd = $this->dbSettings['dbAdminPass']; | |
| 191 | + $dbHost = $this->dbSettings['dbHost']; | |
| 192 | + $dbName = $this->dbSettings['dbName']; | |
| 193 | + | |
| 194 | + $dbPort = trim($this->dbSettings['dbPort']); | |
| 205 | 195 | if (empty($dbPort) || $dbPort=='default') $dbPort = get_cfg_var('mysql.default_port'); |
| 206 | 196 | if (empty($dbPort)) $dbPort='3306'; |
| 207 | - $dbSocket = trim($oKTConfig->get('db/dbSocket')); | |
| 197 | + // dbSocket doesn't exist as far as I can find, where was it coming from? | |
| 198 | + //$dbSocket = trim($this->dbSettings['dbSocket']); | |
| 199 | + $dbSocket = ''; | |
| 208 | 200 | if (empty($dbSocket) || $dbSocket=='default') $dbSocket = get_cfg_var('mysql.default_socket'); |
| 209 | 201 | if (empty($dbSocket)) $dbSocket='../tmp/mysql.sock'; |
| 210 | 202 | |
| 211 | 203 | $date=date('Y-m-d-H-i-s'); |
| 212 | 204 | |
| 213 | - $dir=$this->util->resolveMysqlDir(); | |
| 205 | + $dir = $this->util->resolveMysqlDir(); | |
| 214 | 206 | |
| 215 | - $info['dir']=$dir; | |
| 216 | - | |
| 217 | - $prefix=''; | |
| 218 | - if (OS_UNIX) | |
| 207 | + $info['dir'] = $dir; | |
| 208 | + $prefix = ''; | |
| 209 | + if (!WINDOWS_OS) | |
| 219 | 210 | { |
| 220 | 211 | $prefix .= "./"; |
| 221 | 212 | } |
| 222 | 213 | |
| 223 | 214 | if (@stat($dbSocket) !== false) |
| 224 | 215 | { |
| 225 | - $mechanism="--socket=\"$dbSocket\""; | |
| 216 | + $mechanism = "--socket=\"$dbSocket\""; | |
| 226 | 217 | } |
| 227 | 218 | else |
| 228 | 219 | { |
| 229 | - $mechanism="--port=\"$dbPort\""; | |
| 220 | + $mechanism = "--port=\"$dbPort\""; | |
| 230 | 221 | } |
| 231 | 222 | |
| 232 | - $tmpdir=$this->util->resolveTempDir(); | |
| 223 | + $tmpdir = $this->util->resolveTempDir(); | |
| 233 | 224 | |
| 234 | 225 | if (is_null($targetfile)) |
| 235 | 226 | { |
| 236 | - $targetfile="$tmpdir/kt-backup-$date.sql"; | |
| 227 | + $targetfile = "$tmpdir/kt-backup-$date.sql"; | |
| 237 | 228 | } |
| 238 | 229 | |
| 239 | 230 | $stmt = $prefix . "mysqldump --user=\"$adminUser\" -p $mechanism \"$dbName\" > \"$targetfile\""; |
| 240 | - $info['display']=$stmt; | |
| 241 | - $info['target']=$targetfile; | |
| 242 | - | |
| 231 | + $info['display'] = $stmt; | |
| 232 | + $info['target'] = $targetfile; | |
| 243 | 233 | |
| 244 | 234 | $stmt = $prefix. "mysqldump --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism \"$dbName\" > \"$targetfile\""; |
| 245 | - $info['cmd']=$stmt; | |
| 235 | + $info['cmd'] = $stmt; | |
| 246 | 236 | return $info; |
| 247 | 237 | } |
| 248 | 238 | |
| ... | ... | @@ -255,5 +245,6 @@ class upgradeBackup extends Step { |
| 255 | 245 | $this->temp_variables['dir'] = $dir; |
| 256 | 246 | $this->temp_variables['display'] = $stmt['display']; |
| 257 | 247 | } |
| 248 | + | |
| 258 | 249 | } |
| 259 | 250 | ?> |
| 260 | 251 | \ No newline at end of file | ... | ... |
setup/upgrade/steps/upgradeComplete.php
| ... | ... | @@ -40,8 +40,6 @@ |
| 40 | 40 | * @version Version 0.1 |
| 41 | 41 | */ |
| 42 | 42 | |
| 43 | -//require_once('../../config/dmsDefaults.php'); | |
| 44 | - | |
| 45 | 43 | class upgradeComplete extends Step { |
| 46 | 44 | |
| 47 | 45 | protected $silent = false; |
| ... | ... | @@ -50,6 +48,7 @@ class upgradeComplete extends Step { |
| 50 | 48 | |
| 51 | 49 | public function doStep() { |
| 52 | 50 | $this->temp_variables = array("step_name"=>"complete", "silent"=>$this->silent); |
| 51 | + | |
| 53 | 52 | $this->doRun(); |
| 54 | 53 | return 'landing'; |
| 55 | 54 | } |
| ... | ... | @@ -62,7 +61,9 @@ class upgradeComplete extends Step { |
| 62 | 61 | * Set all silent mode varibles |
| 63 | 62 | * |
| 64 | 63 | */ |
| 65 | - private function storeSilent() { | |
| 64 | + protected function storeSilent() { | |
| 65 | + $v = $this->getDataFromSession('upgradeProperties'); | |
| 66 | + $this->temp_variables['sysVersion'] = $v['upgrade_version']; | |
| 66 | 67 | } |
| 67 | 68 | |
| 68 | 69 | } | ... | ... |
setup/upgrade/steps/upgradeDatabase.php
| ... | ... | @@ -40,12 +40,9 @@ |
| 40 | 40 | * @version Version 0.1 |
| 41 | 41 | */ |
| 42 | 42 | |
| 43 | -//require_once('../../config/dmsDefaults.php'); | |
| 44 | -//require_once(KT_LIB_DIR . '/config/config.inc.php'); | |
| 45 | -//require_once(KT_LIB_DIR . '/plugins/pluginutil.inc.php'); | |
| 46 | 43 | define('KT_DIR', SYSTEM_DIR); |
| 47 | 44 | define('KT_LIB_DIR', SYSTEM_DIR.'lib'); |
| 48 | -//require_once(SYSTEM_DIR . 'lib/upgrades/upgrade.inc.php'); | |
| 45 | +require_once(WIZARD_LIB . 'upgrade.inc.php'); | |
| 49 | 46 | |
| 50 | 47 | class upgradeDatabase extends Step |
| 51 | 48 | { |
| ... | ... | @@ -68,15 +65,6 @@ class upgradeDatabase extends Step |
| 68 | 65 | private $dbBinary = ''; // TODO:multiple databases |
| 69 | 66 | |
| 70 | 67 | /** |
| 71 | - * List of errors encountered | |
| 72 | - * | |
| 73 | - * @author KnowledgeTree Team | |
| 74 | - * @access public | |
| 75 | - * @var array | |
| 76 | - */ | |
| 77 | - public $error = array(); | |
| 78 | - | |
| 79 | - /** | |
| 80 | 68 | * List of errors used in template |
| 81 | 69 | * |
| 82 | 70 | * @author KnowledgeTree Team |
| ... | ... | @@ -93,11 +81,13 @@ class upgradeDatabase extends Step |
| 93 | 81 | * @var array |
| 94 | 82 | */ |
| 95 | 83 | public $storeInSession = true; |
| 84 | + | |
| 96 | 85 | public $sysVersion = ''; |
| 97 | 86 | protected $silent = false; |
| 98 | 87 | protected $temp_variables = array(); |
| 99 | 88 | public $paths = ''; |
| 100 | - /** | |
| 89 | + | |
| 90 | + /** | |
| 101 | 91 | * Main control of database setup |
| 102 | 92 | * |
| 103 | 93 | * @author KnowledgeTree Team |
| ... | ... | @@ -143,17 +133,11 @@ class upgradeDatabase extends Step |
| 143 | 133 | } |
| 144 | 134 | |
| 145 | 135 | private function doRun($action = null) { |
| 146 | -// $this->readConfig(KTConfig::getConfigFilename()); | |
| 147 | - | |
| 148 | 136 | $this->readConfig(); |
| 149 | -// if($this->dbSettings['dbPort'] == '') { | |
| 150 | -// $con = $this->util->dbUtilities->load($this->dbSettings['dbHost'], '', $this->dbSettings['dbUser'],$this->dbSettings['dbPass'], $this->dbSettings['dbName']); | |
| 151 | -// } else { | |
| 152 | - $con = $this->util->dbUtilities->load($this->dbSettings['dbHost'], $this->dbSettings['dbPort'], $this->dbSettings['dbUser'], | |
| 153 | - $this->dbSettings['dbPass'], $this->dbSettings['dbName']); | |
| 154 | -// } | |
| 155 | 137 | |
| 138 | + $con = $this->util->dbUtilities->load($this->dbSettings['dbHost'], $this->dbSettings['dbPort'], $this->dbSettings['dbUser'],$this->dbSettings['dbPass'], $this->dbSettings['dbName']); | |
| 156 | 139 | $this->temp_variables['action'] = $action; |
| 140 | + | |
| 157 | 141 | if (is_null($action) || ($action == 'preview')) { |
| 158 | 142 | $this->temp_variables['title'] = 'Preview Upgrade'; |
| 159 | 143 | $this->temp_variables['upgradeTable'] = $this->generateUpgradeTable(); |
| ... | ... | @@ -178,15 +162,16 @@ class upgradeDatabase extends Step |
| 178 | 162 | $this->sysVersion = $this->readVersion(); |
| 179 | 163 | $this->temp_variables['systemVersion'] = $this->sysVersion; |
| 180 | 164 | $dconf = $this->util->iniUtilities->getSection('db'); |
| 181 | - $query = sprintf('SELECT value FROM %s WHERE name = "databaseVersion"', 'system_settings'); | |
| 182 | 165 | $this->util->dbUtilities->load($dconf['dbHost'], '', $dconf['dbUser'], $dconf['dbPass'], $dconf['dbName']); |
| 166 | + | |
| 167 | + $query = sprintf('SELECT value FROM %s WHERE name = "databaseVersion"', 'system_settings'); | |
| 183 | 168 | $result = $this->util->dbUtilities->query($query); |
| 184 | 169 | $assArr = $this->util->dbUtilities->fetchAssoc($result); |
| 185 | 170 | if ($result) { |
| 186 | 171 | $lastVersion = $assArr[0]['value']; |
| 187 | 172 | } |
| 188 | 173 | $currentVersion = $this->sysVersion; |
| 189 | - require_once("lib/upgrade.inc.php"); | |
| 174 | + | |
| 190 | 175 | $upgrades = describeUpgrade($lastVersion, $currentVersion); |
| 191 | 176 | $ret = "<table border=1 cellpadding=1 cellspacing=1 width='100%'>\n"; |
| 192 | 177 | $ret .= "<tr bgcolor='darkgrey'><th width='10'>Code</th><th width='100%'>Description</th><th width='30'>Applied</th></tr>\n"; |
| ... | ... | @@ -214,30 +199,6 @@ class upgradeDatabase extends Step |
| 214 | 199 | |
| 215 | 200 | return false; |
| 216 | 201 | } |
| 217 | - /** | |
| 218 | - * Stores varibles used by template | |
| 219 | - * | |
| 220 | - * @author KnowledgeTree Team | |
| 221 | - * @params none | |
| 222 | - * @access public | |
| 223 | - * @return array | |
| 224 | - */ | |
| 225 | - public function getStepVars() { | |
| 226 | - return $this->temp_variables; | |
| 227 | - } | |
| 228 | - | |
| 229 | - /** | |
| 230 | - * Returns database errors | |
| 231 | - * | |
| 232 | - * @author KnowledgeTree Team | |
| 233 | - * @access public | |
| 234 | - * @params none | |
| 235 | - * @return array | |
| 236 | - */ | |
| 237 | - public function getErrors() { | |
| 238 | - | |
| 239 | - return $this->error; | |
| 240 | - } | |
| 241 | 202 | |
| 242 | 203 | /** |
| 243 | 204 | * Initialize errors to false |
| ... | ... | @@ -253,25 +214,11 @@ class upgradeDatabase extends Step |
| 253 | 214 | } |
| 254 | 215 | } |
| 255 | 216 | |
| 256 | - private function readConfig() { | |
| 257 | - require_once("../wizard/steps/configuration.php"); // configuration to read the ini path | |
| 258 | - $wizConfigHandler = new configuration(); | |
| 259 | - $path = $wizConfigHandler->readConfigPathIni(); | |
| 260 | - $this->util->iniUtilities->load($path); | |
| 261 | - $dbSettings = $this->util->iniUtilities->getSection('db'); | |
| 262 | - $this->dbSettings = array('dbHost'=> $dbSettings['dbHost'], | |
| 263 | - 'dbName'=> $dbSettings['dbName'], | |
| 264 | - 'dbUser'=> $dbSettings['dbUser'], | |
| 265 | - 'dbPass'=> $dbSettings['dbPass'], | |
| 266 | - 'dbPort'=> $dbSettings['dbPort'], | |
| 267 | - 'dbAdminUser'=> $dbSettings['dbAdminUser'], | |
| 268 | - 'dbAdminPass'=> $dbSettings['dbAdminPass'], | |
| 269 | - ); | |
| 270 | - $this->paths = $this->util->iniUtilities->getSection('urls'); | |
| 271 | - $this->paths = array_merge($this->paths, $this->util->iniUtilities->getSection('cache')); | |
| 272 | - $this->temp_variables['dbSettings'] = $this->dbSettings; | |
| 273 | - $this->sysVersion = $this->readVersion(); | |
| 274 | - $this->cachePath = $wizConfigHandler->readCachePath(); | |
| 217 | + public function storeSilent() { | |
| 218 | + $this->temp_variables['paths'] = $this->paths; | |
| 219 | + $this->temp_variables['sysVersion'] = $this->sysVersion; | |
| 220 | + $this->temp_variables['sysVersion'] = $this->sysVersion; | |
| 221 | + $this->temp_variables['dbSettings'] = $this->dbSettings; | |
| 275 | 222 | } |
| 276 | 223 | |
| 277 | 224 | private function upgradeConfirm() |
| ... | ... | @@ -286,8 +233,6 @@ class upgradeDatabase extends Step |
| 286 | 233 | |
| 287 | 234 | private function doDatabaseUpgrade() |
| 288 | 235 | { |
| 289 | -// global $default; | |
| 290 | - | |
| 291 | 236 | $errors = false; |
| 292 | 237 | |
| 293 | 238 | $this->temp_variables['detail'] = '<p>The table below describes the upgrades that have occurred to |
| ... | ... | @@ -295,18 +240,10 @@ class upgradeDatabase extends Step |
| 295 | 240 | |
| 296 | 241 | $pre_res = $this->performPreUpgradeActions(); |
| 297 | 242 | |
| 298 | - if (PEAR::isError($pre_res)) { | |
| 299 | - $errors = true; | |
| 300 | - $this->temp_variables['preUpgrade'] = '<font color="red">Pre-Upgrade actions failed.</font>'; | |
| 301 | - } | |
| 302 | - else { | |
| 303 | - $this->temp_variables['preUpgrade'] = '<font color="green">Pre-Upgrade actions succeeded.</font>'; | |
| 304 | - | |
| 305 | - } | |
| 306 | - | |
| 307 | 243 | $res = $this->performAllUpgrades(); |
| 308 | - if (PEAR::isError($res) || PEAR::isError($pres)) { | |
| 244 | + if (!$res) { | |
| 309 | 245 | $errors = true; |
| 246 | + $this->error[] = 'An Error has occured'; | |
| 310 | 247 | // TODO instantiate error details hideable section? |
| 311 | 248 | $this->temp_variables['upgradeStatus'] = '<font color="red">Database upgrade failed</font> |
| 312 | 249 | <br/><br/> |
| ... | ... | @@ -320,13 +257,7 @@ class upgradeDatabase extends Step |
| 320 | 257 | } |
| 321 | 258 | |
| 322 | 259 | $post_pres = $this->performPostUpgradeActions(); |
| 323 | - if (PEAR::isError($post_res)) { | |
| 324 | - $errors = true; | |
| 325 | - $this->temp_variables['postUpgrade'] = '<font color="red">Post-Upgrade actions failed.</font>'; | |
| 326 | - } | |
| 327 | - else { | |
| 328 | - $this->temp_variables['postUpgrade'] = '<font color="green">Post-Upgrade actions succeeded.</font>'; | |
| 329 | - } | |
| 260 | + | |
| 330 | 261 | |
| 331 | 262 | return !$errors; |
| 332 | 263 | } |
| ... | ... | @@ -335,40 +266,59 @@ class upgradeDatabase extends Step |
| 335 | 266 | |
| 336 | 267 | // This is just to test and needs to be updated to a more sane and error resistent architrcture if it works. |
| 337 | 268 | // It should idealy work the same as the upgrades. |
| 338 | - | |
| 339 | -// global $default; | |
| 340 | -// print_r($this->paths);die; | |
| 341 | 269 | // Lock the scheduler |
| 342 | - $lockFile = $default->cacheDirectory . DIRECTORY_SEPARATOR . 'scheduler.lock'; | |
| 343 | - touch($lockFile); | |
| 270 | + $lockFile = $this->cachePath . DIRECTORY_SEPARATOR . 'scheduler.lock'; | |
| 271 | + @touch($lockFile); | |
| 344 | 272 | return true; |
| 345 | 273 | |
| 346 | 274 | } |
| 347 | 275 | |
| 276 | + private function deleteDirectory($sPath) { | |
| 277 | + if (empty($sPath) || !is_dir($sPath)) return; | |
| 278 | + | |
| 279 | + if (!WINDOWS_OS) { | |
| 280 | + if (file_exists('/bin/rm')) { | |
| 281 | + $this->util->pexec(array('/bin/rm', '-rf', $sPath)); | |
| 282 | + return; | |
| 283 | + } | |
| 284 | + } | |
| 285 | + if (WINDOWS_OS) { | |
| 286 | + // Potentially kills off all the files in the path, speeding | |
| 287 | + // things up a bit | |
| 288 | + exec("del /q /s " . escapeshellarg($sPath)); | |
| 289 | + } | |
| 290 | + $hPath = @opendir($sPath); | |
| 291 | + while (($sFilename = readdir($hPath)) !== false) { | |
| 292 | + if (in_array($sFilename, array('.', '..'))) { | |
| 293 | + continue; | |
| 294 | + } | |
| 295 | + $sFullFilename = sprintf("%s/%s", $sPath, $sFilename); | |
| 296 | + if (is_dir($sFullFilename)) { | |
| 297 | + $this->deleteDirectory($sFullFilename); | |
| 298 | + continue; | |
| 299 | + } | |
| 300 | + @chmod($sFullFilename, 0666); | |
| 301 | + @unlink($sFullFilename); | |
| 302 | + } | |
| 303 | + closedir($hPath); | |
| 304 | + @rmdir($sPath); | |
| 305 | + } | |
| 306 | + | |
| 348 | 307 | private function performPostUpgradeActions() { |
| 349 | 308 | |
| 350 | 309 | // This is just to test and needs to be updated to a more sane and error resistent architrcture if it works. |
| 351 | 310 | // It should idealy work the same as the upgrades. |
| 352 | 311 | |
| 353 | -// global $default; | |
| 354 | - | |
| 355 | 312 | // Ensure all plugins are re-registered. |
| 356 | 313 | $sql = "TRUNCATE plugin_helper"; |
| 357 | - $res = DBUtil::runQuery($sql); | |
| 358 | - | |
| 314 | + $res = $this->util->dbUtilities->query($sql); | |
| 315 | + | |
| 359 | 316 | // Clear out all caches and proxies - they need to be regenerated with the new code |
| 360 | - $proxyDir = $default->proxyCacheDirectory; | |
| 361 | - KTUtil::deleteDirectory($proxyDir); | |
| 362 | - | |
| 363 | - $oKTCache = new KTCache(); | |
| 364 | - $oKTCache->deleteAllCaches(); | |
| 365 | - | |
| 366 | - // Clear the configuration cache, it'll regenerate on next load | |
| 367 | - $oKTConfig = new KTConfig(); | |
| 368 | - $oKTConfig->clearCache(); | |
| 317 | + $this->deleteDirectory($this->proxyPath); | |
| 318 | + $this->deleteDirectory($this->cachePath); | |
| 369 | 319 | |
| 370 | 320 | // Unlock the scheduler |
| 371 | - $lockFile = $default->cacheDirectory . DIRECTORY_SEPARATOR . 'scheduler.lock'; | |
| 321 | + $lockFile = $this->cachePath . DIRECTORY_SEPARATOR . 'scheduler.lock'; | |
| 372 | 322 | if(file_exists($lockFile)){ |
| 373 | 323 | @unlink($lockFile); |
| 374 | 324 | } |
| ... | ... | @@ -378,18 +328,15 @@ class upgradeDatabase extends Step |
| 378 | 328 | } |
| 379 | 329 | |
| 380 | 330 | private function performAllUpgrades () { |
| 381 | -// global $default; | |
| 382 | - | |
| 383 | 331 | $row = 1; |
| 384 | - | |
| 385 | - $query = sprintf('SELECT value FROM %s WHERE name = "databaseVersion"', $default->system_settings_table); | |
| 386 | - $lastVersion = DBUtil::getOneResultKey($query, 'value'); | |
| 387 | - $currentVersion = $default->systemVersion; | |
| 388 | - | |
| 332 | + $table = 'system_settings'; | |
| 333 | + $query = "SELECT value FROM $table WHERE name = 'databaseVersion'"; | |
| 334 | + $result = $this->util->dbUtilities->query($query); | |
| 335 | + $assArr = $this->util->dbUtilities->fetchAssoc($result); | |
| 336 | + $lastVersion = $assArr[0]['value']; | |
| 337 | + $currentVersion = $this->sysVersion; | |
| 389 | 338 | $upgrades = describeUpgrade($lastVersion, $currentVersion); |
| 390 | - | |
| 391 | 339 | $this->temp_variables['upgradeTable'] = ''; |
| 392 | - | |
| 393 | 340 | foreach ($upgrades as $upgrade) { |
| 394 | 341 | if (($row % 2) == 1) { |
| 395 | 342 | $class = "odd"; |
| ... | ... | @@ -403,15 +350,8 @@ class upgradeDatabase extends Step |
| 403 | 350 | $this->temp_variables['upgradeTable'] .= sprintf('<div class="bar">%s</div>', $this->showResult($res)); |
| 404 | 351 | $this->temp_variables['upgradeTable'] .= '<br>' . "\n"; |
| 405 | 352 | $this->temp_variables['upgradeTable'] .= "</div>\n"; |
| 406 | - if (PEAR::isError($res)) { | |
| 407 | - if (!is_a($res, 'Upgrade_Already_Applied')) { | |
| 408 | - break; | |
| 409 | - } else { | |
| 410 | - $res = true; | |
| 411 | - } | |
| 412 | - } | |
| 413 | 353 | if ($res === false) { |
| 414 | - $res = PEAR::raiseError("Upgrade returned false"); | |
| 354 | + $this->error = $this->util->dbUtilities->getErrors(); | |
| 415 | 355 | break; |
| 416 | 356 | } |
| 417 | 357 | } |
| ... | ... | @@ -420,11 +360,8 @@ class upgradeDatabase extends Step |
| 420 | 360 | } |
| 421 | 361 | |
| 422 | 362 | private function showResult($res) { |
| 423 | - if (PEAR::isError($res)) { | |
| 424 | - if (is_a($res, 'Upgrade_Already_Applied')) { | |
| 425 | - return '<span style="color: orange">Already applied</span>'; | |
| 426 | - } | |
| 427 | - return sprintf('<span style="color: red">%s</span>', htmlspecialchars($res->toString())); | |
| 363 | + if ($res && is_a($res, 'Upgrade_Already_Applied')) { | |
| 364 | + return '<span style="color: orange">Already applied</span>'; | |
| 428 | 365 | } |
| 429 | 366 | if ($res === true) { |
| 430 | 367 | return '<span style="color: green">Success</span>'; |
| ... | ... | @@ -434,6 +371,5 @@ class upgradeDatabase extends Step |
| 434 | 371 | } |
| 435 | 372 | return $res; |
| 436 | 373 | } |
| 437 | - | |
| 438 | 374 | } |
| 439 | 375 | ?> |
| 440 | 376 | \ No newline at end of file | ... | ... |
setup/upgrade/steps/upgradeRestore.php
| ... | ... | @@ -40,18 +40,18 @@ |
| 40 | 40 | * @version Version 0.1 |
| 41 | 41 | */ |
| 42 | 42 | |
| 43 | -//require_once('../../config/dmsDefaults.php'); | |
| 44 | - | |
| 45 | 43 | class upgradeRestore extends Step { |
| 46 | 44 | |
| 47 | 45 | |
| 48 | 46 | protected $silent = false; |
| 49 | 47 | protected $temp_variables = array(); |
| 50 | 48 | |
| 51 | - public function doStep() { | |
| 49 | + public function doStep() { | |
| 52 | 50 | $this->temp_variables = array("step_name"=>"restore", "silent"=>$this->silent, |
| 53 | 51 | "loadingText"=>"The database restore is under way. Please wait until it completes"); |
| 54 | 52 | $this->temp_variables['restore'] = false; |
| 53 | + $this->temp_variables['display'] = ''; | |
| 54 | + $this->temp_variables['dir'] = ''; | |
| 55 | 55 | |
| 56 | 56 | if(!$this->inStep("restore")) { |
| 57 | 57 | $this->doRun(); |
| ... | ... | @@ -79,6 +79,8 @@ class upgradeRestore extends Step { |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | 81 | private function doRun($restore = false) { |
| 82 | + $this->readConfig(); | |
| 83 | + | |
| 82 | 84 | if (!$restore) { |
| 83 | 85 | $this->temp_variables['selected'] = false; |
| 84 | 86 | if ($this->select()) { |
| ... | ... | @@ -92,8 +94,6 @@ class upgradeRestore extends Step { |
| 92 | 94 | $this->restoreDatabase(); |
| 93 | 95 | } |
| 94 | 96 | |
| 95 | - $this->storeSilent();// Set silent mode variables | |
| 96 | - | |
| 97 | 97 | return true; |
| 98 | 98 | } |
| 99 | 99 | |
| ... | ... | @@ -101,19 +101,12 @@ class upgradeRestore extends Step { |
| 101 | 101 | return isset($_POST['RestoreSelect']); |
| 102 | 102 | } |
| 103 | 103 | |
| 104 | - /** | |
| 105 | - * Set all silent mode varibles | |
| 106 | - * | |
| 107 | - */ | |
| 108 | - private function storeSilent() { | |
| 109 | - } | |
| 110 | - | |
| 111 | 104 | private function restoreDatabase() |
| 112 | 105 | { |
| 113 | 106 | $this->temp_variables['restore'] = true; |
| 114 | 107 | $status = $_SESSION['backupStatus']; |
| 115 | 108 | $filename = $_SESSION['backupFile']; |
| 116 | - $stmt = $this->util->create_restore_stmt($filename); | |
| 109 | + $stmt = $this->util->create_restore_stmt($filename, $this->dbSettings); | |
| 117 | 110 | $dir = $stmt['dir']; |
| 118 | 111 | |
| 119 | 112 | if (is_file($dir . '/mysql') || is_file($dir . '/mysql.exe')) |
| ... | ... | @@ -219,7 +212,7 @@ class upgradeRestore extends Step { |
| 219 | 212 | |
| 220 | 213 | $status = $_SESSION['backupStatus']; |
| 221 | 214 | $filename = $_SESSION['backupFile']; |
| 222 | - $stmt = $this->util->create_restore_stmt($filename); | |
| 215 | + $stmt = $this->util->create_restore_stmt($filename, $this->dbSettings); | |
| 223 | 216 | |
| 224 | 217 | $this->temp_variables['title'] = 'Confirm Restore'; |
| 225 | 218 | $this->temp_variables['dir'] = $stmt['dir']; |
| ... | ... | @@ -227,6 +220,6 @@ class upgradeRestore extends Step { |
| 227 | 220 | $this->temp_variables['availableBackups'] = true; |
| 228 | 221 | $this->temp_variables['selected'] = true; |
| 229 | 222 | } |
| 230 | - | |
| 223 | + | |
| 231 | 224 | } |
| 232 | 225 | ?> |
| 233 | 226 | \ No newline at end of file | ... | ... |
setup/upgrade/steps/upgradeWelcome.php
| ... | ... | @@ -45,7 +45,8 @@ class upgradeWelcome extends step { |
| 45 | 45 | protected $silent = true; |
| 46 | 46 | protected $temp_variables = array(); |
| 47 | 47 | protected $error = array() ; |
| 48 | - | |
| 48 | + protected $storeInSession = true; | |
| 49 | + | |
| 49 | 50 | public function doStep() { |
| 50 | 51 | $this->temp_variables = array("step_name"=>"welcome"); |
| 51 | 52 | if($this->next()) { |
| ... | ... | @@ -81,15 +82,13 @@ class upgradeWelcome extends step { |
| 81 | 82 | private function checkPassword($username, $password) { |
| 82 | 83 | $dconf = $this->getDataFromPackage('installers', 'database'); // Use info from install |
| 83 | 84 | if($dconf) { |
| 84 | - $this->util->dbUtilities->load($dconf['dhost'], $dbconf['dport'], $dconf['duname'], $dconf['dpassword'], $dconf['dname']); | |
| 85 | + $this->util->dbUtilities->load($dconf['dhost'], $dconf['dport'], $dconf['duname'], $dconf['dpassword'], $dconf['dname']); | |
| 85 | 86 | } else { |
| 86 | 87 | require_once("../wizard/steps/configuration.php"); // configuration to read the ini path |
| 87 | 88 | $wizConfigHandler = new configuration(); |
| 88 | 89 | $configPath = $wizConfigHandler->readConfigPathIni(); |
| 89 | 90 | $this->util->iniUtilities->load($configPath); |
| 90 | 91 | $dconf = $this->util->iniUtilities->getSection('db'); |
| 91 | - if($dconf['dbPort'] == 'default') | |
| 92 | - $dconf['dbPort'] = 3306; | |
| 93 | 92 | $this->util->dbUtilities->load($dconf['dbHost'],$dconf['dbPort'], $dconf['dbUser'], $dconf['dbPass'], $dconf['dbName']); |
| 94 | 93 | $sQuery = "SELECT count(*) AS match_count FROM users WHERE username = '$username' AND password = '".md5($password)."'"; |
| 95 | 94 | $res = $this->util->dbUtilities->query($sQuery); | ... | ... |
setup/upgrade/templates/backup.tpl
| ... | ... | @@ -46,7 +46,7 @@ You can continue to do the backup manually using the following process: |
| 46 | 46 | <P> |
| 47 | 47 | </div> |
| 48 | 48 | </div> |
| 49 | - <?php include 'templates/loading.tpl'; ?> | |
| 49 | + <?php include WIZARD_DIR . 'templates/loading.tpl'; ?> | |
| 50 | 50 | <div id="buttonBar"> |
| 51 | 51 | <input type="submit" name="Previous" value="Previous" class="button_previous"> |
| 52 | 52 | <?php | ... | ... |
setup/upgrade/templates/complete.tpl
| ... | ... | @@ -6,8 +6,8 @@ |
| 6 | 6 | <!-- Services --> |
| 7 | 7 | <br/><br/> |
| 8 | 8 | <div> |
| 9 | - Your database has been upgraded to <?php //echo $default->systemVersion; ?> | |
| 9 | + Your database has been upgraded to <?php echo $sysVersion; ?> | |
| 10 | 10 | </div> |
| 11 | 11 | </div> |
| 12 | - <a href="../../" class="back button_next" style="width:90px;" onclick="javascript:{w.clearSessions();}">Goto Login</a> | |
| 12 | + <a href="../../login.php" class="back button_next" style="width:90px;" onclick="javascript:{w.clearSessions();}">Goto Login</a> | |
| 13 | 13 | </form> |
| 14 | 14 | \ No newline at end of file | ... | ... |
setup/upgrade/templates/database.tpl
| ... | ... | @@ -3,6 +3,13 @@ |
| 3 | 3 | <div id="database" class="step1" style="display:block;"> |
| 4 | 4 | <div class="description"> |
| 5 | 5 | This step performs the necessary Database Upgrades. |
| 6 | + <?php | |
| 7 | + echo "<br/>"; | |
| 8 | + foreach ($errors as $error) { | |
| 9 | + if($error != '') | |
| 10 | + echo "<span class = 'error'>$error</span><br/>"; | |
| 11 | + } | |
| 12 | + ?> | |
| 6 | 13 | </div> |
| 7 | 14 | <div id="step_content_database" class="step"> |
| 8 | 15 | <br/><br/> |
| ... | ... | @@ -13,13 +20,11 @@ |
| 13 | 20 | <?php echo $upgradeTable; ?> |
| 14 | 21 | <?php } |
| 15 | 22 | else if ($action == 'confirm') { |
| 16 | - if (!$backupStatus) { ?> | |
| 23 | + if ($backupStatus) { ?> | |
| 17 | 24 | <p>We are about to start the upgrade process.<P> |
| 18 | 25 | <?php } |
| 19 | 26 | else { ?> |
| 20 | - <br/> | |
| 21 | - <font color="Red">Please ensure that you have made a backup before continuing with the upgrade process.</font> | |
| 22 | - <p> | |
| 27 | + <p><font color="Red">Please ensure that you have made a backup before continuing with the upgrade process.</font><p> | |
| 23 | 28 | <?php } ?> |
| 24 | 29 | <?php } |
| 25 | 30 | else if ($action == 'runUpgrade') { | ... | ... |
setup/upgrade/templates/loading.tpl
setup/upgrade/templates/restore.tpl
| ... | ... | @@ -92,7 +92,7 @@ Press <i>Next</i> to attempt the command(s) above. |
| 92 | 92 | ?> |
| 93 | 93 | </div> |
| 94 | 94 | </div> |
| 95 | - <?php include 'templates/loading.tpl'; ?> | |
| 95 | + <?php include WIZARD_DIR . 'templates/loading.tpl'; ?> | |
| 96 | 96 | <div id="buttonBar"> |
| 97 | 97 | <input type="submit" name="Previous" value="Previous" class="button_previous"> |
| 98 | 98 | <?php if (($dir != '') && ($selected)) { ?> | ... | ... |
setup/upgrade/upgradeSession.php deleted
| 1 | -<?php | |
| 2 | -/** | |
| 3 | -* Session Controller. | |
| 4 | -* | |
| 5 | -* KnowledgeTree Community Edition | |
| 6 | -* Document Management Made Simple | |
| 7 | -* Copyright(C) 2008,2009 KnowledgeTree Inc. | |
| 8 | -* Portions copyright The Jam Warehouse Software(Pty) Limited | |
| 9 | -* | |
| 10 | -* This program is free software; you can redistribute it and/or modify it under | |
| 11 | -* the terms of the GNU General Public License version 3 as published by the | |
| 12 | -* Free Software Foundation. | |
| 13 | -* | |
| 14 | -* This program is distributed in the hope that it will be useful, but WITHOUT | |
| 15 | -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | |
| 16 | -* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more | |
| 17 | -* details. | |
| 18 | -* | |
| 19 | -* You should have received a copy of the GNU General Public License | |
| 20 | -* along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 21 | -* | |
| 22 | -* You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, | |
| 23 | -* California 94120-7775, or email info@knowledgetree.com. | |
| 24 | -* | |
| 25 | -* The interactive user interfaces in modified source and object code versions | |
| 26 | -* of this program must display Appropriate Legal Notices, as required under | |
| 27 | -* Section 5 of the GNU General Public License version 3. | |
| 28 | -* | |
| 29 | -* In accordance with Section 7(b) of the GNU General Public License version 3, | |
| 30 | -* these Appropriate Legal Notices must retain the display of the "Powered by | |
| 31 | -* KnowledgeTree" logo and retain the original copyright notice. If the display of the | |
| 32 | -* logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices | |
| 33 | -* must display the words "Powered by KnowledgeTree" and retain the original | |
| 34 | -* copyright notice. | |
| 35 | -* | |
| 36 | -* @copyright 2008-2009, KnowledgeTree Inc. | |
| 37 | -* @license GNU General Public License version 3 | |
| 38 | -* @author KnowledgeTree Team | |
| 39 | -* @package Upgrader | |
| 40 | -* @version Version 0.1 | |
| 41 | -*/ | |
| 42 | -class UpgradeSession | |
| 43 | -{ | |
| 44 | - private $salt = 'upgrade'; | |
| 45 | - /** | |
| 46 | - * Constructs session object | |
| 47 | - * | |
| 48 | - * @author KnowledgeTree Team | |
| 49 | - * @access public | |
| 50 | - * @param none | |
| 51 | - */ | |
| 52 | - public function __construct() { | |
| 53 | - $this->startSession(); | |
| 54 | - } | |
| 55 | - | |
| 56 | - /** | |
| 57 | - * Starts a session if one does not exist | |
| 58 | - * | |
| 59 | - * @author KnowledgeTree Team | |
| 60 | - * @param none | |
| 61 | - * @access public | |
| 62 | - * @return void | |
| 63 | - */ | |
| 64 | - public function startSession() { | |
| 65 | - if(!isset($_SESSION[$this->salt]['ready'])) { | |
| 66 | - session_start(); | |
| 67 | - $_SESSION[$this->salt] ['ready'] = TRUE; | |
| 68 | - } | |
| 69 | - } | |
| 70 | - | |
| 71 | - /** | |
| 72 | - * Sets a value key pair in session | |
| 73 | - * | |
| 74 | - * @author KnowledgeTree Team | |
| 75 | - * @param string $fld | |
| 76 | - * @param string $val | |
| 77 | - * @access public | |
| 78 | - * @return void | |
| 79 | - */ | |
| 80 | - public function set($fld, $val) { | |
| 81 | - $this->startSession(); | |
| 82 | - $_SESSION[$this->salt] [$fld] = $val; | |
| 83 | - } | |
| 84 | - | |
| 85 | - /** | |
| 86 | - * Sets a value key pair in a class in session | |
| 87 | - * | |
| 88 | - * @author KnowledgeTree Team | |
| 89 | - * @param string $class | |
| 90 | - * @param string $fld | |
| 91 | - * @param string $val | |
| 92 | - * @access public | |
| 93 | - * @return void | |
| 94 | - */ | |
| 95 | - public function setClass($class , $k, $v) { | |
| 96 | - $this->startSession(); | |
| 97 | - $classArray = $this->get($class); | |
| 98 | - if(isset($classArray[$k])) { | |
| 99 | - $classArray[$k] = $v; | |
| 100 | - } else { | |
| 101 | - $classArray[$k] = $v; | |
| 102 | - } | |
| 103 | - $_SESSION[$this->salt] [ $class] = $classArray; | |
| 104 | - } | |
| 105 | - | |
| 106 | - /** | |
| 107 | - * Sets a error value key pair in a class in session | |
| 108 | - * | |
| 109 | - * @author KnowledgeTree Team | |
| 110 | - * @param string $class | |
| 111 | - * @param string $fld | |
| 112 | - * @param string $val | |
| 113 | - * @access public | |
| 114 | - * @return void | |
| 115 | - */ | |
| 116 | - public function setClassError($class, $k, $v) { | |
| 117 | - $this->startSession(); | |
| 118 | - $classArray = $this->get($class); | |
| 119 | - if(isset($classArray[$k])) { | |
| 120 | - $classArray[$k] = $v; | |
| 121 | - } else { | |
| 122 | - $classArray[$k] = $v; | |
| 123 | - } | |
| 124 | - $_SESSION[$this->salt] [ $class] = $classArray; | |
| 125 | - } | |
| 126 | - | |
| 127 | - /** | |
| 128 | - * Clear error values in a class session | |
| 129 | - * | |
| 130 | - * @author KnowledgeTree Team | |
| 131 | - * @param string $class | |
| 132 | - * @param string $fld | |
| 133 | - * @param string $val | |
| 134 | - * @access public | |
| 135 | - * @return void | |
| 136 | - */ | |
| 137 | - public function clearErrors($class) { | |
| 138 | - $classArray = $this->get($class); | |
| 139 | - unset($classArray['errors']); | |
| 140 | - $_SESSION[$this->salt] [ $class] = $classArray; | |
| 141 | - } | |
| 142 | - | |
| 143 | - /** | |
| 144 | - * Unset a value in session | |
| 145 | - * | |
| 146 | - * @author KnowledgeTree Team | |
| 147 | - * @param string $fld | |
| 148 | - * @access public | |
| 149 | - * @return void | |
| 150 | - */ | |
| 151 | - public function un_set($fld) { | |
| 152 | - $this->startSession(); | |
| 153 | - unset($_SESSION[$this->salt] [$fld]); | |
| 154 | - } | |
| 155 | - | |
| 156 | - /** | |
| 157 | - * Unset a class value in session | |
| 158 | - * | |
| 159 | - * @author KnowledgeTree Team | |
| 160 | - * @param string $class | |
| 161 | - * @access public | |
| 162 | - * @return void | |
| 163 | - */ | |
| 164 | - public function un_setClass($class) { | |
| 165 | - $this->startSession(); | |
| 166 | - if(isset($_SESSION[$this->salt] [$class])) | |
| 167 | - unset($_SESSION[$this->salt] [$class]); | |
| 168 | - } | |
| 169 | - | |
| 170 | - /** | |
| 171 | - * Destroy the session | |
| 172 | - * | |
| 173 | - * @author KnowledgeTree Team | |
| 174 | - * @param none | |
| 175 | - * @access public | |
| 176 | - * @return void | |
| 177 | - */ | |
| 178 | - public function destroy() { | |
| 179 | - $this->startSession(); | |
| 180 | - unset($_SESSION[$this->salt]); | |
| 181 | - session_destroy(); | |
| 182 | - } | |
| 183 | - | |
| 184 | - /** | |
| 185 | - * Get a session value | |
| 186 | - * | |
| 187 | - * @author KnowledgeTree Team | |
| 188 | - * @param string $fld | |
| 189 | - * @access public | |
| 190 | - * @return string | |
| 191 | - */ | |
| 192 | - public function get($fld) { | |
| 193 | - $this->startSession(); | |
| 194 | - if(isset($_SESSION[$this->salt] [$fld])) | |
| 195 | - return $_SESSION[$this->salt] [$fld]; | |
| 196 | - return false; | |
| 197 | - } | |
| 198 | - | |
| 199 | - /** | |
| 200 | - * Check if a field exists in session | |
| 201 | - * | |
| 202 | - * @author KnowledgeTree Team | |
| 203 | - * @param string $fld | |
| 204 | - * @access public | |
| 205 | - * @return string | |
| 206 | - */ | |
| 207 | - public function is_set($fld) { | |
| 208 | - $this->startSession(); | |
| 209 | - return isset($_SESSION[$this->salt] [$fld]); | |
| 210 | - } | |
| 211 | - | |
| 212 | - /** | |
| 213 | - * Return a class from session | |
| 214 | - * | |
| 215 | - * @author KnowledgeTree Team | |
| 216 | - * @param string $fld | |
| 217 | - * @access public | |
| 218 | - * @return string | |
| 219 | - */ | |
| 220 | - public function getClass($class) { | |
| 221 | - return $_SESSION[$this->salt][$class]; | |
| 222 | - } | |
| 223 | -} | |
| 224 | -?> | |
| 225 | 0 | \ No newline at end of file |
setup/upgrade/upgradeUtil.php
| ... | ... | @@ -116,35 +116,35 @@ class UpgradeUtil extends InstallUtil { |
| 116 | 116 | return true; |
| 117 | 117 | } |
| 118 | 118 | |
| 119 | - public function create_restore_stmt($targetfile) | |
| 119 | + public function create_restore_stmt($targetfile, $dbConfig) | |
| 120 | 120 | { |
| 121 | - $oKTConfig =& KTConfig::getSingleton(); | |
| 121 | +// $oKTConfig =& KTConfig::getSingleton(); | |
| 122 | 122 | |
| 123 | - $adminUser = $oKTConfig->get('db/dbAdminUser'); | |
| 124 | - $adminPwd = $oKTConfig->get('db/dbAdminPass'); | |
| 125 | - $dbHost = $oKTConfig->get('db/dbHost'); | |
| 126 | - $dbName = $oKTConfig->get('db/dbName'); | |
| 127 | - $dbPort = trim($oKTConfig->get('db/dbPort')); | |
| 123 | + $adminUser = $dbConfig['dbAdminUser']; | |
| 124 | + $adminPwd = $dbConfig['dbAdminPass']; | |
| 125 | + $dbHost = $dbConfig['dbHost']; | |
| 126 | + $dbName = $dbConfig['dbName']; | |
| 127 | + $dbPort = trim($dbConfig['dbPort']); | |
| 128 | 128 | if ($dbPort=='' || $dbPort=='default')$dbPort = get_cfg_var('mysql.default_port'); |
| 129 | 129 | if (empty($dbPort)) $dbPort='3306'; |
| 130 | - $dbSocket = trim($oKTConfig->get('db/dbSocket')); | |
| 130 | + $dbSocket = ''; | |
| 131 | 131 | if (empty($dbSocket) || $dbSocket=='default') $dbSocket = get_cfg_var('mysql.default_socket'); |
| 132 | 132 | if (empty($dbSocket)) $dbSocket='../tmp/mysql.sock'; |
| 133 | 133 | |
| 134 | 134 | $dir = $this->resolveMysqlDir(); |
| 135 | 135 | |
| 136 | - $info['dir']=$dir; | |
| 136 | + $info['dir'] = $dir; | |
| 137 | 137 | |
| 138 | - $prefix=''; | |
| 139 | - if (OS_UNIX) { | |
| 138 | + $prefix = ''; | |
| 139 | + if (!WINDOWS_OS) { | |
| 140 | 140 | $prefix .= "./"; |
| 141 | 141 | } |
| 142 | 142 | |
| 143 | 143 | if (@stat($dbSocket) !== false) { |
| 144 | - $mechanism="--socket=\"$dbSocket\""; | |
| 144 | + $mechanism = "--socket=\"$dbSocket\""; | |
| 145 | 145 | } |
| 146 | 146 | else { |
| 147 | - $mechanism="--port=\"$dbPort\""; | |
| 147 | + $mechanism = "--port=\"$dbPort\""; | |
| 148 | 148 | } |
| 149 | 149 | |
| 150 | 150 | $tmpdir = $this->resolveTempDir(); |
| ... | ... | @@ -152,16 +152,14 @@ class UpgradeUtil extends InstallUtil { |
| 152 | 152 | $stmt = $prefix ."mysqladmin --user=\"$adminUser\" -p $mechanism drop \"$dbName\"<br/>"; |
| 153 | 153 | $stmt .= $prefix ."mysqladmin --user=\"$adminUser\" -p $mechanism create \"$dbName\"<br/>"; |
| 154 | 154 | |
| 155 | - | |
| 156 | 155 | $stmt .= $prefix ."mysql --user=\"$adminUser\" -p $mechanism \"$dbName\" < \"$targetfile\"\n"; |
| 157 | 156 | $info['display']=$stmt; |
| 158 | 157 | |
| 159 | - | |
| 160 | 158 | $stmt = $prefix ."mysqladmin --user=\"$adminUser\" --force --password=\"$adminPwd\" $mechanism drop \"$dbName\"\n"; |
| 161 | 159 | $stmt .= $prefix ."mysqladmin --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism create \"$dbName\"\n"; |
| 162 | 160 | |
| 163 | 161 | $stmt .= $prefix ."mysql --user=\"$adminUser\" --password=\"$adminPwd\" $mechanism \"$dbName\" < \"$targetfile\""; |
| 164 | - $info['cmd']=$stmt; | |
| 162 | + $info['cmd'] = $stmt; | |
| 165 | 163 | return $info; |
| 166 | 164 | } |
| 167 | 165 | |
| ... | ... | @@ -169,7 +167,7 @@ class UpgradeUtil extends InstallUtil { |
| 169 | 167 | { |
| 170 | 168 | // possibly detect existing installations: |
| 171 | 169 | |
| 172 | - if (OS_UNIX) { | |
| 170 | + if (!WINDOWS_OS) { | |
| 173 | 171 | $dirs = array('/opt/mysql/bin','/usr/local/mysql/bin'); |
| 174 | 172 | $mysqlname ='mysql'; |
| 175 | 173 | } |
| ... | ... | @@ -181,8 +179,9 @@ class UpgradeUtil extends InstallUtil { |
| 181 | 179 | $mysqlname ='mysql.exe'; |
| 182 | 180 | } |
| 183 | 181 | |
| 184 | - $oKTConfig =& KTConfig::getSingleton(); | |
| 185 | - $mysqldir = $oKTConfig->get('backup/mysqlDirectory',$mysqldir); | |
| 182 | + // I don't know if this value exists anymore? | |
| 183 | +// $mysqldir = $oKTConfig->get('backup/mysqlDirectory',$mysqldir); | |
| 184 | + $mysqldir = ''; | |
| 186 | 185 | $dirs[] = $mysqldir; |
| 187 | 186 | |
| 188 | 187 | if (strpos(__FILE__,'knowledgeTree') !== false && strpos(__FILE__,'ktdms') != false) { |
| ... | ... | @@ -202,14 +201,16 @@ class UpgradeUtil extends InstallUtil { |
| 202 | 201 | |
| 203 | 202 | public function resolveTempDir() |
| 204 | 203 | { |
| 205 | - if (OS_UNIX) { | |
| 204 | + $dir = ''; | |
| 205 | + if (!WINDOWS_OS) { | |
| 206 | 206 | $dir='/tmp/kt-db-backup'; |
| 207 | 207 | } |
| 208 | 208 | else { |
| 209 | 209 | $dir='c:/kt-db-backup'; |
| 210 | 210 | } |
| 211 | - $oKTConfig =& KTConfig::getSingleton(); | |
| 212 | - $dir = $oKTConfig->get('backup/backupDirectory',$dir); | |
| 211 | + | |
| 212 | +// $oKTConfig =& KTConfig::getSingleton(); | |
| 213 | +// $dir = $oKTConfig->get('backup/backupDirectory',$dir); | |
| 213 | 214 | |
| 214 | 215 | if (!is_dir($dir)) { |
| 215 | 216 | mkdir($dir); | ... | ... |
setup/upgrade/upgradeWizard.php
| ... | ... | @@ -50,8 +50,8 @@ include("../wizard/path.php"); // Paths |
| 50 | 50 | function __autoload($class) { // Attempt and autoload classes |
| 51 | 51 | $class = strtolower(substr($class,0,1)).substr($class,1); // Linux Systems. |
| 52 | 52 | if ($class == "template") { // Load existing templating classes |
| 53 | - require_once("../wizard/template.php"); | |
| 54 | - require_once("../wizard/lib/helpers/htmlHelper.php"); | |
| 53 | + require_once(WIZARD_DIR."../wizard/template.php"); | |
| 54 | + require_once(WIZARD_DIR."../wizard/lib/helpers/htmlHelper.php"); | |
| 55 | 55 | return ; |
| 56 | 56 | } |
| 57 | 57 | if(file_exists(WIZARD_DIR."$class.php")) { | ... | ... |
setup/wizard/dbUtilities.php
| ... | ... | @@ -267,5 +267,15 @@ class dbUtilities { |
| 267 | 267 | public function rollback() { |
| 268 | 268 | $this->query("ROLLBACK"); |
| 269 | 269 | } |
| 270 | + | |
| 271 | + public function runQueries($aQueries) { | |
| 272 | + foreach ($aQueries as $sQuery) { | |
| 273 | + $res = $this->query($sQuery); | |
| 274 | + if (!$res) { | |
| 275 | + return $res; | |
| 276 | + } | |
| 277 | + } | |
| 278 | + return true; | |
| 279 | + } | |
| 270 | 280 | } |
| 271 | 281 | ?> |
| 272 | 282 | \ No newline at end of file | ... | ... |
setup/wizard/iniUtilities.php
| ... | ... | @@ -45,11 +45,11 @@ class iniUtilities { |
| 45 | 45 | |
| 46 | 46 | |
| 47 | 47 | function load($iniFile) { |
| 48 | - if($this->iniFile != $iniFile) { | |
| 49 | - $this->cleanArray = array(); | |
| 50 | - $this->lineNum = 0; | |
| 51 | - $this->exists = ''; | |
| 52 | - } | |
| 48 | +// if($this->iniFile != $iniFile) { | |
| 49 | +// $this->cleanArray = array(); | |
| 50 | +// $this->lineNum = 0; | |
| 51 | +// $this->exists = ''; | |
| 52 | +// } | |
| 53 | 53 | $this->iniFile = $iniFile; |
| 54 | 54 | $this->backupIni($iniFile); |
| 55 | 55 | $this->read($iniFile); | ... | ... |
setup/wizard/lib/services/unixLucene.php
| ... | ... | @@ -201,7 +201,7 @@ class unixLucene extends unixService { |
| 201 | 201 | public function start() { |
| 202 | 202 | $state = $this->status(); |
| 203 | 203 | if($state != 'STARTED') { |
| 204 | - $logFile = $this->outputDir."log".DS."lucene.log"; | |
| 204 | + $logFile = $this->outputDir.DS."lucene.log"; | |
| 205 | 205 | @unlink($logFile); |
| 206 | 206 | $cmd = "cd ".$this->getLuceneDir()."; "; |
| 207 | 207 | $cmd .= "nohup java {$this->getJavaXmx()} {$this->getJavaXmx()} -jar ".$this->getLuceneSource()." > ".$logFile." 2>&1 & echo $!"; | ... | ... |
setup/wizard/lib/services/unixScheduler.php
| ... | ... | @@ -180,7 +180,7 @@ class unixScheduler extends unixService { |
| 180 | 180 | // TODO : Write sh on the fly? Not sure the reasoning here |
| 181 | 181 | $source = $this->getSchedulerSourceLoc(); |
| 182 | 182 | $this->writeSchedulerTask(); |
| 183 | - $logFile = $this->outputDir."log".DS."scheduler.log"; | |
| 183 | + $logFile = $this->outputDir.DS."scheduler.log"; | |
| 184 | 184 | @unlink($logFile); |
| 185 | 185 | if($source) { // Source |
| 186 | 186 | $cmd = "nohup ".$source." > ".$logFile." 2>&1 & echo $!"; | ... | ... |
setup/wizard/resources/graphics/greenit.jpg
0 → 100644
35 KB
setup/wizard/steps/complete.php
| ... | ... | @@ -96,6 +96,7 @@ class complete extends Step { |
| 96 | 96 | foreach ($paths as $path) |
| 97 | 97 | { |
| 98 | 98 | $output = ''; |
| 99 | + $path['path'] = $class = strtolower(substr($path['path'],0,1)).substr($path['path'],1); // Damn you windows | |
| 99 | 100 | $result = $this->util->checkPermission($path['path']); |
| 100 | 101 | $output = sprintf($pathhtml, $result['class'], $path['path'], |
| 101 | 102 | (($result['class'] == 'tick') ? 'class="green"' : 'class="error"' ), | ... | ... |
setup/wizard/steps/configuration.php
| ... | ... | @@ -390,17 +390,25 @@ class configuration extends Step |
| 390 | 390 | */ |
| 391 | 391 | private function getServerInfo() |
| 392 | 392 | { |
| 393 | + $iis = false; | |
| 393 | 394 | $script = $_SERVER['SCRIPT_NAME']; |
| 394 | 395 | $file_system_root = $_SERVER['DOCUMENT_ROOT']; |
| 396 | + if(preg_match('/inetpub/', $file_system_root)) { | |
| 397 | + $iis = true; | |
| 398 | + $file_system_root = $_SERVER['APPL_PHYSICAL_PATH']; | |
| 399 | + } | |
| 395 | 400 | $host = $_SERVER['SERVER_NAME']; |
| 396 | 401 | $port = $_SERVER['SERVER_PORT']; |
| 397 | 402 | $ssl_enabled = isset($_SERVER['HTTPS']) ? (strtolower($_SERVER['HTTPS']) === 'on' ? 'yes' : 'no') : 'no'; |
| 398 | 403 | |
| 399 | 404 | $pos = strpos($script, '/setup/wizard/'); |
| 400 | 405 | $root_url = substr($script, 0, $pos); |
| 401 | - | |
| 402 | 406 | $root_url = (isset($_POST['root_url'])) ? $_POST['root_url'] : $root_url; |
| 403 | - $file_system_root = (isset($_POST['file_system_root'])) ? $_POST['file_system_root'] : $file_system_root.$root_url; | |
| 407 | + if($iis) { | |
| 408 | + $file_system_root = (isset($_POST['file_system_root'])) ? $_POST['file_system_root'] : $file_system_root; | |
| 409 | + } else { | |
| 410 | + $file_system_root = (isset($_POST['file_system_root'])) ? $_POST['file_system_root'] : $file_system_root.$root_url; | |
| 411 | + } | |
| 404 | 412 | $host = (isset($_POST['host'])) ? $_POST['host'] : $host; |
| 405 | 413 | $port = (isset($_POST['port'])) ? $_POST['port'] : $port; |
| 406 | 414 | $ssl_enabled = (isset($_POST['ssl_enabled'])) ? $_POST['ssl_enabled'] : $ssl_enabled; |
| ... | ... | @@ -460,6 +468,7 @@ class configuration extends Step |
| 460 | 468 | if(WINDOWS_OS) |
| 461 | 469 | $path = preg_replace('/\//', '\\',$path); |
| 462 | 470 | $dirs[$key]['path'] = $path; |
| 471 | + $path = $class = strtolower(substr($path,0,1)).substr($path,1); // Damn you windows | |
| 463 | 472 | if(isset($dir['file'])) |
| 464 | 473 | $class = $this->util->checkPermission($path, $dir['create'], true); |
| 465 | 474 | else | ... | ... |
setup/wizard/steps/services.php
| ... | ... | @@ -219,7 +219,7 @@ class services extends Step |
| 219 | 219 | $srv = new $className(); |
| 220 | 220 | $srv->load(); |
| 221 | 221 | $status = $this->serviceInstalled($srv); |
| 222 | - if($status != 'STARTED') { | |
| 222 | + if($status != 'STARTED' || $status != 'STOPPED') { | |
| 223 | 223 | if(!WINDOWS_OS) { $binary = $this->$class->getBinary(); } // Get binary, if it exists |
| 224 | 224 | $passed = $this->$class->binaryChecks(); // Run Binary Pre Checks |
| 225 | 225 | if ($passed) { // Install Service | ... | ... |
setup/wizard/template.php
| ... | ... | @@ -96,6 +96,8 @@ class Template |
| 96 | 96 | public function fetch($file = null) |
| 97 | 97 | { |
| 98 | 98 | if (is_null($file)) $file = $this->file; |
| 99 | + | |
| 100 | + $file = WIZARD_DIR . $file; | |
| 99 | 101 | if (!file_exists($file)) { |
| 100 | 102 | trigger_error('Template file '.$file.' does not exist ', E_USER_ERROR); |
| 101 | 103 | } | ... | ... |
setup/wizard/templates/install.tpl
| ... | ... | @@ -5,10 +5,7 @@ |
| 5 | 5 | <p class="empty_space"> |
| 6 | 6 | We would greatly appreciate it if you would allow us to collect anonymous usage statistics to help us provide a better quality product. The information includes a unique identification number, number of users you have created, your operating system type and your IP address. Your privacy is protected by the <a href="http://www.knowledgetree.com/about/legal" target="_blank">KnowledgeTree Privacy and Data Protection Agreements.</a> |
| 7 | 7 | </p> |
| 8 | - <p class="empty_space""> | |
| 9 | - KnowledgeTree, in partnership with <a href="http://www.trees.co.za/" target="_blank">Food & Trees for Africa</a>, and as a contributor to the National Tree Distribution Program, will also commit to planting one tree in Africa for every 1000 vertified installations of the product. | |
| 10 | - </p> | |
| 11 | - <div class="demo"><?php echo $html->image('img_fatlogo.jpg'); ?></div> | |
| 8 | + <div class="demo"><?php echo $html->image('greenit.jpg'); ?></div> | |
| 12 | 9 | <br/><br/> |
| 13 | 10 | <p> <input class="" type='checkbox' name='call_home' value='enable' checked style="float:left;"/> |
| 14 | 11 | Help to improve KnowledgeTree by providing anonymous usage statistics</p> | ... | ... |
webservice/clienttools/ajaxhandler.php
| ... | ... | @@ -8,6 +8,7 @@ class ajaxHandler{ |
| 8 | 8 | public $kt=NULL; |
| 9 | 9 | public $authenticator=NULL; |
| 10 | 10 | public $noAuthRequireList=array(); |
| 11 | + public $standardServices=array('system'); | |
| 11 | 12 | |
| 12 | 13 | public function __construct(&$ret=NULL,&$kt,$noAuthRequests=''){ |
| 13 | 14 | // set a local copy of the json request wrapper |
| ... | ... | @@ -30,6 +31,7 @@ class ajaxHandler{ |
| 30 | 31 | } |
| 31 | 32 | $this->ret->setRequest($this->req->jsonArray); |
| 32 | 33 | $this->ret->setTitle($this->request['service'].'::'.$this->request['function']); |
| 34 | + $this->ret->setDebug('Server Versions',$this->getServerVersions()); | |
| 33 | 35 | |
| 34 | 36 | if(get_class($kt)=='KTAPI'){ |
| 35 | 37 | $this->kt=&$kt; |
| ... | ... | @@ -38,20 +40,22 @@ class ajaxHandler{ |
| 38 | 40 | return $this->render(); |
| 39 | 41 | } |
| 40 | 42 | |
| 41 | - // Prepar | |
| 42 | - $this->loadService('auth'); | |
| 43 | - $this->authenticator=new auth($this->ret,$this->kt,$this->request,$this->auth); | |
| 44 | - | |
| 45 | - | |
| 46 | - //Make sure a token exists before continuing | |
| 47 | - if(!$this->verifyToken())return $this->render(); | |
| 48 | - | |
| 49 | - | |
| 50 | - if(!$this->verifySession()){ | |
| 51 | - $this->doLogin(); | |
| 52 | - $isAuthRequired=$this->isNoAuthRequiredRequest(); | |
| 53 | - $isAuthenticated=$this->isAuthenticated(); | |
| 54 | - if(!$isAuthRequired && !$isAuthenticated)return $this->render(); | |
| 43 | + // Prepare | |
| 44 | + if(!$this->isStandardService()){ | |
| 45 | + $this->loadService('auth'); | |
| 46 | + $this->authenticator=new auth($this,$this->ret,$this->kt,$this->request,$this->auth); | |
| 47 | + | |
| 48 | + | |
| 49 | + //Make sure a token exists before continuing | |
| 50 | + if(!$this->verifyToken())return $this->render(); | |
| 51 | + | |
| 52 | + | |
| 53 | + if(!$this->verifySession()){ | |
| 54 | + $this->doLogin(); | |
| 55 | + $isAuthRequired=$this->isNoAuthRequiredRequest(); | |
| 56 | + $isAuthenticated=$this->isAuthenticated(); | |
| 57 | + if(!$isAuthRequired && !$isAuthenticated)return $this->render(); | |
| 58 | + } | |
| 55 | 59 | } |
| 56 | 60 | |
| 57 | 61 | $this->dispatch(); |
| ... | ... | @@ -70,11 +74,15 @@ class ajaxHandler{ |
| 70 | 74 | $service=$this->authenticator; |
| 71 | 75 | }else{ |
| 72 | 76 | $this->loadService($request['service']); |
| 73 | - $service=new $request['service']($this->ret,$this->kt,$this->request,$this->auth); | |
| 77 | + if(class_exists($request['service'])){ | |
| 78 | + $service=new $request['service']($this,$this->ret,$this->kt,$this->request,$this->auth); | |
| 79 | + }else{ | |
| 80 | + $this->ret->setDebug('Service could not be loaded',$request['service']); | |
| 81 | + } | |
| 74 | 82 | } |
| 75 | 83 | $this->ret->setdebug('dispatch_request','The service class loaded'); |
| 76 | 84 | if(method_exists($service,$request['function'])){ |
| 77 | - $this->ret->setdebug('dispatch_execution','The service method was found. Executing'); | |
| 85 | + $this->ret->setDebug('dispatch_execution','The service method was found. Executing'); | |
| 78 | 86 | $service->$request['function']($request['parameters']); |
| 79 | 87 | }else{ |
| 80 | 88 | $this->ret->addError("Service {$request['service']} does not contain the method: {$request['function']}"); |
| ... | ... | @@ -82,16 +90,34 @@ class ajaxHandler{ |
| 82 | 90 | } |
| 83 | 91 | } |
| 84 | 92 | |
| 93 | + public function isStandardService(){ | |
| 94 | + return in_array($this->request['service'],$this->standardServices); | |
| 95 | + } | |
| 96 | + | |
| 85 | 97 | |
| 86 | 98 | public function loadService($serviceName=NULL){ |
| 87 | - $version=$this->getVersion(); | |
| 88 | - if(!class_exists($serviceName)){ | |
| 89 | - if(file_exists('services/'.$version.'/'.$serviceName.'.php')){ | |
| 90 | - require_once('services/'.$version.'/'.$serviceName.'.php'); | |
| 91 | - return true; | |
| 92 | - }else{ | |
| 93 | - throw new Exception('Service could not be found: '.$serviceName); | |
| 94 | - return false; | |
| 99 | + if(in_array($serviceName,$this->standardServices)){ | |
| 100 | + $fileName=dirname(__FILE__).'/standardservices/'.$serviceName.'.php'; | |
| 101 | + $this->ret->setDebug('standardService Found',$fileName); | |
| 102 | + if(!class_exists($serviceName)){ | |
| 103 | + if(file_exists($fileName)){ | |
| 104 | + require_once($fileName); | |
| 105 | + return true; | |
| 106 | + }else{ | |
| 107 | + throw new Exception('Standard Service could not be found: '.$serviceName); | |
| 108 | + return false; | |
| 109 | + } | |
| 110 | + } | |
| 111 | + }else{ | |
| 112 | + $version=$this->getVersion(); | |
| 113 | + if(!class_exists($serviceName)){ | |
| 114 | + if(file_exists('services/'.$version.'/'.$serviceName.'.php')){ | |
| 115 | + require_once('services/'.$version.'/'.$serviceName.'.php'); | |
| 116 | + return true; | |
| 117 | + }else{ | |
| 118 | + throw new Exception('Service could not be found: '.$serviceName); | |
| 119 | + return false; | |
| 120 | + } | |
| 95 | 121 | } |
| 96 | 122 | } |
| 97 | 123 | } |
| ... | ... | @@ -106,10 +132,22 @@ class ajaxHandler{ |
| 106 | 132 | return true; |
| 107 | 133 | } |
| 108 | 134 | |
| 109 | - protected function getVersion(){ | |
| 135 | + public function getVersion(){ | |
| 110 | 136 | if(!$this->version)$this->version=$this->req->getVersion(); |
| 111 | 137 | return $this->version; |
| 112 | 138 | } |
| 139 | + | |
| 140 | + public function getServerVersions(){ | |
| 141 | + $folder='services/'; | |
| 142 | + $contents=scandir($folder); | |
| 143 | + $dir=array(); | |
| 144 | + foreach($contents as $item){ | |
| 145 | + if(is_dir($folder.$item) && $item!='.' && $item!=='..'){ | |
| 146 | + $dir[]=$item; | |
| 147 | + } | |
| 148 | + } | |
| 149 | + return $dir; | |
| 150 | + } | |
| 113 | 151 | |
| 114 | 152 | protected function verifySession(){ |
| 115 | 153 | return $this->authenticator->pickup_session(); | ... | ... |
webservice/clienttools/client_service.php
| ... | ... | @@ -5,8 +5,9 @@ class client_service{ |
| 5 | 5 | public $KT; |
| 6 | 6 | public $Request; |
| 7 | 7 | public $AuthInfo; |
| 8 | + public $handler; | |
| 8 | 9 | |
| 9 | - public function __construct(&$ResponseObject,&$KT_Instance,&$Request,&$AuthInfo){ | |
| 10 | + public function __construct(&$handler,&$ResponseObject,&$KT_Instance,&$Request,&$AuthInfo){ | |
| 10 | 11 | // set the response object |
| 11 | 12 | // if(get_class($ResponseObject)=='jsonResponseObject'){ |
| 12 | 13 | // $this->Response=&$ResponseObject; |
| ... | ... | @@ -14,7 +15,7 @@ class client_service{ |
| 14 | 15 | // $this->Response=new jsonResponseObject(); |
| 15 | 16 | // } |
| 16 | 17 | |
| 17 | - | |
| 18 | + $this->handler=$handler; | |
| 18 | 19 | $this->Response=&$ResponseObject; |
| 19 | 20 | $this->KT=&$KT_Instance; |
| 20 | 21 | $this->AuthInfo=&$AuthInfo; | ... | ... |
webservice/clienttools/jsonWrapper.php
| ... | ... | @@ -14,7 +14,7 @@ class jsonResponseObject{ |
| 14 | 14 | public $additional=array(); |
| 15 | 15 | public $isDataSource=false; |
| 16 | 16 | |
| 17 | - public $includeDebug=false; | |
| 17 | + public $includeDebug=true; | |
| 18 | 18 | |
| 19 | 19 | public $response=array( |
| 20 | 20 | 'requestName' =>'', |
| ... | ... | @@ -91,6 +91,7 @@ class jsonWrapper{ |
| 91 | 91 | public $jsonArray=array(); |
| 92 | 92 | |
| 93 | 93 | public function __construct($content=NULL){ |
| 94 | + $content=stripslashes($content); | |
| 94 | 95 | $this->raw=$content; |
| 95 | 96 | $content=@json_decode($content,true); |
| 96 | 97 | if(!is_array($content))throw new jsonContentException('Invalid JSON input',jsonContentException::INPUT_ERROR); | ... | ... |
webservice/clienttools/services/0.1/auth.php
| ... | ... | @@ -100,17 +100,25 @@ class auth extends client_service { |
| 100 | 100 | public function ping(){ |
| 101 | 101 | global $default; |
| 102 | 102 | $user=$this->KT->get_user_object_by_username($this->AuthInfo['user']); |
| 103 | + $versions=$this->handler->getServerVersions(); | |
| 104 | + $bestVer=$versions[count($versions)-1]; | |
| 105 | + $clientVer=$this->handler->getVersion(); | |
| 103 | 106 | $ret=array( |
| 104 | 107 | 'response' =>'pong', |
| 105 | 108 | 'loginLocation' => '/index.html', |
| 106 | - 'currentversion' =>$default->systemVersion, | |
| 107 | - 'requiredversion' =>$default->systemVersion, | |
| 108 | - 'versionok' =>true, | |
| 109 | - 'fullName' =>PEAR::isError($user)?'':$user->getName() | |
| 109 | + 'versionok' =>in_array($clientVer,$versions), | |
| 110 | + 'fullName' =>PEAR::isError($user)?'':$user->getName(), | |
| 111 | + 'serverVersions' =>$versions, | |
| 112 | + 'serverBestVersion' =>$bestVer, | |
| 113 | + 'clientVersion' =>$clientVer, | |
| 114 | + 'canUpgradeClient' =>($clientVer<$bestVer?true:false), | |
| 115 | + 'canUpgradeServer' =>($clientVer>$bestVer?true:false) | |
| 116 | + | |
| 110 | 117 | ); |
| 111 | 118 | $this->setResponse($ret); |
| 112 | 119 | return true; |
| 113 | 120 | } |
| 121 | + | |
| 114 | 122 | |
| 115 | 123 | function logout($params){ |
| 116 | 124 | $params=$this->AuthInfo; | ... | ... |
webservice/clienttools/services/0.2/auth.php
| ... | ... | @@ -100,13 +100,20 @@ class auth extends client_service { |
| 100 | 100 | public function ping(){ |
| 101 | 101 | global $default; |
| 102 | 102 | $user=$this->KT->get_user_object_by_username($this->AuthInfo['user']); |
| 103 | + $versions=$this->handler->getServerVersions(); | |
| 104 | + $bestVer=$versions[count($versions)-1]; | |
| 105 | + $clientVer=$this->handler->getVersion(); | |
| 103 | 106 | $ret=array( |
| 104 | 107 | 'response' =>'pong', |
| 105 | 108 | 'loginLocation' => '/index.html', |
| 106 | - 'currentversion' =>$default->systemVersion, | |
| 107 | - 'requiredversion' =>$default->systemVersion, | |
| 108 | - 'versionok' =>true, | |
| 109 | - 'fullName' =>PEAR::isError($user)?'':$user->getName() | |
| 109 | + 'versionok' =>in_array($clientVer,$versions), | |
| 110 | + 'fullName' =>PEAR::isError($user)?'':$user->getName(), | |
| 111 | + 'serverVersions' =>$versions, | |
| 112 | + 'serverBestVersion' =>$bestVer, | |
| 113 | + 'clientVersion' =>$clientVer, | |
| 114 | + 'canUpgradeClient' =>($clientVer<$bestVer?true:false), | |
| 115 | + 'canUpgradeServer' =>($clientVer>$bestVer?true:false) | |
| 116 | + | |
| 110 | 117 | ); |
| 111 | 118 | $this->setResponse($ret); |
| 112 | 119 | return true; | ... | ... |
webservice/clienttools/services/0.2/kt.php
| ... | ... | @@ -140,6 +140,7 @@ class kt extends client_service { |
| 140 | 140 | |
| 141 | 141 | $folder=&$kt->get_folder_by_id($arr['node']); |
| 142 | 142 | if (PEAR::isError($folder)){ |
| 143 | + echo '<pre>'.print_r($arr,true).'</pre>'; | |
| 143 | 144 | $this->addError('Folder Not found'); |
| 144 | 145 | return false; |
| 145 | 146 | } |
| ... | ... | @@ -430,6 +431,7 @@ class kt extends client_service { |
| 430 | 431 | } |
| 431 | 432 | } |
| 432 | 433 | $this->setResponse(array('items'=>$items, 'count'=>count($items))); |
| 434 | + return true; | |
| 433 | 435 | } |
| 434 | 436 | |
| 435 | 437 | function update_document_type($params) { |
| ... | ... | @@ -599,9 +601,10 @@ class kt extends client_service { |
| 599 | 601 | $filename=$params['filename']; |
| 600 | 602 | $reason=$params['reason']; |
| 601 | 603 | $tempfilename=$params['tempfilename']; |
| 604 | + $major_update=$params['major_update']; | |
| 602 | 605 | $application=$this->AuthInfo['appType']; |
| 603 | 606 | |
| 604 | - $this->addDebug('Checkin',"checkin_document('$session_id',$document_id,'$filename','$reason','$tempfilename', '$application')"); | |
| 607 | + $this->addDebug('Checkin',"checkin_document('$session_id',$document_id,'$filename','$reason','$tempfilename', '$application', $major_update)"); | |
| 605 | 608 | $kt=&$this->KT; |
| 606 | 609 | |
| 607 | 610 | // we need to add some security to ensure that people don't frig the checkin process to access restricted files. |
| ... | ... | @@ -620,7 +623,7 @@ class kt extends client_service { |
| 620 | 623 | } |
| 621 | 624 | |
| 622 | 625 | // checkin |
| 623 | - $result=$document->checkin($filename, $reason, $tempfilename, false); | |
| 626 | + $result=$document->checkin($filename, $reason, $tempfilename, $major_update); | |
| 624 | 627 | if (PEAR::isError($result)) |
| 625 | 628 | { |
| 626 | 629 | $this->setResponse(array('status_code'=>14)); |
| ... | ... | @@ -676,7 +679,7 @@ class kt extends client_service { |
| 676 | 679 | $status_code=$update_result['status_code']; |
| 677 | 680 | if ($status_code != 0) |
| 678 | 681 | { |
| 679 | - $this->delete_document($arr['session_id'], $document_id, 'Rollback because metadata could not be added', $arr['application']); | |
| 682 | + $this->delete_document(array('session_id' => $arr['session_id'], 'document_id' => $document_id, 'reason' => 'Rollback because metadata could not be added', 'application' => $arr['application'])); | |
| 680 | 683 | $this->response= $update_result; |
| 681 | 684 | } |
| 682 | 685 | |
| ... | ... | @@ -824,7 +827,12 @@ class kt extends client_service { |
| 824 | 827 | $this->setResponse($detail); |
| 825 | 828 | } |
| 826 | 829 | |
| 827 | - function delete_document($session_id, $document_id, $reason, $application){ | |
| 830 | + function delete_document($params){ | |
| 831 | + $session_id = $params['session_id']; | |
| 832 | + $document_id = $params['document_id']; | |
| 833 | + $reason = $params['reason']; | |
| 834 | + $application = $params['application']; | |
| 835 | + | |
| 828 | 836 | $kt=&$this->KT; |
| 829 | 837 | |
| 830 | 838 | $document=&$kt->get_document_by_id($document_id); |
| ... | ... | @@ -847,7 +855,7 @@ class kt extends client_service { |
| 847 | 855 | |
| 848 | 856 | |
| 849 | 857 | private function update_document_metadata($session_id, $document_id, $metadata, $application, $sysdata=null){ |
| 850 | - $this->addDebug('','entered update_document_metadata'); | |
| 858 | + $this->addDebug('update_document_metadata','entered update_document_metadata'); | |
| 851 | 859 | $kt=&$this->KT; |
| 852 | 860 | $responseType='kt_document_detail'; |
| 853 | 861 | |
| ... | ... | @@ -915,27 +923,44 @@ class kt extends client_service { |
| 915 | 923 | |
| 916 | 924 | public function update_metadata($arr){ |
| 917 | 925 | $metadata=array(); |
| 918 | - $packed=@json_decode($arr['metadata']); | |
| 926 | + $meta=$arr['metadata']; | |
| 919 | 927 | |
| 920 | 928 | $this->addDebug('','Entered add_document_with_metadata'); |
| 929 | + $this->addDebug('metadata received',$meta); | |
| 921 | 930 | |
| 922 | 931 | $special=array(); |
| 923 | - | |
| 924 | - foreach($packed as $key=>$val) { | |
| 925 | - if(substr($val->name,0,2) != '__') { | |
| 926 | - if(!is_array($metadata[$val->fieldset])) { | |
| 927 | - $metadata[$val->fieldset]['fieldset']=$val->fieldset; | |
| 928 | - $metadata[$val->fieldset]['fields']=array(); | |
| 929 | - } | |
| 930 | - $metadata[$val->fieldset]['fields'][]=array( | |
| 931 | - 'name'=>$val->name, | |
| 932 | - 'value'=>$val->value | |
| 933 | - ); | |
| 932 | +// foreach($apacked as $packed){ | |
| 933 | +// foreach($packed as $key=>$val) { | |
| 934 | +// if(substr($val->name,0,2) != '__') { | |
| 935 | +// if(!is_array($metadata[$val->fieldset])) { | |
| 936 | +// $metadata[$val->fieldset]['fieldset']=$val->fieldset; | |
| 937 | +// $metadata[$val->fieldset]['fields']=array(); | |
| 938 | +// } | |
| 939 | +// $metadata[$val->fieldset]['fields'][]=array( | |
| 940 | +// 'name'=>$val->name, | |
| 941 | +// 'value'=>$val->value | |
| 942 | +// ); | |
| 943 | +// }else{ | |
| 944 | +// $special[$val->name]=$val->value; | |
| 945 | +// } | |
| 946 | +// } | |
| 947 | +// } | |
| 948 | + | |
| 949 | + foreach($meta as $item){ | |
| 950 | + $isSpecial=substr($item['name'],0,2)=='__'; | |
| 951 | + if($isSpecial){ | |
| 952 | + $special[$item['name']]=$item['value']; | |
| 934 | 953 | }else{ |
| 935 | - $special[$val->name]=$val->value; | |
| 936 | - } | |
| 954 | + $fieldSet=$item['fieldset']; | |
| 955 | + unset($item['fieldset']); | |
| 956 | + $metadata[$fieldSet]['fieldset']=$fieldSet; | |
| 957 | + $metadata[$fieldSet]['fields'][]=$item; | |
| 958 | + } | |
| 937 | 959 | } |
| 938 | - | |
| 960 | + | |
| 961 | + | |
| 962 | + $this->addDebug('after processing',array('metadata'=>$metadata,'special'=>$special)); | |
| 963 | + | |
| 939 | 964 | $document_id=$arr['document_id']; |
| 940 | 965 | |
| 941 | 966 | $update_result=$this->update_document_metadata($arr['session_id'], $document_id, $metadata, $arr['application'], array()); | ... | ... |
webservice/clienttools/standardservices/system.php
0 → 100644
| 1 | +<?php | |
| 2 | +class system extends client_service{ | |
| 3 | + public function checkVersion(){ | |
| 4 | + global $default; | |
| 5 | + $user=$this->KT->get_user_object_by_username($this->AuthInfo['user']); | |
| 6 | + $versions=$this->handler->getServerVersions(); | |
| 7 | + $bestVer=$versions[count($versions)-1]; | |
| 8 | + $clientVer=$this->handler->getVersion(); | |
| 9 | + $ret=array( | |
| 10 | + 'response' =>'pong', | |
| 11 | + 'loginLocation' => '/index.html', | |
| 12 | + 'versionok' =>in_array($clientVer,$versions), | |
| 13 | + 'fullName' =>PEAR::isError($user)?'':$user->getName(), | |
| 14 | + 'serverVersions' =>$versions, | |
| 15 | + 'serverBestVersion' =>$bestVer, | |
| 16 | + 'clientVersion' =>$clientVer, | |
| 17 | + 'canUpgradeClient' =>($clientVer<$bestVer?true:false), | |
| 18 | + 'canUpgradeServer' =>($clientVer>$bestVer?true:false) | |
| 19 | + | |
| 20 | + ); | |
| 21 | + $this->setResponse($ret); | |
| 22 | + return true; | |
| 23 | + } | |
| 24 | + | |
| 25 | + public function jsondecode($params){ | |
| 26 | + $this->setResponse(@json_decode(trim($params['code']))); | |
| 27 | + } | |
| 28 | +} | |
| 29 | + | |
| 30 | +?> | |
| 0 | 31 | \ No newline at end of file | ... | ... |