oc-server3/htdocs/mywatches.php
following 88a70c4e30 added oconly notifications; updates #267
and fixed some minor notification bugs
2013-07-21 17:38:31 +02:00

111 lines
3.4 KiB
PHP

<?php
/***************************************************************************
* For license information see doc/license.txt
*
* Unicode Reminder メモ
*
* Display some status information about the server and Opencaching
***************************************************************************/
require('./lib2/web.inc.php');
require_once('./lib2/logic/user.class.php');
$tpl->name = 'mywatches';
$tpl->menuitem = MNU_MYPROFILE_WATCHES;
$login->verify();
if ($login->userid == 0)
$tpl->redirect('login.php?target=' . urlencode($tpl->target));
$action = isset($_REQUEST['action']) ? mb_strtolower($_REQUEST['action']) : '';
if ($action == 'edit')
{
$tpl->menuitem = MNU_MYPROFILE_WATCHES_EDIT;
$user = new user($login->userid);
if (isset($_REQUEST['ok']))
{
$interval = isset($_REQUEST['interval']) ? $_REQUEST['interval']+0 : 1;
$hour = isset($_REQUEST['hour']) ? $_REQUEST['hour']+0 : 0;
$weekday = isset($_REQUEST['weekday']) ? $_REQUEST['weekday']+0 : 1;
$bError = false;
if (!$user->setWatchmailMode($interval))
$bError = true;
if (!$user->setWatchmailHour($hour))
$bError = true;
if (!$user->setWatchmailDay($weekday))
$bError = true;
if ($user->save())
$tpl->assign('saved', true);
else
$tpl->assign('error', true);
}
$hours = array();
for ($i = 0; $i < 24; $i++)
$hours[] = array('value' => $i, 'time' => mktime($i, 0 , 0));
$weekdays = array();
for ($i = 1; $i <= 7; $i++)
$weekdays[] = array('value' => $i, 'time' => mktime(0, 0, 0, 0, $i+5, 2000));
$tpl->assign('hours', $hours);
$tpl->assign('weekdays', $weekdays);
$tpl->assign('interval', $user->getWatchmailMode());
$tpl->assign('hour', $user->getWatchmailHour());
$tpl->assign('weekday', $user->getWatchmailDay());
}
elseif ($action == 'add')
{
$target = isset($_REQUEST['target']) ? $_REQUEST['target'] : '';
$cacheid = isset($_REQUEST['cacheid']) ? $_REQUEST['cacheid']+0 : 0;
if (sql_value("SELECT COUNT(*) FROM `caches` WHERE `cache_id`='&1'", 0, $cacheid) > 0)
sql("INSERT IGNORE INTO `cache_watches` (`cache_id`, `user_id`) VALUES ('&1', '&2')", $cacheid, $login->userid);
$tpl->redirect($tpl->checkTarget($target, 'mywatches.php'));
}
elseif ($action == 'remove')
{
$target = isset($_REQUEST['target']) ? $_REQUEST['target'] : '';
$cacheid = isset($_REQUEST['cacheid']) ? $_REQUEST['cacheid']+0 : 0;
sql("DELETE FROM `cache_watches` WHERE `cache_id`='&1' AND `user_id`='&2'", $cacheid, $login->userid);
$tpl->redirect($tpl->checkTarget($target, 'mywatches.php'));
}
else
{
$rs = sql("
SELECT
`cache_watches`.`cache_id` AS `cacheid`,
`caches`.`wp_oc` AS `wp`,
`caches`.`name` AS `name`,
`stat_caches`.`last_found` AS `lastfound`,
`caches`.`type` AS `type`,
`caches`.`status` AS `status`,
`ca`.`attrib_id` IS NOT NULL AS `oconly`
FROM
`cache_watches`
INNER JOIN `caches` ON `cache_watches`.`cache_id`=`caches`.`cache_id`
INNER JOIN `cache_status` ON `caches`.`status`=`cache_status`.`id`
LEFT JOIN `stat_caches` ON `caches`.`cache_id`=`stat_caches`.`cache_id`
LEFT JOIN `caches_attributes` `ca` ON `ca`.`cache_id`=`caches`.`cache_id` AND `ca`.`attrib_id`=6
WHERE (`cache_status`.`allow_user_view`=1 OR `caches`.`user_id`='&1')
AND `cache_watches`.`user_id`='&1'
ORDER BY `caches`.`name`",
$login->userid);
$tpl->assign_rs('watches', $rs);
sql_free_result($rs);
}
$tpl->assign('action', $action);
$tpl->display();
?>