function updateConfigPhp($configFile)
{
    global $updatedFileManagerConf;
    $fileContent = file_get_contents($configFile);
    if (strpos($fileContent, '\\CoasterCms\\Helpers\\FileManager::filemanager_set_permissions(') !== false) {
        \CoasterCms\Helpers\Cms\File\File::replaceString($configFile, 'filemanager_set_permissions(', '\\CoasterCms\\Helpers\\Admin\\FileManager::filemanager_set_permissions(');
        $updatedFileManagerConf = true;
    } elseif (strpos($fileContent, 'filemanager_set_permissions(') !== false && strpos($fileContent, '\\CoasterCms\\Helpers\\Admin\\FileManager::filemanager_set_permissions(') === false) {
        \CoasterCms\Helpers\Cms\File\File::replaceString($configFile, '\\CoasterCms\\Helpers\\FileManager::', '\\CoasterCms\\Helpers\\Admin\\FileManager::');
        $updatedFileManagerConf = true;
    }
}
 public function saveDatabaseSettings()
 {
     $details = Request::all();
     $v = Validator::make($details, ['user' => 'required', 'name' => 'required']);
     if (!$v->passes()) {
         FormMessage::set($v->messages());
         return $this->setupDatabase();
     }
     $hostPort = explode(':', $details['host']);
     if (count($hostPort) === 2 && (int) $hostPort[1]) {
         list($details['host'], $port) = $hostPort;
     }
     try {
         $host = ($details['host'] ?: 'localhost') . (isset($port) ? ';port=' . $port : '');
         new \PDO('mysql:dbname=' . $details['name'] . ';host=' . $host, $details['user'], $details['password']);
     } catch (\PDOException $e) {
         switch ($e->getCode()) {
             case 1045:
                 FormMessage::add('user', $e->getMessage());
                 break;
             case 1049:
                 FormMessage::add('name', $e->getMessage());
                 break;
             case 2003:
             case 2005:
                 FormMessage::add('host', $e->getMessage());
                 break;
             default:
                 FormMessage::add('host', $e->getMessage());
         }
         return $this->setupDatabase();
     }
     $updateEnv = ['DB_HOST' => $details['host'], 'DB_DATABASE' => $details['name'], 'DB_PREFIX' => !empty($details['prefix']) ? $details['prefix'] : '', 'DB_USERNAME' => $details['user'], 'DB_PASSWORD' => $details['password']];
     if (isset($port)) {
         $updateEnv['DB_PORT'] = $port;
     }
     try {
         $envFileContents = File::getEnvContents();
         $dotEnv = new Dotenv(base_path(), File::getEnvFile());
         foreach ($dotEnv->load() as $env) {
             $envParts = explode('=', $env);
             if (key_exists($envParts[0], $updateEnv)) {
                 $envFileContents = str_replace($env, $envParts[0] . '=' . $updateEnv[$envParts[0]], $envFileContents);
             }
         }
         file_put_contents(base_path('.env'), $envFileContents);
         Artisan::call('key:generate');
     } catch (\Exception $e) {
         FormMessage::add('host', 'can\'t write settings to the .env file, check it is writable for the installation');
         return $this->setupDatabase();
     }
     Install::setInstallState('coaster.install.databaseMigrate');
     return \redirect()->route('coaster.install.databaseMigrate');
 }
