⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tasks.inc.php

📁 Discuz_7.0.0 是一款社区程序源码!! 国内80 的站长使用此程序
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php

/*
	[Discuz!] (C)2001-2009 Comsenz Inc.
	This is NOT a freeware, use is subject to license terms

	$Id: tasks.inc.php 17396 2008-12-17 07:41:20Z liuqiang $
*/

if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
        exit('Access Denied');
}

cpheader();

$membervars = array('act', 'num', 'time');
$postvars = array('act', 'forumid', 'num', 'time', 'threadid', 'authorid');
$modvars = array();
$sys_scripts = array('member', 'post', 'mod');
$sys_types = array('member' => array('name' => lang('nav_task_member'), 'version' => '1.0'), 'post' => array('name' => lang('nav_task_post'), 'version' => '1.0'));

$custom_types = $db->result_first("SELECT value FROM {$tablepre}settings WHERE variable='tasktypes'");
$custom_types = $custom_types ? unserialize($custom_types) : array();
$custom_scripts = array_keys($custom_types);

$submenus = array();
foreach(array_merge($sys_types, $custom_types) as $k => $v) {
	$submenus[] = array($v['name'], "tasks&operation=add&script=$k");
}

if(!($operation)) {

	if(!submitcheck('tasksubmit')) {

		shownav('extended', 'nav_tasks');
		showsubmenu('nav_tasks', array(
			array('admin', 'tasks', 1),
			array(array('menu' => 'add', 'submenu' => $submenus), '', 0),
			array('nav_task_type', 'tasks&operation=type', 0)
		));
		showtips('tasks_tips');
		showformheader('tasks');
		showtableheader('config', 'fixpadding');
		showsetting('tasks_on', 'taskonnew', $taskon, 'radio');
		showtablefooter();
		showtableheader('admin', 'fixpadding');
		showsubtitle(array('name', 'available', 'settings_access_access_newbietask', 'display_order', 'type', 'tasks_reward', 'time', ''));

		$starttasks = array();
		$query = $db->query("SELECT * FROM {$tablepre}tasks ORDER BY displayorder, taskid DESC");
		while($task = $db->fetch_array($query)) {

			if($task['reward'] == 'credit') {
				$reward = lang('credits').' '.$extcredits[$task['prize']]['title'].' '.$task['bonus'].' '.$extcredits[$task['prize']]['unit'];
			} elseif($task['reward'] == 'magic') {
				$magicname = $db->result_first("SELECT name FROM {$tablepre}magics WHERE magicid='$task[prize]'");
				$reward = lang('tasks_reward_magic').' '.$magicname.' '.$task['bonus'];
			} elseif($task['reward'] == 'medal') {
				$medalname = $db->result_first("SELECT name FROM {$tablepre}medals WHERE medalid='$task[prize]'");
				$reward = lang('medals').' '.$medalname.($task['bonus'] ? ' '.lang('validity').$task['bonus'].' '.lang('days') : '');
			} elseif($task['reward'] == 'invite') {
				$reward = lang('tasks_reward_invite').' '.$task['prize'].($task['bonus'] ? ' '.lang('validity').$task['bonus'].' '.lang('days') : '');
			} elseif($task['reward'] == 'group') {
				$grouptitle = $db->result_first("SELECT grouptitle FROM {$tablepre}usergroups WHERE groupid='$task[prize]'");
				$reward = lang('usergroup').' '.$grouptitle.($task['bonus'] ? ' '.lang('validity').' '.$task['bonus'].' '.lang('days') : '');
			} else {
				$reward = lang('none');
			}
			if($task['available'] == '1' && (!$task['starttime'] || $task['starttime'] <= $timestamp) && (!$task['endtime'] || $task['endtime'] > $timestamp)) {
				$starttasks[] = $task['taskid'];
			}

			$checked = $task['available'] ? ' checked="checked"' : '';
			$checked2 = $task['taskid'] == $newbietask ? ' checked="checked"' : '';

			if($task['starttime'] && $task['endtime']) {
				$task['time'] = gmdate('y-m-d', $task['starttime'] + $timeoffset * 3600).' ~ '.gmdate('y-m-d', $task['endtime'] + $timeoffset * 3600);
			} elseif($task['starttime'] && !$task['endtime']) {
				$task['time'] = gmdate('y-m-d', $task['starttime'] + $timeoffset * 3600).' '.lang('tasks_online');
			} elseif(!$task['starttime'] && $task['endtime']) {
				$task['time'] = gmdate('y-m-d', $task['endtime'] + $timeoffset * 3600).' '.lang('tasks_offline');
			} else {
				$task['time'] = lang('nolimit');
			}

			showtablerow('', array('', '', '', 'class="td25"'), array(
				"<input type=\"text\" class=\"txt\" name=\"namenew[$task[taskid]]\" size=\"20\" value=\"$task[name]\">",
				"<input class=\"checkbox\" type=\"checkbox\" name=\"availablenew[$task[taskid]]\" value=\"1\"$checked>",
				"<input class=\"checkbox\" type=\"checkbox\" name=\"newbie[$task[taskid]]\" id=\"newbie[$task[taskid]]\" value=\"1\"$checked2 onclick=\"if(this.checked) {var objs = this.form.getElementsByTagName('input'); for(var i = 0; i< objs.length; i++) {if(objs[i].id.substr(0, 6) == 'newbie') objs[i].checked = false; this.checked = true;}}\">",
				'<input type="text" class="txt" name="displayordernew['.$task['taskid'].']" value="'.$task['displayorder'].'" size="3" />',
				in_array($task['scriptname'], $custom_scripts) ? $custom_types[$task['scriptname']]['name'] : lang('nav_task_'.$task['scriptname']),
				$reward,
				$task['time'],
				"<a href=\"$BASESCRIPT?action=tasks&operation=edit&id=$task[taskid]\" class=\"act\">$lang[edit]</a>",
				"<a href=\"$BASESCRIPT?action=tasks&operation=delete&id=$task[taskid]\" class=\"act\">$lang[delete]</a>"
			));

		}

		if($starttasks) {
			$db->query("UPDATE {$tablepre}tasks SET available='2' WHERE taskid IN (".implodeids($starttasks).")", 'UNBUFFERED');
		}

		showsubmit('tasksubmit', 'submit');
		showtablefooter();
		showformfooter();

	} else {

		if(is_array($namenew)) {
			foreach($namenew as $id => $name) {
				$availablenew[$id] = $availablenew[$id] && (!$starttimenew[$id] || $starttimenew[$id] <= $timestamp) && (!$endtimenew[$id] || $endtimenew[$id] > $timestamp) ? 2 : $availablenew[$id];
				$db->query("UPDATE {$tablepre}tasks SET name='".dhtmlspecialchars($namenew[$id])."', available='$availablenew[$id]', displayorder='$displayordernew[$id]' WHERE taskid='$id'");
			}
		}

		$newbietaskid = 0;
		$updatesettings = FALSE;
		if($taskonnew != $taskon) {
			$updatesettings = TRUE;
			$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('taskon', '$taskonnew')");
		}

		if(is_array($newbie) && count($newbie) == '1') {
			$newbietaskid = key($newbie);
			$db->query("UPDATE {$tablepre}tasks SET available='2' WHERE taskid='$newbietaskid'");
		}

		if($newbietaskid != intval($newbietask)) {
			$updatesettings = TRUE;
			$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('newbietask', '$newbietaskid')");
		}

		$updatesettings && updatecache('settings');

		cpmsg('tasks_succeed', $BASESCRIPT.'?action=tasks', 'succeed');

	}

} elseif($operation == 'add' && $script) {

	if(!in_array($script, $sys_scripts)) {
		if(in_array($script, $custom_scripts)) {
			include language('tasks');
			if((!@include DISCUZ_ROOT.'./include/tasks/'.$script.'.cfg.php') || (!@include DISCUZ_ROOT.'./include/tasks/'.$script.'.inc.php')) {
				cpmsg('tasks_noscript_or_nocfg', '', 'error');
			}
		} else {
			cpmsg('undefined_action', '', 'error');
		}
	}

	if(!submitcheck('addsubmit')) {

		echo '<script type="text/javascript" src="include/js/calendar.js"></script>';
		shownav('extended', 'nav_tasks');
		showsubmenu('nav_tasks', array(
			array('admin', 'tasks', 0),
			array(array('menu' => 'add', 'submenu' => $submenus), '', 1),
			array('nav_task_type', 'tasks&operation=type', 0)
		));

		if(in_array($script, $sys_scripts)) {
			showtips('tasks_tips_add_'.$script);
			$task_name = $task_description = $task_icon = $task_period = '';
		}

		showformheader('tasks&operation=add&script='.$script);
		showtableheader('tasks_add_basic', 'fixpadding');
		showsetting('tasks_add_name', 'name', $task_name, 'text');
		showsetting('tasks_add_desc', 'description', $task_description, 'textarea');
		showsetting('tasks_add_icon', 'icon', $task_icon, 'text');
		showsetting('tasks_add_starttime', 'starttime', '', 'calendar');
		showsetting('tasks_add_endtime', 'endtime', '', 'calendar');
		showsetting('tasks_add_period', 'period', $task_period, 'text');
		showsetting('tasks_add_reward', array('reward', array(
			array('', lang('none'), array('reward_credit' => 'none', 'reward_magic' => 'none', 'reward_medal' => 'none', 'reward_invite' => 'none', 'reward_group' => 'none')),
			array('credit', lang('credits'), array('reward_credit' => '', 'reward_magic' => 'none', 'reward_medal' => 'none', 'reward_invite' => 'none', 'reward_group' => 'none')),
			$magicstatus ? array('magic', lang('tasks_reward_magic'), array('reward_credit' => 'none', 'reward_magic' => '', 'reward_medal' => 'none', 'reward_invite' => 'none', 'reward_group' => 'none')) : '',
			$medalstatus ? array('medal', lang('medals'), array('reward_credit' => 'none', 'reward_magic' => 'none', 'reward_medal' => '', 'reward_invite' => 'none', 'reward_group' => 'none')) : '',
			$regstatus > 1 ? array('invite', lang('tasks_reward_invite'), array('reward_credit' => 'none', 'reward_magic' => 'none', 'reward_medal' => 'none', 'reward_invite' => '', 'reward_group' => 'none')) : '',
			array('group', lang('tasks_add_group'), array('reward_credit' => 'none', 'reward_magic' => 'none', 'reward_medal' => 'none', 'reward_invite' => 'none', 'reward_group' => ''))
		)), '', 'mradio');

		$extcreditarray = array(array(0, lang('select')));
		foreach($extcredits as $creditid => $extcredit) {
			$extcreditarray[] = array($creditid, $extcredit['title']);
		}

		showtagheader('tbody', 'reward_credit');
		showsetting('tasks_add_extcredit', array('prize_credit', $extcreditarray), 0, 'select');
		showsetting('tasks_add_credits', 'bonus_credit', '0', 'text');
		showtagfooter('tbody');

		showtagheader('tbody', 'reward_magic');
		showsetting('tasks_add_magicname', array('prize_magic', fetcharray('magicid', 'name', 'magics', "available='1' ORDER BY displayorder")), 0, 'select');
		showsetting('tasks_add_magicnum', 'bonus_magic', '0', 'text');
		showtagfooter('tbody');

		showtagheader('tbody', 'reward_medal');
		showsetting('tasks_add_medalname', array('prize_medal', fetcharray('medalid', 'name', 'medals', "available='1' ORDER BY displayorder")), 0, 'select');
		showsetting('tasks_add_medalexp', 'bonus_medal', '', 'text');
		showtagfooter('tbody');

		showtagheader('tbody', 'reward_invite');
		showsetting('tasks_add_invitenum', 'prize_invite', '1', 'text');
		showsetting('tasks_add_inviteexp', 'bonus_invite', '10', 'text');
		showtagfooter('tbody');

		showtagheader('tbody', 'reward_group');
		showsetting('tasks_add_group', array('prize_group', fetcharray('groupid', 'grouptitle', 'usergroups', "type='special' AND radminid='0'")), 0, 'select');
		showsetting('tasks_add_groupexp', 'bonus_group', '', 'text');
		showtagfooter('tbody');

		showtitle('tasks_add_appyperm');
		showsetting('tasks_add_groupperm', array('grouplimit', array(
			array('all', lang('tasks_add_group_all'), array('specialgroup' => 'none')),
			array('member', lang('tasks_add_group_member'), array('specialgroup' => 'none')),
			array('admin', lang('tasks_add_group_admin'), array('specialgroup' => 'none')),
			array('special', lang('tasks_add_group_special'), array('specialgroup' => ''))
		)), 'all', 'mradio');
		showtagheader('tbody', 'specialgroup');
		showsetting('tasks_add_usergroup', array('applyperm[]', fetcharray('groupid', 'grouptitle', 'usergroups', '')), 0, 'mselect');
		showtagfooter('tbody');
		showsetting('tasks_add_relatedtask', array('relatedtaskid', fetcharray('taskid', 'name', 'tasks', "available='2' ORDER BY displayorder, taskid DESC")), 0, 'select');
		showsetting('tasks_add_maxnum', 'tasklimits', '', 'text');

		if(in_array($script, $custom_scripts)) {
			if(is_array($task_conditions)) {
				foreach($task_conditions as $taskvar) {
					if($taskvar['sort'] == 'apply' && $taskvar['name']) {
						if($taskvar['variable']) {
							showsetting($taskvar['name'], $taskvar['variable'], $taskvar['value'], 'text', '', 0, $taskvar['description']);
						} else {
							showsetting($taskvar['name'], $taskvar['variable'], $taskvar['value'], $taskvar['description']);
						}
					}
				}
			}
		}

		showtitle('tasks_add_conditions');

		if($script == 'member') {

			showsetting('tasks_add_limit_act', array('act', array(
				array('buddy', lang('tasks_add_act_buddy'), array('timelimit' => 'none')),
				array('favorite', lang('tasks_add_act_favorite'), array('timelimit' => 'none')),
				array('magic', lang('tasks_add_act_magic'), array('timelimit' => ''))
			)), 'buddy', 'mradio');
			showsetting('tasks_add_limit_num', 'num', '', 'text');
			showtagheader('tbody', 'timelimit');
			showsetting('tasks_add_limit_time', 'time', '', 'text');
			showtagfooter('tbody');

		} elseif($script == 'post') {

			showsetting('tasks_add_limit_act', array('act', array(
				array('newthread', lang('tasks_add_act_newthread'), array('forumlimit' => '', 'speciallimit' => 'none')),
				array('newreply', lang('tasks_add_act_newreply'), array('forumlimit' => 'none', 'speciallimit' => '')),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -