1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-05 02:39:47 +02:00
ampache/admin/system.php
2007-04-23 07:31:40 +00:00

146 lines
4 KiB
PHP

<?php
/*
Copyright (c) 2001 - 2006 Ampache.org
All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
require('../lib/init.php');
require_once(conf('prefix') . '/lib/debug.lib.php');
require_once(conf('prefix') . '/modules/horde/Browser.php');
if (!$GLOBALS['user']->has_access(100)) {
access_denied();
exit();
}
$action = scrub_in($_REQUEST['action']);
/* Switch on action boys */
switch ($action) {
/* This re-generates the config file comparing
* /config/ampache.cfg to .cfg.dist
*/
case 'generate_config':
$configfile = conf('prefix') . '/config/ampache.cfg.php';
$distfile = conf('prefix') . '/config/ampache.cfg.php.dist';
/* Load the current config file */
$current = read_config($configfile, 0, 0);
/* Start building the new config file */
$handle = fopen($distfile,'r');
$dist = fread($handle,filesize($distfile));
fclose($handle);
$data = explode("\n",$dist);
/* Run throught the lines and set our settings */
foreach ($data as $line) {
/* Attempt to pull out Key */
if (preg_match("/^#?([\w\d]+)\s+=\s+[\"]{1}(.*?)[\"]{1}$/",$line,$matches)
|| preg_match("/^#?([\w\d]+)\s+=\s+[\']{1}(.*?)[\']{1}$/", $line, $matches)
|| preg_match("/^#?([\w\d]+)\s+=\s+[\'\"]{0}(.*)[\'\"]{0}$/",$line,$matches)) {
$key = $matches[1];
$value = $matches[2];
/* Check to see if Key on source side is an array */
if (is_array($current[$key])) {
/* We need to add all values of this key to the new config file */
$line = $key . ' = "';
$array_value[$key] = true;
foreach ($current[$key] as $sub_value) {
$line .= "$sub_value,";
}
$line = rtrim($line,',');
$line .= '"';
unset($current[$key]);
} // is array
/* Put in the current value */
elseif (isset($current[$key]) AND $key != 'config_version') {
$line = $key . ' = "' . $current[$key] . '"';
unset($current[$key]);
} // if set
elseif (isset($array_value[$key])) {
$line = '';
}
if (substr($line,0,1) == "#") {
$line = ltrim($line,"#");
$line = ";" . $line;
}
} // if key
else {
// Replace # with ;
$line = str_replace("#",";",$line);
}
$final .= $line . "\n";
} // end foreach dist file contents
/* Set Correct Headers */
$browser = new Browser();
$browser->downloadHeaders("ampache.cfg.php","text/plain",false,filesize("config/ampache.cfg.php.dist"));
echo $final;
break;
/* Check this version against ampache.org's record */
case 'check_version':
break;
/* Export Catalog to ItunesDB */
case 'export':
$catalog = new Catalog();
switch ($_REQUEST['export']) {
case 'itunes':
header("Cache-control: public");
header("Content-Disposition: filename=itunes.xml");
header("Content-Type: application/itunes+xml; charset=utf-8");
echo xml_get_header('itunes');
echo $catalog->export($_REQUEST['export']);
echo xml_get_footer('itunes');
break;
default:
$url = conf('web_path') . '/admin/index.php';
$title = _('Export Failed');
$body = '';
show_template('header');
show_confirmation($title,$body,$url);
show_template('footer');
break;
}
break;
default:
// Rien a faire
break;
} // end switch
?>