Order allow,deny
Deny from all
EOT;
const HTACCESS_PLUGINS_CONTENT = <<< EOT
Options -Indexes
Order Allow,Deny
Deny from all
EOT;
const HTACCESS_MEDIAS_CONTENT = <<< EOT
Options -Indexes
EOT;
include PLX_CORE.'lib/config.php';
# On démarre la session
plx_session_start();
# Chargement des langues
if(!empty($_POST)){
$lang = $_POST['default_lang'];
} elseif(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
} else {
$lang = DEFAULT_LANG;
}
if(!array_key_exists($lang, plxUtils::getLangs())) {
$lang = DEFAULT_LANG;
}
loadLang(PLX_CORE.'lang/'.$lang.'/install.php');
loadLang(PLX_CORE.'lang/'.$lang.'/core.php');
# On vérifie la version minimale de PHP
if(version_compare(PHP_VERSION, PHP_VERSION_MIN, '<')){
header('Content-Type: text/plain; charset=UTF-8');
echo L_WRONG_PHP_VERSION;
exit;
}
# On vérifie que PluXml n'est pas déjà installé
if(file_exists(path('XMLFILE_PARAMETERS'))) {
header('Content-Type: text/plain; charset=UTF-8');
echo L_ERR_PLUXML_ALREADY_INSTALLED;
exit;
}
# Control du token du formulaire
plxToken::validateFormToken($_POST);
# Echappement des caractères
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$_POST = plxUtils::unSlash($_POST);
}
# Initialisation du timezone
$timezone = 'Europe/Paris';
if(isset($_POST['timezone'])) $timezone=$_POST['timezone'];
if(!array_key_exists($timezone, plxTimezones::timezones())) {
$timezone = date_default_timezone_get();
}
# Configuration de base
$config = DEFAULT_CONFIG;
$config['description'] = plxUtils::strRevCheck(L_SITE_DESCRIPTION);
$config['timezone'] = $timezone;
$config['clef'] = plxUtils::charAleatoire(15);
$config['default_lang'] = $lang;
$config['version'] = PLX_VERSION;
# Vérification de l'existence des dossiers
foreach(array(
'medias',
'racine_articles',
'racine_commentaires',
'racine_statiques',
'racine_plugins',
) as $folder) {
$target = PLX_ROOT . $config[$folder];
if(!is_dir($target)) {
@mkdir($target, 0755, true);
}
if(is_writable($target)) {
switch($folder) {
case 'racine_plugins':
file_put_contents($target . '.htaccess', HTACCESS_PLUGINS_CONTENT);
break;
case 'medias':
file_put_contents($target . '.htaccess', HTACCESS_MEDIAS_CONTENT);
break;
default:
file_put_contents($target . '.htaccess', HTACCESS_CONTENT);
}
}
}
# Vérification d'autres dossiers
foreach(array(
PLX_ROOT . PLX_CONFIG_PATH,
PLX_ROOT.PLX_CONFIG_PATH.'plugins',
PLX_ROOT.'data/templates',
) as $target) {
if(!is_dir($target)) {
@mkdir($target, 0755, true);
}
}
const CDATA_EXCLUDE = array(
'timezone',
'style',
'clef',
'tri',
'tri_coms',
'medias',
'racine_articles',
'racine_commentaires',
'racine_statiques',
'racine_themes',
'racine_plugins',
'hometemplate',
'version',
'default_lang',
'email_method',
'smtp_security',
);
function install($content, $config) {
if(!is_writable(PLX_ROOT . PLX_CONFIG_PATH)) {
return;
}
# gestion du timezone
date_default_timezone_set($config['timezone']);
# Création du fichier de configuration
ob_start();
?>
$v) {
?>
= plxUtils::strCheck($v, !is_numeric($v) and !in_array($k, CDATA_EXCLUDE)) ?>
]]>
]]>
Webmaster
]]>
]]>
]]>
= $config['default_lang'] ?>
= date('YmdHi') ?>
0) {
?>
]]>
0) {
$now = date('YmdHi');
?>
]]>
= $now ?>
= $now ?>
0) {
plxUtils::write(file_get_contents(PLX_CORE.'/templates/install-page.txt'),PLX_ROOT.$config['racine_statiques'].'001.'.L_DEFAULT_STATIC_URL.'.php');
}
if($content['data'] > 0){
# Création du premier article
$thumbnail = '';
$srcs = glob('*/*/theme/images/pluxml.png');
if(!empty($srcs)) {
$thumbnail = $config['medias'] . 'pluxml.png';
copy($srcs[0], PLX_ROOT . $thumbnail);
}
$html = explode('-----', file_get_contents(PLX_CORE.'/templates/install-article.txt'));
ob_start();
?>
]]>
1
article.php
]]>
]]>
= $now ?>
= $now ?>
= $thumbnail ?>
0) {
?>
0) {
# Création du premier commentaire
ob_start();
?>
normal
127.0.0.1
]]>
]]>
= L_PLUXML_INSTALLATION.' '.L_VERSION.' '.PLX_VERSION ?>
= L_PLUXML_VERSION.' '.PLX_VERSION ?> - = L_INSTALL_TITLE ?>
= $msg ?>
- = L_PLUXML_VERSION; ?> = PLX_VERSION ?> (= L_INFO_CHARSET ?> = PLX_CHARSET ?>)
- = L_INFO_PHP_VERSION.' : '.phpversion() ?>
- = $_SERVER['SERVER_SOFTWARE']; ?>= !empty(PHP_SAPI) ? ' - ' . PHP_SAPI : '' ?>