Deprecated: Assigning the return value of new by reference is deprecated in /home/bluestat/public_html/source/index.php on line 477
Kalens - Blob - ViewGit - Blue Static
<?php
/*=====================================================================*\
|| ###################################################################
|| # Kalens [#]version[#]
|| # Copyright ©2002-[#]year[#] Iris Studios, Inc.
|| #
|| # 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; version [#]gpl[#] of the License.
|| #
|| # 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.,
|| # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|| ###################################################################
\*=====================================================================*/

// ######################### REQUIRE BACKEND #########################
define('SVN', '$Id$');

require_once('./global.php');
require_once('./includes/admin/xml.php');

$settingtypes = array(
	'text' => '$print->row_input',
	'textarea' => '$print->row_textarea',
	'list' => '$print->row_list'
);

function setting_code($setting)
{
	global $IS_SETTINGS, $kalens;

	$IS_SETTINGS = true;

	$kalens->print->row_span((DEVDEBUG ? "<span class=\"smallfont\" style=\"float: right;\"><a href=\"options.php?do=editsetting&amp;varname=$setting[varname]\">[" . $kalens->lang->string('Edit') . "]</a>&nbsp;<a href=\"options.php?do=killsetting&amp;varname=$setting[varname]&amp;group=$setting[groupname]\" onclick=\"return confirm('" . $kalens->lang->string('Are you sure you want to perform this delete operation?') . "');\">[" . $kalens->lang->string('Delete') . "]</a></span>" : '') . '<span' . (DEVDEBUG ? ' title="$kalens->options[\'' . $setting['varname'] . '\']"' : '') . "><strong>" . AdminStrings::fetchSettingTitle($setting['varname']) . "</strong></span>", 'thead');

	switch ($setting['code'])
	{
		case 'textbox':
			$kalens->print->row_input(AdminStrings::fetchSettingDescription($setting['varname']), 'settings[' . $setting['varname'] . ']', $setting['value']);
			break;
		case 'textarea':
			$kalens->print->row_textarea(AdminStrings::fetchSettingDescription($setting['varname']), 'settings[' . $setting['varname'] . ']', $setting['value']);
			break;
		case 'yesno':
			$kalens->print->list_item($kalens->lang->string('No'), '0', ($setting['value'] == false));
			$kalens->print->list_item($kalens->lang->string('Yes'), '1', ($setting['value'] == true));
			$kalens->print->row_list(AdminStrings::fetchSettingDescription($setting['varname']), 'settings[' . $setting['varname'] . ']');
			break;
		default:
			eval('$value = "' . $kalens->clean($setting['code'], TYPE_STRUN) . '";');
			$kalens->print->row_text(AdminStrings::fetchSettingDescription($setting['varname']), $value);
			break;
	}
}

// ######################## NEW SETTING GROUP ########################
if ($_REQUEST['do'] == 'newgroup')
{
	$print->page_start(sprintf($lang->string('Add %1$s'), sprintf($lang->string('%1$s Group'), $lang->string('Setting'))));

	$print->form_start('options.php', 'mk_group');
	$print->table_start();
	$print->table_head(sprintf($lang->string('Add %1$s'), sprintf($lang->string('%1$s Group'), $lang->string('Setting'))));
	$print->row_input($lang->string('Name'), 'groupname');
	$print->row_input($lang->string('Shortname'), 'shortname');
	$print->row_input($lang->string('Display Order'), 'displayorder');
	$print->row_submit();
	$print->table_end();
	$print->form_end();

	$print->page_end();
}

// ######################## EDIT SETTING GROUP #######################
if ($_REQUEST['do'] == 'editgroup')
{
	$get_group = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "settinggroup WHERE shortname = '" . $kalens->input_escape('group') . "'");

	$print->page_start(sprintf($lang->string('Edit %1$s'), sprintf($lang->string('%1$s Group'), $lang->string('Setting'))));

	$print->form_start('options.php', 'ch_group');
	$print->form_hidden_field('group', $get_group['shortname']);
	$print->table_start();
	$print->table_head(sprintf($lang->string('Edit %1$s'), sprintf($lang->string('%1$s Group'), $lang->string('Setting'))));
	$print->row_input($lang->string('Name'), 'groupname', $get_group['groupname']);
	$print->row_input($lang->string('Display Order'), 'displayorder', $get_group['displayorder']);
	$print->row_submit('<input type="checkbox" name="kill" value="1" />' . $lang->string('Delete'));
	$print->table_end();
	$print->form_end();

	$print->page_end();
}

