1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/pluxml_ynh.git synced 2024-09-03 20:16:02 +02:00
pluxml_ynh/sources/update/update_5.1.7.php

105 lines
3.8 KiB
PHP
Raw Normal View History

2014-11-12 22:01:48 +01:00
<?php
/**
* Classe de mise a jour pour PluXml version 5.1.7
*
* @package PLX
* @author Stephane F
**/
define('PLX_CONF', PLX_ROOT.'data/configuration/parametres.xml');
class update_5_1_7 extends plxUpdate{
# mise à jour dossier de configuration
public function step1() {
# Création du dossier de configuration si besoin
if(!is_dir(PLX_ROOT.PLX_CONFIG_PATH)) {
mkdir(PLX_ROOT.PLX_CONFIG_PATH,0755,true);
}
# Création du dossier de stockage des parametres des plugins
if(!is_dir(PLX_ROOT.PLX_CONFIG_PATH.'plugins')) {
mkdir(PLX_ROOT.PLX_CONFIG_PATH.'plugins',0755,true);
}
# Protection du dossier de configuration
plxUtils::write("<Files *>\n\tOrder allow,deny\n\tDeny from all\n</Files>", PLX_ROOT.PLX_CONFIG_PATH.".htaccess");
plxUtils::write("", PLX_ROOT.PLX_CONFIG_PATH."index.html");
# Relocalisation des fichiers de configuration si besoin
if(!plxUtils::write(file_get_contents(PLX_CONF), path('XMLFILE_PARAMETERS'))) {
echo '<p class="error">'.L_UPDATE_ERR_FILE.' : '.path('XMLFILE_PARAMETERS').'</p>';
return false;
}
if(!plxUtils::write(file_get_contents(PLX_ROOT.$this->plxAdmin->aConf['statiques']), path('XMLFILE_STATICS'))) {
echo '<p class="error">'.L_UPDATE_ERR_FILE.' : '.path('XMLFILE_STATICS').'</p>';
return false;
}
if(!plxUtils::write(file_get_contents(PLX_ROOT.$this->plxAdmin->aConf['categories']), path('XMLFILE_CATEGORIES'))) {
echo '<p class="error">'.L_UPDATE_ERR_FILE.' : '.path('XMLFILE_CATEGORIES').'</p>';
return false;
}
if(!plxUtils::write(file_get_contents(PLX_ROOT.$this->plxAdmin->aConf['users']), path('XMLFILE_USERS'))) {
echo '<p class="error">'.L_UPDATE_ERR_FILE.' : '.path('XMLFILE_USERS').'</p>';
return false;
}
if(!plxUtils::write(file_get_contents(PLX_ROOT.$this->plxAdmin->aConf['tags']), path('XMLFILE_TAGS'))) {
echo '<p class="error">'.L_UPDATE_ERR_FILE.' : '.path('XMLFILE_TAGS').'</p>';
return false;
}
if(!plxUtils::write(file_get_contents(PLX_ROOT.$this->plxAdmin->aConf['plugins']), path('XMLFILE_PLUGINS'))) {
echo '<p class="error">'.L_UPDATE_ERR_FILE.' : '.path('XMLFILE_PLUGINS').'</p>';
return false;
}
return true; # pas d'erreurs
}
# mise à jour fichier parametres.xml
public function step2() {
echo L_UPDATE_UPDATE_PARAMETERS_FILE."<br />";
$new_parameters['config_path'] = PLX_CONFIG_PATH;
$new_parameters['thumbs'] = 1;
# on supprime les parametres obsoletes
unset($this->plxAdmin->aConf['statiques']);
unset($this->plxAdmin->aConf['categories']);
unset($this->plxAdmin->aConf['users']);
unset($this->plxAdmin->aConf['tags']);
unset($this->plxAdmin->aConf['plugins']);
# mise à jour du fichier des parametres
$this->updateParameters($new_parameters);
return true; # pas d'erreurs
}
# déplacement et renommage des fichiers parametres des plugins
public function step3() {
# Récupère le nouveau n° de version de PluXml
if(is_readable(PLX_ROOT.'version')) {
$f = file(PLX_ROOT.'version');
$newVersion = $f['0'];
}
echo L_UPDATE_PLUG_MOVEPARAMFILE."<br />";
foreach($this->plxAdmin->plxPlugins->aPlugins as $plugName=>$plugAttrs) {
$plugParamFile = PLX_PLUGINS.$plugName.'/parameters.xml';
if(is_file($plugParamFile)) {
if (version_compare($newVersion, '5.1.7') > 0)
$title = $plugAttrs->getInfo('title');
else
$title = $plugAttrs['title'];
if(plxUtils::write(file_get_contents($plugParamFile), PLX_ROOT.PLX_CONFIG_PATH.'/plugins/'.$plugName.'.xml')) {
echo '<span style="color:green">&#10004; '.$title.'</span><br />';
unlink($plugParamFile);
}
else
echo '<span style="color:red">&#10007; '.$title.'</span><br />';
}
}
return true; # pas d'erreurs
}
}
?>