Esempio n. 3
0
    $response = $guzzleClient->request('POST', 'http://download.jqueryui.com/download', ['form_params' => ['theme' => 'ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fsDefault=1.1em&fwDefault=bold&cornerRadius=2px&bgColorHeader=%23eb5b4f&bgTextureHeader=flat&borderColorHeader=%23eb5b4f&fcHeader=%23fff&iconColorHeader=%23ffffff&bgColorContent=%23fff&bgTextureContent=highlight_soft&borderColorContent=%23dddddd&fcContent=%23333333&iconColorContent=%23222222&bgColorDefault=%23fff&bgTextureDefault=glass&borderColorDefault=%23ccc&fcDefault=%23333&iconColorDefault=%23333&bgColorHover=%2300184a&bgTextureHover=inset_soft&borderColorHover=%2300184a&fcHover=%23fff&iconColorHover=%23fff&bgColorActive=%23ffffff&bgTextureActive=glass&borderColorActive=%23eb5b4f&fcActive=%23eb5b4f&iconColorActive=%23eb5b4f&bgColorHighlight=%2300184a&bgTextureHighlight=highlight_soft&borderColorHighlight=%2300184a&fcHighlight=%23fff&iconColorHighlight=%23fff&bgColorError=%23b81900&bgTextureError=diagonals_thick&borderColorError=%23cd0a0a&fcError=%23ffffff&iconColorError=%23ffd27a&bgColorOverlay=%23eb5b4f&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=%23000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=1&thicknessShadow=20px&offsetTopShadow=5px&offsetLeftShadow=5px&cornerRadiusShadow=5px&bgImgOpacityHeader=35&bgImgOpacityContent=0&bgImgOpacityDefault=0&bgImgOpacityHover=20&bgImgOpacityActive=65&bgImgOpacityHighlight=20&bgImgOpacityError=18', 'core' => 'on', 'widget' => 'on', 'mouse' => 'on', 'position' => 'on', 'draggable' => 'on', 'droppable' => 'on', 'resizable' => 'on', 'selectable' => 'on', 'sortable' => 'on', 'accordion' => 'on', 'autocomplete' => 'on', 'button' => 'on', 'datepicker' => 'on', 'dialog' => 'on', 'menu' => 'on', 'progressbar' => 'on', 'selectmenu' => 'on', 'slider' => 'on', 'spinner' => 'on', 'effect' => 'on', 'effect-blind' => 'on', 'effect-bounce' => 'on', 'effect-clip' => 'on', 'effect-drop' => 'on', 'effect-explode' => 'on', 'effect-fade' => 'on', 'effect-fold' => 'on', 'effect-highlight' => 'on', 'effect-puff' => 'on', 'effect-pulsate' => 'on', 'effect-scale' => 'on', 'effect-shake' => 'on', 'effect-size' => 'on', 'effect-slide' => 'on', 'effect-transfer' => 'on', 'version' => '1.11.4'], 'sink' => $jQueryUIZip]);
    $zip = new \CoasterCms\Helpers\Cms\File\Zip();
    $zip->open($jQueryUIZip);
    $zip->extractDir('jquery-ui-1.11.4.custom', public_path('coaster/jquery-ui'));
    $zip->close();
    unlink($jQueryUIZip);
    echo ".";
    $timePickerZip = public_path('coaster/jquery-ui/jQuery-Timepicker-Addon-1.4.zip');
    $timePickerFile = public_path('coaster/jquery-ui/jquery-ui-timepicker-addon.js');
    $response = $guzzleClient->request('GET', 'https://github.com/trentrichardson/jQuery-Timepicker-Addon/archive/v1.4.zip', ['sink' => $timePickerZip]);
    $zip = new \CoasterCms\Helpers\Cms\File\Zip();
    $zip->open($timePickerZip);
    $zip->extractFile('jQuery-Timepicker-Addon-1.4/dist/jquery-ui-timepicker-addon.js', $timePickerFile);
    $zip->close();
    unlink($timePickerZip);
    \CoasterCms\Helpers\Cms\File\File::replaceString($timePickerFile, 'formattedDateTime += this._defaults.separator + this.formattedTime + this._defaults.timeSuffix;', 'formattedDateTime = this.formattedTime + this._defaults.timeSuffix + this._defaults.separator + formattedDateTime;');
    echo ".";
    $response = $guzzleClient->request('GET', 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.2/jquery.ui.touch-punch.min.js', ['sink' => public_path('coaster/jquery-ui/jquery.ui.touch-punch.min.js')]);
    $assetsVersions['jquery-ui'] = '1.11.4';
    file_put_contents($assetsFile, json_encode($assetsVersions));
    echo " done\n";
}
/*
 * Securimage
 */
if (empty($assetsVersions['securimage']) || $force || version_compare($assetsVersions['securimage'], '3.6.3', '<')) {
    echo "Coaster Framework: Updating securimage captcha .";
    $secureImageZip = public_path('coaster/securimage-3.6.3.zip');
    $client = new \GuzzleHttp\Client();
    $response = $guzzleClient->request('GET', 'https://github.com/dapphp/securimage/archive/3.6.3.zip', ['sink' => $secureImageZip]);
    echo ".";