// ######################### ADD GROUP ACTION ########################
if ($_POST['do'] == 'mk_group')
{
	$db->query("INSERT INTO " . TABLE_PREFIX . "settinggroup (groupname, shortname, displayorder) VALUES ('" . $kalens->input_escape('groupname') . "', '" . $kalens->input_escape('shortname') . "', " . $kalens->input_clean('displayorder', TYPE_UINT) . ")");
	$print->redirect('options.php?do=settings&group=' . $kalens->in['shortname'], 10, true);
}

// ######################## EDIT GROUP ACTION ########################
if ($_POST['do'] == 'ch_group')
{
	if ($vars['kill'])
	{
		$db->query("DELETE FROM " . TABLE_PREFIX . "settinggroup WHERE shortname = '" . $kalens->input_escape('group') . "'");
		$db->query("DELETE FROM " . TABLE_PREFIX . "setting WHERE groupname = '" . $kalens->input_escape('group') . "'");
	}

	$db->query("UPDATE " . TABLE_PREFIX . "settinggroup SET groupname = '" . $kalens->input_escape('groupname') . "', displayorder = " . $kalens->input_clean('displayorder', TYPE_UINT) . " WHERE shortname = '" . $kalens->input_escape('group') . "'");
	$print->redirect('options.php?do=settings&group=' . $kalens->in['group'], 10, true);
}

// ########################### SETTING LIST ##########################
if ($_REQUEST['do'] == 'settings')
{
	$group = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "settinggroup WHERE shortname = '" . $kalens->input_escape('group') . "'");
	$settings = $db->query("SELECT * FROM " . TABLE_PREFIX . "setting WHERE groupname = '$group[shortname]' ORDER BY varname ASC");

	$print->page_start($group['groupname']);

	$print->form_start('options.php', 'save_settings');
	$print->form_hidden_field('group', $group['shortname']);
	$print->table_start();
	$print->table_head($group['groupname'] . (DEVDEBUG ? "&nbsp;<a href=\"options.php?do=addsetting&group=$group[shortname]\">" . sprintf($lang->string('[%1$s]'), $lang->string('Add')) . "</a> <a href=\"options.php?do=editgroup&amp;group=$group[shortname]\">"  . sprintf($lang->string('[%1$s]'), $lang->string('Edit')) . "</a>" : ''));

	while ($setting = $db->fetch_array($settings))
	{
		setting_code($setting);
	}

	$print->row_submit();
	$print->table_end();
	$print->form_end();

	$print->page_end();
}

// ########################## SAVE SETTINGS ##########################
if ($_POST['do'] == 'save_settings')
{
	foreach ($kalens->in['settings'] AS $name => $value)
	{
		$db->query("UPDATE " . TABLE_PREFIX . "setting SET value = '" . $kalens->escape($value) . "' WHERE varname = '" . $kalens->escape($name) . "'");
	}
	$print->redirect("options.php?do=settings&group=" . $kalens->in['group']);
}

// ########################### ADD SETTING ###########################
if ($_REQUEST['do'] == 'addsetting')
{
	$print->page_start(sprintf($lang->string('Add %1$s'), $lang->string('Setting')));
	$print->form_start('options.php', 'mk_setting');
	$print->form_hidden_field('group', $kalens->in['group']);
	$print->table_start();
	$print->table_head(sprintf($lang->string('Add %1$s'), $lang->string('Setting')));
	$print->row_input($lang->string('Varname'), 'varname');
	$print->row_textarea($lang->string('Code Type'), 'code');
	$print->row_textarea($lang->string('Value'), 'value');
	$print->row_input($lang->string('Volatile'), 'volatile', 0);
	$print->row_submit();
	$print->table_end();
	$print->form_end();
	$print->page_end();
}

