oc-server3/htdocs/mydetails.php
2013-03-04 02:34:05 +01:00

121 lines
3.1 KiB
PHP

<?php
/***************************************************************************
* For license information see doc/license.txt
*
* Unicode Reminder メモ
***************************************************************************/
require_once('./lib2/web.inc.php');
require_once('./lib2/logic/user.class.php');
require_once('./lib2/logic/useroptions.class.php');
$tpl->name = 'mydetails';
$tpl->menuitem = MNU_MYPROFILE_DETAILS;
$login->verify();
if ($login->userid == 0)
$tpl->redirect_login();
$action = isset($_REQUEST['action']) ? mb_strtolower($_REQUEST['action']) : 'view';
if ($action != 'change' && $action != 'view') $action = 'view';
if ($action == 'change')
{
$tpl->menuitem = MNU_MYPROFILE_DETAILS_EDIT;
change();
}
else
{
display();
}
exit;
function change()
{
global $tpl, $login, $opt;
if (isset($_REQUEST['cancel']))
$tpl->redirect('mydetails.php');
$useroptions = new useroptions($login->userid);
if (isset($_REQUEST['save']))
{
$rs = sql('SELECT `id` FROM `profile_options` WHERE `optionset`=1 ORDER BY `id`');
$bError = false;
$error = ': ';
$errorlen = ': ';
$bErrorlen = false;
while ($record = sql_fetch_array($rs))
{
$id = $record['id'];
$vis = isset($_REQUEST['chk' . $id]) ? $_REQUEST['chk' . $id]+0 : 0;
$value = isset($_REQUEST['inp' . $id]) ? $_REQUEST['inp' . $id] : '';
if ($vis != 1) $vis = 0;
$useroptions->setOptVisible($id, $vis);
if (strlen($value) > 2000 && $opt['logic']['enableHTMLInUserDescription'] != true)
{
$errorlen .= $useroptions->getOptName($id);
$bErrorlen = true;
}
else
{
if (!$useroptions->setOptValue($id, $value))
{
$error .= $useroptions->getOptName($id) . ', ';
$bError = true;
}
}
}
sql_free_result($rs);
$error = substr($error, 0, -2);
$tpl->assign('error', $bError);
$tpl->assign('errormsg', $error);
$tpl->assign('errorlen', $bErrorlen);
$tpl->assign('errormsglen', $errorlen);
if (!$useroptions->save())
{
$bError = true;
$tpl->assign('errorUnknown', true);
}
else if (!$bError)
$tpl->redirect('mydetails.php');
}
assignFromDB($login->userid);
$tpl->assign('edit', true);
$tpl->display();
}
function display()
{
global $tpl, $login;
assignFromDB($login->userid);
$tpl->display();
}
function assignFromDB($userid)
{
global $tpl, $opt;
$rs = sql("SELECT `p`.`id`, IFNULL(`tt`.`text`, `p`.`name`) AS `name`, `p`.`default_value`, `p`.`check_regex`, `p`.`option_order`, `u`.`option_visible`, `p`.`internal_use`, `p`.`option_input`, IFNULL(`u`.`option_value`, `p`.`default_value`) AS `option_value`
FROM `profile_options` AS `p`
LEFT JOIN `user_options` AS `u` ON `p`.`id`=`u`.`option_id` AND (`u`.`user_id` IS NULL OR `u`.`user_id`='&1')
LEFT JOIN `sys_trans` AS `st` ON `p`.`trans_id`=`st`.`id` AND `p`.`name`=`st`.`text`
LEFT JOIN `sys_trans_text` AS `tt` ON `st`.`id`=`tt`.`trans_id` AND `tt`.`lang`='&2'
WHERE `optionset`=1
ORDER BY `p`.`internal_use` DESC, `p`.`option_order`",
$userid+0,
$opt['template']['locale']);
$tpl->assign_rs('useroptions', $rs);
sql_free_result($rs);
}
?>