Commit 7f9d4e30d9d2d6bb5678fb5ae61ac2d8a61da5ca
1 parent
cb720337
StoryId778896:Cleanup Installer Framework
Committed by: Jarrett Jordaan Reviewed by: Megan Watson
Showing
5 changed files
with
0 additions
and
801 deletions
setup/wizard/Ini.inc deleted
| 1 | -<?php | |
| 2 | -/** | |
| 3 | - * $Id:$ | |
| 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 | - * Contributor( s): ______________________________________ | |
| 36 | - * | |
| 37 | - */ | |
| 38 | - | |
| 39 | -class Ini { | |
| 40 | - | |
| 41 | - private $cleanArray = array(); | |
| 42 | - private $iniFile = ''; | |
| 43 | - private $lineNum = 0; | |
| 44 | - private $exists = ''; | |
| 45 | - | |
| 46 | - function Ini($iniFile = '../../config.ini') { | |
| 47 | - $this->iniFile = $iniFile; | |
| 48 | - $this->backupIni($iniFile); | |
| 49 | - $this->read($iniFile); | |
| 50 | - } | |
| 51 | - | |
| 52 | - /** | |
| 53 | - * Create a backup with the date as an extension in the same location as the original config.ini | |
| 54 | - * | |
| 55 | - * @param string $iniFile | |
| 56 | - * @return boolean | |
| 57 | - */ | |
| 58 | - function backupIni($iniFile) | |
| 59 | - { | |
| 60 | - $content = file_get_contents($iniFile); | |
| 61 | - if ($content === false) | |
| 62 | - { | |
| 63 | - return false; | |
| 64 | - } | |
| 65 | - $date = date('YmdHis'); | |
| 66 | - | |
| 67 | - $backupFile = $iniFile . '.' .$date; | |
| 68 | - if (is_writeable($backupFile)) { | |
| 69 | - file_put_contents($backupFile, $content); | |
| 70 | - } | |
| 71 | - } | |
| 72 | - | |
| 73 | - function read($iniFile) { | |
| 74 | - | |
| 75 | - $iniArray = file($iniFile); | |
| 76 | - $section = ''; | |
| 77 | - foreach($iniArray as $iniLine) { | |
| 78 | - $this->lineNum++; | |
| 79 | - $iniLine = trim($iniLine); | |
| 80 | - $firstChar = substr($iniLine, 0, 1); | |
| 81 | - if($firstChar == ';') { | |
| 82 | - if($section == ''){ | |
| 83 | - $this->cleanArray['_comment_'.$this->lineNum]=$iniLine; | |
| 84 | - }else { | |
| 85 | - $this->cleanArray[$section]['_comment_'.$this->lineNum]=$iniLine; | |
| 86 | - } | |
| 87 | - continue; | |
| 88 | - } | |
| 89 | - if($iniLine == '') { | |
| 90 | - if($section == ''){ | |
| 91 | - $this->cleanArray['_blankline_'.$this->lineNum]=''; | |
| 92 | - }else { | |
| 93 | - $this->cleanArray[$section]['_blankline_'.$this->lineNum]=''; | |
| 94 | - } | |
| 95 | - continue; | |
| 96 | - } | |
| 97 | - | |
| 98 | - if ($firstChar == '[' && substr($iniLine, -1, 1) == ']') { | |
| 99 | - $section = substr($iniLine, 1, -1); | |
| 100 | - $this->sections[] = $section; | |
| 101 | - } else { | |
| 102 | - $equalsPos = strpos($iniLine, '='); | |
| 103 | - if ($equalsPos > 0 && $equalsPos != sizeof($iniLine)) { | |
| 104 | - $key = trim(substr($iniLine, 0, $equalsPos)); | |
| 105 | - $value = trim(substr($iniLine, $equalsPos+1)); | |
| 106 | - if (substr($value, 1, 1) == '"' && substr( $value, -1, 1) == '"') { | |
| 107 | - $value = substr($value, 1, -1); | |
| 108 | - } | |
| 109 | - $this->cleanArray[$section][$key] = stripcslashes($value); | |
| 110 | - } else { | |
| 111 | - $this->cleanArray[$section][trim($iniLine)]=''; | |
| 112 | - } | |
| 113 | - } | |
| 114 | - } | |
| 115 | - return $this->cleanArray; | |
| 116 | - } | |
| 117 | - | |
| 118 | - function write($iniFile = "") { | |
| 119 | - | |
| 120 | - if(empty($iniFile)) { | |
| 121 | - $iniFile = $this->iniFile; | |
| 122 | - } | |
| 123 | - if (!is_writeable($iniFile)) { | |
| 124 | - return; | |
| 125 | - } | |
| 126 | - | |
| 127 | - $fileHandle = fopen($iniFile, 'wb'); | |
| 128 | - foreach ($this->cleanArray as $section => $items) { | |
| 129 | - if (substr($section, 0, strlen('_blankline_')) === '_blankline_' ) { | |
| 130 | - fwrite ($fileHandle, "\r\n"); | |
| 131 | - continue; | |
| 132 | - } | |
| 133 | - if (substr($section, 0, strlen('_comment_')) === '_comment_' ) { | |
| 134 | - fwrite ($fileHandle, "$items\r\n"); | |
| 135 | - continue; | |
| 136 | - } | |
| 137 | - fwrite ($fileHandle, "[".$section."]\r\n"); | |
| 138 | - foreach ($items as $key => $value) { | |
| 139 | - if (substr($key, 0, strlen('_blankline_')) === '_blankline_' ) { | |
| 140 | - fwrite ($fileHandle, "\r\n"); | |
| 141 | - continue; | |
| 142 | - } | |
| 143 | - if (substr($key, 0, strlen('_comment_')) === '_comment_' ) { | |
| 144 | - fwrite ($fileHandle, "$value\r\n"); | |
| 145 | - continue; | |
| 146 | - } | |
| 147 | - | |
| 148 | - $value = addcslashes($value,''); | |
| 149 | - //fwrite ($fileHandle, $key.' = "'.$value."\"\r\n"); | |
| 150 | - fwrite ($fileHandle, $key.' = '.$value."\r\n"); | |
| 151 | - } | |
| 152 | - } | |
| 153 | - fclose($fileHandle); | |
| 154 | - } | |
| 155 | - | |
| 156 | - function itemExists($checkSection, $checkItem) { | |
| 157 | - | |
| 158 | - $this->exists = ''; | |
| 159 | - foreach($this->cleanArray as $section => $items) { | |
| 160 | - if($section == $checkSection) { | |
| 161 | - $this->exists = 'section'; | |
| 162 | - foreach ($items as $key => $value) { | |
| 163 | - if($key == $checkItem) { | |
| 164 | - return true; | |
| 165 | - } | |
| 166 | - } | |
| 167 | - } | |
| 168 | - } | |
| 169 | - return false; | |
| 170 | - } | |
| 171 | - | |
| 172 | - function addItem($addSection, $addItem, $value, $itemComment = '', $sectionComment = '') { | |
| 173 | - | |
| 174 | - if($this->itemExists($addSection, $addItem)) { | |
| 175 | - $this->delItem($addSection, $addItem); | |
| 176 | - } | |
| 177 | - | |
| 178 | - if($this->exists != 'section') { | |
| 179 | - $this->cleanArray['_blankline_'.$this->lineNum++]=''; | |
| 180 | - if(!empty($sectionComment)) $this->cleanArray['_comment_'.$this->lineNum++] = '; '.$sectionComment; | |
| 181 | - } | |
| 182 | - if(!empty($itemComment)) { | |
| 183 | - $this->cleanArray[$addSection]['_comment_'.$this->lineNum++] = '; '.$itemComment; | |
| 184 | - } | |
| 185 | - $this->cleanArray[$addSection][$addItem] = stripcslashes($value); | |
| 186 | - return true; | |
| 187 | - } | |
| 188 | - | |
| 189 | - function updateItem($addSection, $addItem, $value) { | |
| 190 | - | |
| 191 | - $this->cleanArray[$addSection][$addItem] = stripcslashes($value); | |
| 192 | - return true; | |
| 193 | - } | |
| 194 | - | |
| 195 | - function delItem($delSection, $delItem) { | |
| 196 | - | |
| 197 | - if(!$this->itemExists($delSection, $delItem)) return false; | |
| 198 | - | |
| 199 | - unset($this->cleanArray[$delSection][$delItem]); | |
| 200 | - return true; | |
| 201 | - } | |
| 202 | - | |
| 203 | - function delSection($delSection) { | |
| 204 | - | |
| 205 | - unset($this->cleanArray[$delSection]); | |
| 206 | - return true; | |
| 207 | - } | |
| 208 | - | |
| 209 | -} | |
| 210 | -/* | |
| 211 | -// USAGE EXAMPLE | |
| 212 | - | |
| 213 | -if(file_exists('../../config.ini')) { | |
| 214 | - | |
| 215 | - $ini = new Ini(); | |
| 216 | - $ini->addItem('Section1', 'NewItem1', 'Some Text1', 'Item1 Comment', 'Section1 Comment'); | |
| 217 | - $ini->addItem('Section1', 'NewItem1.2', 'Some Text1.2', 'Item1.2 Comment'); | |
| 218 | - $ini->addItem('Section1', 'NewItem1.3', 'Some Text1.3', 'Item1.3 Comment'); | |
| 219 | - $ini->addItem('Section1', 'NewItem1.4', 'Some Text1.4', 'Item1.4 Comment'); | |
| 220 | - $ini->addItem('Section2', 'NewItem2', 'Some Text2', 'Item2 Comment'); | |
| 221 | - $ini->addItem('Section2', 'NewItem2.1', 'Some Text2.1'); | |
| 222 | - $ini->addItem('Section3', 'NewItem3', 'Some Text3', 'Item3 Comment', 'Section3 Comment'); | |
| 223 | - $ini->addItem('Section4', 'NewItem4', 'Some Text4', 'Item4 Comment'); | |
| 224 | - $ini->write(); | |
| 225 | - | |
| 226 | -} | |
| 227 | -*/ | |
| 228 | -?> |
setup/wizard/database.inc deleted
| 1 | -<?php | |
| 2 | -/** | |
| 3 | -* Installer Database Control. | |
| 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 Installer | |
| 40 | -* @version Version 0.1 | |
| 41 | -*/ | |
| 42 | -class DBUtil { | |
| 43 | - /** | |
| 44 | - * Host | |
| 45 | - * | |
| 46 | - * @author KnowledgeTree Team | |
| 47 | - * @access protected | |
| 48 | - * @var string | |
| 49 | - */ | |
| 50 | - protected $dbhost = ''; | |
| 51 | - | |
| 52 | - /** | |
| 53 | - * Host | |
| 54 | - * | |
| 55 | - * @author KnowledgeTree Team | |
| 56 | - * @access protected | |
| 57 | - * @var string | |
| 58 | - */ | |
| 59 | - protected $dbname = ''; | |
| 60 | - | |
| 61 | - /** | |
| 62 | - * Host | |
| 63 | - * | |
| 64 | - * @author KnowledgeTree Team | |
| 65 | - * @access protected | |
| 66 | - * @var string | |
| 67 | - */ | |
| 68 | - protected $dbuname = ''; | |
| 69 | - | |
| 70 | - /** | |
| 71 | - * Host | |
| 72 | - * | |
| 73 | - * @author KnowledgeTree Team | |
| 74 | - * @access protected | |
| 75 | - * @var string | |
| 76 | - */ | |
| 77 | - protected $dbpassword = ''; | |
| 78 | - | |
| 79 | - /** | |
| 80 | - * Host | |
| 81 | - * | |
| 82 | - * @author KnowledgeTree Team | |
| 83 | - * @access protected | |
| 84 | - * @var object mysql connection | |
| 85 | - */ | |
| 86 | - protected $dbconnection = ''; | |
| 87 | - | |
| 88 | - /** | |
| 89 | - * Any errors encountered | |
| 90 | - * | |
| 91 | - * @author KnowledgeTree Team | |
| 92 | - * @access protected | |
| 93 | - * @var string | |
| 94 | - */ | |
| 95 | - protected $error = ''; | |
| 96 | - | |
| 97 | - /** | |
| 98 | - * Constructs database connection object | |
| 99 | - * | |
| 100 | - * @author KnowledgeTree Team | |
| 101 | - * @access public | |
| 102 | - */ | |
| 103 | - public function __construct() { | |
| 104 | - } | |
| 105 | - | |
| 106 | - /** | |
| 107 | - * Connect to a MySQL database | |
| 108 | - * | |
| 109 | - * @param string $dhost host | |
| 110 | - * @param string $duname database username | |
| 111 | - * @param string $dpassword database password | |
| 112 | - * @access public | |
| 113 | - * @return boolean | |
| 114 | - */ | |
| 115 | - public function DBUtil($dhost = 'localhost', $duname, $dpassword, $dbname = '') { | |
| 116 | - $this->dbhost = $dhost; | |
| 117 | - $this->dbuname = $duname; | |
| 118 | - $this->dbpassword = $dpassword; | |
| 119 | - $this->dbconnection = mysql_connect($dhost, $duname, $dpassword); | |
| 120 | - if($dbname != '') { | |
| 121 | - $this->setDb($dbname); | |
| 122 | - $this->useBD($dbname); | |
| 123 | - } | |
| 124 | - if($this->dbconnection) | |
| 125 | - return $this->dbconnection; | |
| 126 | - else { | |
| 127 | - $this->error = mysql_error(); | |
| 128 | - return false; | |
| 129 | - } | |
| 130 | - } | |
| 131 | - | |
| 132 | - /** | |
| 133 | - * Choose a database to use | |
| 134 | - * | |
| 135 | - * @param string $dbname name of the database | |
| 136 | - * @access public | |
| 137 | - * @return boolean | |
| 138 | - */ | |
| 139 | - public function useBD($dbname) { | |
| 140 | - if($dbname != '') { | |
| 141 | - $this->setDb($dbname); | |
| 142 | - } | |
| 143 | - | |
| 144 | - if(mysql_select_db($this->dbname)) | |
| 145 | - return true; | |
| 146 | - else { | |
| 147 | - $this->error = mysql_error(); | |
| 148 | - return false; | |
| 149 | - } | |
| 150 | - } | |
| 151 | - | |
| 152 | - public function setDb($dbname) { | |
| 153 | - $this->dbname = $dbname; | |
| 154 | - } | |
| 155 | - | |
| 156 | - /** | |
| 157 | - * Query the database. | |
| 158 | - * | |
| 159 | - * @param $query the sql query. | |
| 160 | - * @access public | |
| 161 | - * @return object The result of the query. | |
| 162 | - */ | |
| 163 | - public function query($query) | |
| 164 | - { | |
| 165 | - $result = mysql_query($query); | |
| 166 | - if($result) { | |
| 167 | - return $result; | |
| 168 | - } else { | |
| 169 | - $this->error = mysql_error(); | |
| 170 | - return false; | |
| 171 | - } | |
| 172 | - } | |
| 173 | - | |
| 174 | - /** | |
| 175 | - * Do the same as query. | |
| 176 | - * | |
| 177 | - * @param $query the sql query. | |
| 178 | - * @access public | |
| 179 | - * @return boolean | |
| 180 | - */ | |
| 181 | - public function execute($query) { | |
| 182 | - $result = mysql_query($query); | |
| 183 | - if($result) { | |
| 184 | - return true; | |
| 185 | - } else { | |
| 186 | - $this->error = mysql_error(); | |
| 187 | - return false; | |
| 188 | - } | |
| 189 | - } | |
| 190 | - | |
| 191 | - /** | |
| 192 | - * Convenience method for mysql_fetch_object(). | |
| 193 | - * | |
| 194 | - * @param $result The resource returned by query(). | |
| 195 | - * @access public | |
| 196 | - * @return object An object representing a data row. | |
| 197 | - */ | |
| 198 | - public function fetchNextObject($result = NULL) { | |
| 199 | - if ($result == NULL || mysql_num_rows($result) < 1) | |
| 200 | - return NULL; | |
| 201 | - else | |
| 202 | - return mysql_fetch_object($result); | |
| 203 | - } | |
| 204 | - | |
| 205 | - /** | |
| 206 | - * Convenience method for mysql_fetch_assoc(). | |
| 207 | - * | |
| 208 | - * @param $result The resource returned by query(). | |
| 209 | - * @access public | |
| 210 | - * @return array Returns an associative array of strings. | |
| 211 | - */ | |
| 212 | - public function fetchAssoc($result = NULL) { | |
| 213 | - $r = array(); | |
| 214 | - if ($result == NULL || mysql_num_rows($result) < 1) | |
| 215 | - return NULL; | |
| 216 | - else { | |
| 217 | - while ($row = mysql_fetch_assoc($result)) { | |
| 218 | - $r[] = $row; | |
| 219 | - } | |
| 220 | - return $r; | |
| 221 | - } | |
| 222 | - } | |
| 223 | - | |
| 224 | - /** | |
| 225 | - * Close the connection with the database server. | |
| 226 | - * | |
| 227 | - * @param none. | |
| 228 | - * @access public | |
| 229 | - * @return void. | |
| 230 | - */ | |
| 231 | - public function close() { | |
| 232 | - mysql_close(); | |
| 233 | - } | |
| 234 | - | |
| 235 | - /** | |
| 236 | - * Get database errors. | |
| 237 | - * | |
| 238 | - * @param none. | |
| 239 | - * @access public | |
| 240 | - * @return string. | |
| 241 | - */ | |
| 242 | - public function getErrors() { | |
| 243 | - return $this->error; | |
| 244 | - } | |
| 245 | -} | |
| 246 | -?> | |
| 247 | 0 | \ No newline at end of file |
setup/wizard/install_util.php deleted
| 1 | -<?php | |
| 2 | -/** | |
| 3 | -* Configuration Step 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 Installer | |
| 40 | -* @version Version 0.1 | |
| 41 | -*/ | |
| 42 | -class InstallUtil { | |
| 43 | - /** | |
| 44 | - * Constructs installation object | |
| 45 | - * | |
| 46 | - * @author KnowledgeTree Team | |
| 47 | - * @access public | |
| 48 | - */ | |
| 49 | - public function __construct() { | |
| 50 | - } | |
| 51 | - | |
| 52 | - /** | |
| 53 | - * Check if system needs to be installed | |
| 54 | - * | |
| 55 | - * @author KnowledgeTree Team | |
| 56 | - * @access public | |
| 57 | - * @param none | |
| 58 | - * @return boolean | |
| 59 | - */ | |
| 60 | - public function isSystemInstalled() { | |
| 61 | - if (file_exists(dirname(__FILE__)."/install")) { | |
| 62 | - return false; | |
| 63 | - } | |
| 64 | - return true; | |
| 65 | - } | |
| 66 | - | |
| 67 | - /** | |
| 68 | - * Check if system needs to be installed | |
| 69 | - * | |
| 70 | - * @author KnowledgeTree Team | |
| 71 | - * @access public | |
| 72 | - * @param none | |
| 73 | - * @return mixed | |
| 74 | - */ | |
| 75 | - public function checkStructurePermissions() { | |
| 76 | - // Check if Wizard Directory is writable | |
| 77 | - if(!$this->_checkPermission(WIZARD_DIR)) { | |
| 78 | - return 'wizard'; | |
| 79 | - } | |
| 80 | - if(!$this->_checkPermission(CONF_DIR)) { | |
| 81 | - return 'wizard'; | |
| 82 | - } | |
| 83 | - if(!$this->_checkPermission(SQL_DIR)) { | |
| 84 | - return 'wizard'; | |
| 85 | - } | |
| 86 | - if(!$this->_checkPermission(RES_DIR)) { | |
| 87 | - return 'wizard'; | |
| 88 | - } | |
| 89 | - if(!$this->_checkPermission(STEP_DIR)) { | |
| 90 | - return 'wizard'; | |
| 91 | - } | |
| 92 | - if(!$this->_checkPermission(TEMP_DIR)) { | |
| 93 | - return 'wizard'; | |
| 94 | - } | |
| 95 | - | |
| 96 | - return true; | |
| 97 | - } | |
| 98 | - | |
| 99 | - /** | |
| 100 | - * Redirect | |
| 101 | - * | |
| 102 | - * This function redirects the client. This is done by issuing | |
| 103 | - * a "Location" header and exiting if wanted. If you set $rfc2616 to true | |
| 104 | - * HTTP will output a hypertext note with the location of the redirect. | |
| 105 | - * | |
| 106 | - * @static | |
| 107 | - * @access public | |
| 108 | - * have already been sent. | |
| 109 | - * @param string $url URL where the redirect should go to. | |
| 110 | - * @param bool $exit Whether to exit immediately after redirection. | |
| 111 | - * @param bool $rfc2616 Wheter to output a hypertext note where we're | |
| 112 | - * redirecting to (Redirecting to <a href="...">...</a>.) | |
| 113 | - * @return mixed Returns true on succes (or exits) or false if headers | |
| 114 | - */ | |
| 115 | - public function redirect($url, $exit = true, $rfc2616 = false) | |
| 116 | - { | |
| 117 | - if (headers_sent()) { | |
| 118 | - return false; | |
| 119 | - } | |
| 120 | - | |
| 121 | - $url = $this->absoluteURI($url); | |
| 122 | - header('Location: '. $url); | |
| 123 | - | |
| 124 | - if ( $rfc2616 && isset($_SERVER['REQUEST_METHOD']) && | |
| 125 | - $_SERVER['REQUEST_METHOD'] != 'HEAD') { | |
| 126 | - printf('Redirecting to: <a href="%s">%s</a>.', $url, $url); | |
| 127 | - } | |
| 128 | - if ($exit) { | |
| 129 | - exit; | |
| 130 | - } | |
| 131 | - return true; | |
| 132 | - } | |
| 133 | - | |
| 134 | - /** | |
| 135 | - * Absolute URI | |
| 136 | - * | |
| 137 | - * This function returns the absolute URI for the partial URL passed. | |
| 138 | - * The current scheme (HTTP/HTTPS), host server, port, current script | |
| 139 | - * location are used if necessary to resolve any relative URLs. | |
| 140 | - * | |
| 141 | - * Offsets potentially created by PATH_INFO are taken care of to resolve | |
| 142 | - * relative URLs to the current script. | |
| 143 | - * | |
| 144 | - * You can choose a new protocol while resolving the URI. This is | |
| 145 | - * particularly useful when redirecting a web browser using relative URIs | |
| 146 | - * and to switch from HTTP to HTTPS, or vice-versa, at the same time. | |
| 147 | - * | |
| 148 | - * @author Philippe Jausions <Philippe.Jausions@11abacus.com> | |
| 149 | - * @static | |
| 150 | - * @access public | |
| 151 | - * @param string $url Absolute or relative URI the redirect should go to. | |
| 152 | - * @param string $protocol Protocol to use when redirecting URIs. | |
| 153 | - * @param integer $port A new port number. | |
| 154 | - * @return string The absolute URI. | |
| 155 | - */ | |
| 156 | - public function absoluteURI($url = null, $protocol = null, $port = null) | |
| 157 | - { | |
| 158 | - // filter CR/LF | |
| 159 | - $url = str_replace(array("\r", "\n"), ' ', $url); | |
| 160 | - | |
| 161 | - // Mess around with already absolute URIs | |
| 162 | - if (preg_match('!^([a-z0-9]+)://!i', $url)) { | |
| 163 | - if (empty($protocol) && empty($port)) { | |
| 164 | - return $url; | |
| 165 | - } | |
| 166 | - if (!empty($protocol)) { | |
| 167 | - $url = $protocol .':'. end($array = explode(':', $url, 2)); | |
| 168 | - } | |
| 169 | - if (!empty($port)) { | |
| 170 | - $url = preg_replace('!^(([a-z0-9]+)://[^/:]+)(:[\d]+)?!i', | |
| 171 | - '\1:'. $port, $url); | |
| 172 | - } | |
| 173 | - return $url; | |
| 174 | - } | |
| 175 | - | |
| 176 | - $host = 'localhost'; | |
| 177 | - if (!empty($_SERVER['HTTP_HOST'])) { | |
| 178 | - list($host) = explode(':', $_SERVER['HTTP_HOST']); | |
| 179 | - } elseif (!empty($_SERVER['SERVER_NAME'])) { | |
| 180 | - list($host) = explode(':', $_SERVER['SERVER_NAME']); | |
| 181 | - } | |
| 182 | - | |
| 183 | - if (empty($protocol)) { | |
| 184 | - if (isset($_SERVER['HTTPS']) && !strcasecmp($_SERVER['HTTPS'], 'on')) { | |
| 185 | - $protocol = 'https'; | |
| 186 | - } else { | |
| 187 | - $protocol = 'http'; | |
| 188 | - } | |
| 189 | - if (!isset($port) || $port != intval($port)) { | |
| 190 | - $port = isset($_SERVER['SERVER_PORT']) ? $_SERVER['SERVER_PORT'] : 80; | |
| 191 | - } | |
| 192 | - } | |
| 193 | - | |
| 194 | - if ($protocol == 'http' && $port == 80) { | |
| 195 | - unset($port); | |
| 196 | - } | |
| 197 | - if ($protocol == 'https' && $port == 443) { | |
| 198 | - unset($port); | |
| 199 | - } | |
| 200 | - | |
| 201 | - $server = $protocol .'://'. $host . (isset($port) ? ':'. $port : ''); | |
| 202 | - | |
| 203 | - if (!strlen($url)) { | |
| 204 | - $url = isset($_SERVER['REQUEST_URI']) ? | |
| 205 | - $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF']; | |
| 206 | - } | |
| 207 | - | |
| 208 | - if ($url{0} == '/') { | |
| 209 | - return $server . $url; | |
| 210 | - } | |
| 211 | - | |
| 212 | - // Check for PATH_INFO | |
| 213 | - if (isset($_SERVER['PATH_INFO']) && strlen($_SERVER['PATH_INFO']) && | |
| 214 | - $_SERVER['PHP_SELF'] != $_SERVER['PATH_INFO']) { | |
| 215 | - $path = dirname(substr($_SERVER['PHP_SELF'], 0, -strlen($_SERVER['PATH_INFO']))); | |
| 216 | - } else { | |
| 217 | - $path = dirname($_SERVER['PHP_SELF']); | |
| 218 | - } | |
| 219 | - | |
| 220 | - if (substr($path = strtr($path, '\\', '/'), -1) != '/') { | |
| 221 | - $path .= '/'; | |
| 222 | - } | |
| 223 | - | |
| 224 | - return $server . $path . $url; | |
| 225 | - } | |
| 226 | - | |
| 227 | - /** | |
| 228 | - * Check whether a given directory / file path exists and is writable | |
| 229 | - * | |
| 230 | - * @author KnowledgeTree Team | |
| 231 | - * @access private | |
| 232 | - * @param string $dir The directory / file to check | |
| 233 | - * @param boolean $create Whether to create the directory if it doesn't exist | |
| 234 | - * @return array The message and css class to use | |
| 235 | - */ | |
| 236 | - private function _checkPermission($dir) | |
| 237 | - { | |
| 238 | - if(is_writable($dir)){ | |
| 239 | - return true; | |
| 240 | - } else { | |
| 241 | - return false; | |
| 242 | - } | |
| 243 | - | |
| 244 | - } | |
| 245 | - | |
| 246 | - /** | |
| 247 | - * Change permissions on a directory helper | |
| 248 | - * | |
| 249 | - * @author KnowledgeTree Team | |
| 250 | - * @access public | |
| 251 | - * @param string $folderPath The directory / file to check | |
| 252 | - * @return boolean | |
| 253 | - */ | |
| 254 | - public function canChangePermissions($folderPath) { | |
| 255 | - return $this->_chmodRecursive($folderPath, 0755); | |
| 256 | - } | |
| 257 | - | |
| 258 | - /** | |
| 259 | - * Change permissions on a directory (recursive) | |
| 260 | - * | |
| 261 | - * @author KnowledgeTree Team | |
| 262 | - * @access private | |
| 263 | - * @param string $folderPath The directory / file to check | |
| 264 | - * @param boolean $create Whether to create the directory if it doesn't exist | |
| 265 | - * @return boolean | |
| 266 | - */ | |
| 267 | - private function _chmodRecursive($path, $filemode) { | |
| 268 | - if (!is_dir($path)) | |
| 269 | - return chmod($path, $filemode); | |
| 270 | - $dh = opendir($path); | |
| 271 | - while (($file = readdir($dh)) !== false) { | |
| 272 | - if($file != '.' && $file != '..') { | |
| 273 | - $fullpath = $path.'/'.$file; | |
| 274 | - if(is_link($fullpath)) | |
| 275 | - return false; | |
| 276 | - elseif(!is_dir($fullpath)) { | |
| 277 | - $perms = substr(sprintf('%o', fileperms($fullpath)), -4); | |
| 278 | - if($perms != $filemode) | |
| 279 | - if (!chmod($fullpath, $filemode)) | |
| 280 | - return false; | |
| 281 | - } elseif(!$this->chmodRecursive($fullpath, $filemode)) | |
| 282 | - return false; | |
| 283 | - } | |
| 284 | - } | |
| 285 | - closedir($dh); | |
| 286 | - $perms = substr(sprintf('%o', fileperms($path)), -4); | |
| 287 | - if($perms != $filemode) { | |
| 288 | - if(chmod($path, $filemode)) | |
| 289 | - return true; | |
| 290 | - else | |
| 291 | - return false; | |
| 292 | - } else { | |
| 293 | - return true; | |
| 294 | - } | |
| 295 | - } | |
| 296 | - | |
| 297 | - /** | |
| 298 | - * Check if a file can be written to a folder | |
| 299 | - * | |
| 300 | - * @author KnowledgeTree Team | |
| 301 | - * @access public | |
| 302 | - * @param string $filename the path to the file to create | |
| 303 | - * @return boolean | |
| 304 | - */ | |
| 305 | - public function canWriteFile($filename) { | |
| 306 | - $fh = fopen($filename, "w+"); | |
| 307 | - if($fr = fwrite($fh, 'test') === false) { | |
| 308 | - return false; | |
| 309 | - } | |
| 310 | - | |
| 311 | - fclose($fh); | |
| 312 | - return true; | |
| 313 | - } | |
| 314 | - | |
| 315 | - function execInBackground($cmd) { | |
| 316 | - if (substr(php_uname(), 0, 7) == "Windows"){ | |
| 317 | - pclose(popen("start /B ". $cmd, "r")); | |
| 318 | - } | |
| 319 | - else { | |
| 320 | - exec($cmd . " > /dev/null &"); | |
| 321 | - } | |
| 322 | - } | |
| 323 | -} | |
| 324 | -?> | |
| 325 | 0 | \ No newline at end of file |
setup/wizard/lucene.pid deleted
setup/wizard/output deleted