// ######################## ADD SETTING ACTION #######################
if ($_POST['do'] == 'mk_setting')
{
	$db->query("
		INSERT INTO " . TABLE_PREFIX . "setting
			(varname, groupname, `code`, `value`, volatile)
		VALUES
			('" . $kalens->input_escape('varname') . "',
			'" . $kalens->input_escape('group') . "',
			'" . $kalens->input_escape('code') . "',
			'" . $kalens->input_escape('value') . "',
			" . $kalens->input_clean('volatile', TYPE_UINT) . "
		)"
	);
	$print->redirect("options.php?do=settings&group=" . $kalens->in['group']);
}

// ########################### EDIT SETTING ##########################
if ($_REQUEST['do'] == 'editsetting')
{
	$setting = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "setting WHERE varname = '" . $kalens->input_escape('varname') . "'");
	$groups = $db->query("SELECT * FROM " . TABLE_PREFIX . "settinggroup ORDER BY displayorder ASC");

	$print->page_start(sprintf($lang->string('Edit %1$s'), $lang->string('Setting')));
	$print->form_start('options.php', 'ch_setting');
	$print->form_hidden_field('varname', $setting['varname']);
	$print->table_start();
	$print->table_head(sprintf($lang->string('Add %1$s'), $lang->string('Setting')));

	while ($group = $db->fetch_array($groups))
	{
		$print->list_item($group['groupname'], $group['shortname'], ($group['shortname'] == $setting['groupname']));
	}
	$print->row_list($lang->string('Group Name'), 'groupname');

	$print->row_text($lang->string('Varname'), $setting['varname']);
	$print->row_textarea($lang->string('Code Type'), 'code', $setting['code']);
	$print->row_textarea($lang->string('Value'), 'value', $setting['value']);
	$print->row_input($lang->string('Volatile'), 'volatile', $setting['volatile']);
	$print->row_submit();
	$print->table_end();
	$print->form_end();
	$print->page_end();
}

// ####################### EDIT SETTING ACTION #######################
if ($_POST['do'] == 'ch_setting')
{
	$db->query("
		UPDATE " . TABLE_PREFIX . "setting SET
			groupname = '" . $kalens->input_escape('groupname') . "',
			code = '" . $kalens->input_escape('code') . "',
			value = '" . $kalens->input_escape('value') . "',
			volatile = " . $kalens->input_clean('volatile', TYPE_UINT) . "
		WHERE varname = '" . $kalens->input_escape('varname') . "'"
	);
	$print->redirect("options.php?do=settings&group=" . $kalens->in['groupname']);
}

// ########################## DELETE SETTING #########################
if ($_REQUEST['do'] == 'killsetting')
{
	$db->query("DELETE FROM " . TABLE_PREFIX . "setting WHERE varname = '" . $kalens->input_escape('varname') . "'");
	$print->redirect("options.php?do=settings&group=" . $kalens->in['group']);
}

// ############################ XML IMPEX ############################
if ($_REQUEST['do'] == 'io')
{
	$print->page_start($lang->string('XML Import/Export'));

	$print->form_start('options.php', 'ul', 'multipart/form-data');
	$print->table_start();
	$print->table_head($lang->string('XML Import/Export'));
	$print->row_upload($lang->string('Upload File'), 'settingfile');
	$print->row_submit();
	$print->table_head($lang->string('Downoad File'));
	$print->row_span("<strong>" . $lang->string('Downoad File') . ":</strong> <a href=\"options.php?do=dl\">" . $lang->string('Downoad File') . "</a>");
	$print->table_end();

	$print->page_end();
}

if ($_REQUEST['do'] == 'dl')
{
	download_setting_xml('procal_settings.xml');
}

if ($_POST['do'] == 'ul')
{
	$result = upload_setting_xml(@file_get_contents($_FILES['settingfile']['tmp_name']), $_FILES['settingfile']['name']);

	if ($result !== true)
	{
		$print->error($result);
	}

	$print->redirect('options.php');
}

/*=====================================================================*\
|| ###################################################################
|| # $HeadURL$
|| # $Id$
|| ###################################################################
\*=====================================================================*/
?>