[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Install/views/ -> Index.php (source)

   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  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1