[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /* +*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 * *********************************************************************************** */ 10 11 class Install_Index_view extends Vtiger_View_Controller { 12 13 protected $debug = false; 14 15 function loginRequired() { 16 return false; 17 } 18 19 public function __construct() { 20 $this->exposeMethod('Step1'); 21 $this->exposeMethod('Step2'); 22 $this->exposeMethod('Step3'); 23 $this->exposeMethod('Step4'); 24 $this->exposeMethod('Step5'); 25 $this->exposeMethod('Step6'); 26 $this->exposeMethod('Step7'); 27 } 28 29 public function preProcess(Vtiger_Request $request) { 30 date_default_timezone_set('Europe/London'); // to overcome the pre configuration settings 31 // Added to redirect to default module if already installed 32 $configFileName = 'config.inc.php'; 33 if(is_file($configFileName) && filesize($configFileName) > 0) { 34 $defaultModule = vglobal('default_module'); 35 $defaultModuleInstance = Vtiger_Module_Model::getInstance($defaultModule); 36 $defaultView = $defaultModuleInstance->getDefaultViewName(); 37 header('Location:index.php?module='.$defaultModule.'&view='.$defaultView); 38 exit; 39 } 40 41 parent::preProcess($request); 42 $viewer = $this->getViewer($request); 43 $moduleName = $request->getModule(); 44 $defaultLanguage = ($request->get('lang'))?$request->get('lang'):'en_us'; 45 vglobal('default_language', $defaultLanguage); 46 47 define('INSTALLATION_MODE', true); 48 define('INSTALLATION_MODE_DEBUG', $this->debug); 49 $viewer->view('InstallPreProcess.tpl', $moduleName); 50 } 51 52 public function process(Vtiger_Request $request) { 53 $mode = $request->getMode(); 54 if(!empty($mode) && $this->isMethodExposed($mode)) { 55 return $this->$mode($request); 56 } 57 $this->Step1($request); 58 } 59 60 public function postProcess(Vtiger_Request $request) { 61 $viewer = $this->getViewer($request); 62 $moduleName = $request->getModule(); 63 $viewer->view('InstallPostProcess.tpl', $moduleName); 64 } 65 66 public function Step1(Vtiger_Request $request) { 67 $viewer = $this->getViewer($request); 68 $moduleName = $request->getModule(); 69 $viewer->view('Step1.tpl', $moduleName); 70 } 71 72 public function Step2(Vtiger_Request $request) { 73 $viewer = $this->getViewer($request); 74 $moduleName = $request->getModule(); 75 $viewer->view('Step2.tpl', $moduleName); 76 } 77 78 public function Step3(Vtiger_Request $request) { 79 $viewer = $this->getViewer($request); 80 $moduleName = $request->getModule(); 81 $viewer->assign('FAILED_FILE_PERMISSIONS', Install_Utils_Model::getFailedPermissionsFiles()); 82 $viewer->assign('PHP_INI_CURRENT_SETTINGS', Install_Utils_Model::getCurrentDirectiveValue()); 83 $viewer->assign('PHP_INI_RECOMMENDED_SETTINGS', Install_Utils_Model::getRecommendedDirectives()); 84 $viewer->assign('SYSTEM_PREINSTALL_PARAMS', Install_Utils_Model::getSystemPreInstallParameters()); 85 $viewer->view('Step3.tpl', $moduleName); 86 } 87 88 public function Step4(Vtiger_Request $request) { 89 $viewer = $this->getViewer($request); 90 $moduleName = $request->getModule(); 91 $viewer->assign('CURRENCIES', Install_Utils_Model::getCurrencyList()); 92 93 require_once 'modules/Users/UserTimeZonesArray.php'; 94 $timeZone = new UserTimeZones(); 95 $viewer->assign('TIMEZONES', $timeZone->userTimeZones()); 96 97 $defaultParameters = Install_Utils_Model::getDefaultPreInstallParameters(); 98 $viewer->assign('DB_HOSTNAME', $defaultParameters['db_hostname']); 99 $viewer->assign('DB_USERNAME', $defaultParameters['db_username']); 100 $viewer->assign('DB_PASSWORD', $defaultParameters['db_password']); 101 $viewer->assign('DB_NAME', $defaultParameters['db_name']); 102 $viewer->assign('ADMIN_NAME', $defaultParameters['admin_name']); 103 $viewer->assign('ADMIN_LASTNAME', $defaultParameters['admin_lastname']); 104 $viewer->assign('ADMIN_PASSWORD', $defaultParameters['admin_password']); 105 $viewer->assign('ADMIN_EMAIL', $defaultParameters['admin_email']); 106 107 $viewer->view('Step4.tpl', $moduleName); 108 } 109 110 public function Step5(Vtiger_Request $request) { 111 set_time_limit(0); // Override default limit to let install complete. 112 $viewer = $this->getViewer($request); 113 $moduleName = $request->getModule(); 114 $requestData = $request->getAll(); 115 116 foreach($requestData as $name => $value) { 117 $_SESSION['config_file_info'][$name] = $value; 118 } 119 120 $createDataBase = false; 121 $createDB = $request->get('create_db'); 122 if($createDB == 'on') { 123 $rootUser = $request->get('db_username'); 124 $rootPassword = $request->get('db_password'); 125 $createDataBase = true; 126 } 127 $authKey = $_SESSION['config_file_info']['authentication_key'] = md5(microtime()); 128 129 //PHP 5.5+ mysqli is favourable. 130 $dbConnection = Install_Utils_Model::checkDbConnection(function_exists('mysqli_connect')?'mysqli':'mysql', $request->get('db_hostname'), 131 $request->get('db_username'), $request->get('db_password'), $request->get('db_name'), 132 $createDataBase, true, $rootUser, $rootPassword); 133 134 $webRoot = ($_SERVER["HTTP_HOST"]) ? $_SERVER["HTTP_HOST"]:$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT']; 135 $webRoot .= $_SERVER["REQUEST_URI"]; 136 137 $webRoot = str_replace( "index.php", "", $webRoot); 138 $webRoot = (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) ? "https://":"http://").$webRoot; 139 140 $_SESSION['config_file_info']['site_URL'] = $webRoot; 141 $viewer->assign('SITE_URL', $webRoot); 142 143 $_SESSION['config_file_info']['root_directory'] = getcwd().'/'; 144 145 $currencies = Install_Utils_Model::getCurrencyList(); 146 $currencyName = $request->get('currency_name'); 147 if(isset($currencyName)) { 148 $_SESSION['config_file_info']['currency_code'] = $currencies[$currencyName][0]; 149 $_SESSION['config_file_info']['currency_symbol'] = $currencies[$currencyName][1]; 150 } 151 $viewer->assign('DB_CONNECTION_INFO', $dbConnection); 152 $viewer->assign('INFORMATION', $requestData); 153 $viewer->assign('AUTH_KEY', $authKey); 154 $viewer->view('Step5.tpl', $moduleName); 155 } 156 157 public function Step6(Vtiger_Request $request) { 158 $moduleName = $request->getModule(); 159 $viewer = $this->getViewer($request); 160 161 $viewer->assign('AUTH_KEY', $_SESSION['config_file_info']['authentication_key']); 162 $viewer->view('Step6.tpl', $moduleName); 163 } 164 165 public function Step7(Vtiger_Request $request) { 166 // Set favourable error reporting 167 version_compare(PHP_VERSION, '5.5.0') <= 0 ? error_reporting(E_WARNING & ~E_NOTICE & ~E_DEPRECATED) : error_reporting(E_WARNING & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT); 168 169 $moduleName = $request->getModule(); 170 $webuiInstance = new Vtiger_WebUI(); 171 $isInstalled = $webuiInstance->isInstalled(); 172 if(!$isInstalled){ 173 if($_SESSION['config_file_info']['authentication_key'] != $request->get('auth_key')) { 174 die(vtranslate('ERR_NOT_AUTHORIZED_TO_PERFORM_THE_OPERATION', $moduleName)); 175 } 176 177 // Create configuration file 178 $configParams = $_SESSION['config_file_info']; 179 $configFile = new Install_ConfigFileUtils_Model($configParams); 180 $configFile->createConfigFile(); 181 182 global $adb; 183 $adb->resetSettings($configParams['db_type'], $configParams['db_hostname'], $configParams['db_name'], 184 $configParams['db_username'], $configParams['db_password']); 185 $adb->query('SET NAMES utf8'); 186 187 // Initialize and set up tables 188 Install_InitSchema_Model::initialize(); 189 190 // Install all the available modules 191 Install_Utils_Model::installModules(); 192 193 Install_InitSchema_Model::upgrade(); 194 195 $viewer = $this->getViewer($request); 196 $viewer->assign('PASSWORD', $_SESSION['config_file_info']['password']); 197 $viewer->assign('APPUNIQUEKEY', $this->retrieveConfiguredAppUniqueKey()); 198 $viewer->assign('CURRENT_VERSION', $_SESSION['vtiger_version']); 199 $viewer->assign('INDUSTRY', $request->get('industry')); 200 $viewer->view('Step7.tpl', $moduleName); 201 }else{ 202 $response = new Vtiger_Response(); 203 $response->setResult(vtranslate('THIS_INSTANCE_IS_ALREADY_INSTALLED', $moduleName)); 204 return $response; 205 } 206 } 207 208 // Helper function as configuration file is still not loaded. 209 protected function retrieveConfiguredAppUniqueKey() { 210 include 'config.inc.php'; 211 return $application_unique_key; 212 } 213 214 public function getHeaderCss(Vtiger_Request $request) { 215 $moduleName = $request->getModule(); 216 $parentCSSScripts = parent::getHeaderCss($request); 217 $styleFileNames = array( 218 "~/layouts/vlayout/modules/$moduleName/resources/css/style.css", 219 "~/layouts/vlayout/modules/$moduleName/resources/css/mkCheckbox.css", 220 ); 221 $cssScriptInstances = $this->checkAndConvertCssStyles($styleFileNames); 222 $headerCSSScriptInstances = array_merge($parentCSSScripts, $cssScriptInstances); 223 return $headerCSSScriptInstances; 224 } 225 226 public function getHeaderScripts(Vtiger_Request $request) { 227 $moduleName = $request->getModule(); 228 $parentScripts = parent::getHeaderScripts($request); 229 $jsFileNames = array("modules.$moduleName.resources.Index"); 230 $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames); 231 $headerScriptInstances = array_merge($parentScripts, $jsScriptInstances); 232 return $headerScriptInstances; 233 } 234 235 public function validateRequest(Vtiger_Request $request) { 236 return $request->validateWriteAccess(true); 237 } 238 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |