$value) { $connectionString = str_replace('{{'.$key.'}}',$value,$connectionString); } $connectionString = str_replace('{{ROOT}}',dirname(__FILE__).DIRECTORY_SEPARATOR,$connectionString); try{ $connection = new PDO($connectionString, $_GET['login'], $_GET['password'],$connector::pdo_attributes()); }catch(Exception $e){ $response['error'] = 'Connexion impossible : '.$e->getMessage(); } echo json_encode($response); exit(); } try { /* Page customizable depuis n'importe quel app.json de plugin via la mention : "install": { "css" : "css/install.css", "js" : "js/install.js", "action" : "install.php" }, css : chemin relatif au plugin d'un fichier css custom d'install js : chemin relatif au plugin d'un fichier js custom d'install action : chemin vers un fichier php contenant le code qui doit s'executer en fin d'installation. */ date_default_timezone_set('Europe/Paris'); mb_internal_encoding('UTF-8'); require_once(__DIR__.'/function.php'); spl_autoload_register('app_autoloader'); $_ = array_map('secure_user_vars', array_merge($_POST, $_GET)); require_once('class/Plugin.class.php'); $entityFolder = __DIR__.'/class/'; if(file_exists(__DIR__.DIRECTORY_SEPARATOR.'.git') && !file_exists(__DIR__.DIRECTORY_SEPARATOR.'.git'.DIRECTORY_SEPARATOR.'.htaccess')){ file_put_contents(__DIR__.DIRECTORY_SEPARATOR.'.git'.DIRECTORY_SEPARATOR.'.htaccess', 'deny for all'); } $custom = array('css' => '','js' => '','action' => ''); //Recherche de custom install dans les plugins foreach(glob(__DIR__.DIRECTORY_SEPARATOR.'plugin'.DIRECTORY_SEPARATOR.'*'.DIRECTORY_SEPARATOR.'app.json') as $app){ $manifest = json_decode(file_get_contents($app),true); if(!$manifest || !isset($manifest['install'])) continue; $custom = $manifest['install']; $custom['plugin'] = 'plugin/'.basename(dirname($app)).'/'; $custom['pluginPath'] = __DIR__.DIRECTORY_SEPARATOR.'plugin'.DIRECTORY_SEPARATOR.basename(dirname($app)).DIRECTORY_SEPARATOR; } /* Installation en mode cli, exemple : php install.php "{\"connector\":\"Mysql\",\"host\":\"mysql-host\",\"login\":\"root\",\"password\":\"root\",\"name\":\"hackpoint\",\"root\":\"http:\/\/127.0.0.1\/hackpoint\"}" */ if(php_sapi_name() == 'cli'){ echo 'Headless install...'.PHP_EOL; $parameters = json_decode($argv[1],true); echo 'Parameters: '.PHP_EOL; print_r($parameters); echo 'Installing... '.PHP_EOL; install_core($parameters,$custom); echo 'Installation done. '.PHP_EOL; exit(); } ?> Installateur
sudo chown -R www-data:www-data '.__ROOT__.'
ou de régler le dossier en écriture via votre client ftp'); if(!file_exists(__DIR__.'/file')) mkdir(__DIR__.'/file',0755,true); if(!file_exists(__DIR__.'/file/avatar')) mkdir(__DIR__.'/file/avatar',0755,true); //if(!extension_loaded('gd') || !function_exists('gd_info')) throw new Exception('L\'extension php GD2 est requise, veuillez installer GD2 (sous linux : sudo apt-get install php5-gd && service apache2 restart)'); //if(!in_array('sqlite',PDO::getAvailableDrivers())) throw new Exception('Le driver SQLITE est requis, veuillez installer sqlite3 (sous linux : sudo apt-get install php5-sqlite && service apache2 restart)'); if(isset($_['connector'])){ install_core($_,$custom); ?>
Succès! La base est bien installée, l'utilisateur par défaut est admin:admin, pensez à changer le mot de passe rapidemment.
Revenir à l'index

Installation

Merci de bien vouloir remplir les champs ci-dessous



Installer
Tester la connexion
Oops! getMessage().' - '.$e->getFile().' L'.$e->getLine().'
'.$e->getTraceAsString().'
'; ?>
$cryptKey )); foreach ($tags as $key => $value) { $constantStream = str_replace("{{".$key."}}",$value,$constantStream); } file_put_contents(__DIR__.DIRECTORY_SEPARATOR.'constant.php',$constantStream); require_once(__DIR__.DIRECTORY_SEPARATOR.'constant.php'); require_once(__ROOT__.'class'.SLASH.'Entity.class.php'); //install entities Entity::install(__ROOT__.'class'); global $conf,$myUser; $conf = new Configuration(); $conf->getAll(); //create firm $firm = new Firm(); $firm->label = 'Établissement'; $firm->description = 'Établissement par défaut'; $firm->save(); //create admin rank $rank = new Rank(); $rank->label = 'Administrateur'; $rank->description = 'Dispose de tous les accès'; $rank->save(); //create default user $admin = new User(); $admin->login = 'admin'; $admin->password = User::password_encrypt('admin'); $admin->firstname = 'Administrateur'; $admin->name = 'SYS1'; $admin->superadmin = 1; $admin->rank = $rank->id; $admin->state = User::ACTIVE; $admin->save(); $_SESSION['currentUser'] = serialize($admin); $myUser = $admin; $userfirmrank = new UserFirmRank(); $userfirmrank->user = $admin->login; $userfirmrank->firm = $firm->id; $userfirmrank->save(); $sections = array(); Plugin::callHook('section',array(&$sections)); foreach($sections as $section=>$description){ $right = new Right(); $right->rank = $rank->id; $right->section = $section; $right->read = true; $right->edit = true; $right->delete = true; $right->configure = true; $right->save(); } $enablePlugins = array('fr.sys1.factory','fr.sys1.dashboard','fr.sys1.notification','fr.sys1.navigation'); if(!empty($custom['action'])) require_once($custom['pluginPath'].$custom['action']); //Activation des plugins par défaut foreach ($enablePlugins as $plugin) { if(!Plugin::exist($plugin)) continue; Plugin::state($plugin,true); } $states = Plugin::states(); //Activation des plugins pour les établissements foreach(Firm::loadAll() as $firm){ foreach ($enablePlugins as $plugin) { if(!Plugin::exist($plugin)) continue; $firms = $states[$plugin]; $key = array_search($firm->id, $firms); $firms[] = $firm->id; $states[$plugin] = array_values($firms); Plugin::states($states); } } } ?>