<?php

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

	$Id: note.php 12163 2008-01-16 03:25:01Z heyond $
*/

!defined('IN_UC') && exit('Access Denied');

class control extends adminbase {

	var $apps = array();
	var $operations = array();
	function control() {
		$this->adminbase();
		$this->check_priv();
		if(!$this->user['isfounder'] && !$this->user['allowadminnote']) {
			$this->message('no_permission_for_this_module');
		}
		$this->load('note');
		$this->apps = $this->cache['apps'];

		/** note
		 * 1. 操作的名称，如：删除用户，测试连通，删除好友，取TAG数据，更新客户端缓存
		 * 2. 调用的应用的接口参数，拼接规则为 APP_URL/api/uc.php?action=test&ids=1,2,3
		 * 3. 回调的模块名称
		 * 4. 回调的模块方法（$appid, $content）
		 */
		$this->operations = array(
			'test'=>array('', 'action=test'),
			'deleteuser'=>array('', 'action=deleteuser'),
			'renameuser'=>array('', 'action=renameuser'),
			'deletefriend'=>array('', 'action=deletefriend'),
			'gettag'=>array('', 'action=gettag', 'tag', 'updatedata'),
			'getcreditsettings'=>array('', 'action=getcreditsettings'),
			'updatecreditsettings'=>array('', 'action=updatecreditsettings'),
			'updateclient'=>array('', 'action=updateclient'),
			'updatepw'=>array('', 'action=updatepw'),
			'updatebadwords'=>array('', 'action=updatebadwords'),
			'updatehosts'=>array('', 'action=updatehosts'),
			'updateapps'=>array('', 'action=updateapps'),
			'updatecredit'=>array('', 'action=updatecredit'),
		);
		$this->check_priv();
	}

	//note public 通知列表
	function onls() {
		$page = getgpc('page');
		$delete = getgpc('delete', 'P');
		$status = 0;
		if(!empty($delete)) {
			$_ENV['note']->delete_note($delete);
			$status = 2;
			$this->writelog('note_delete', "delete=".implode(',', $delete));
		}
		foreach($this->apps as $key=>$app) {
			if(empty($app['recvnote'])) {
				unset($this->apps[$key]);
			}
		}
		$num = $_ENV['note']->get_total_num(FALSE);
		$notelist = $_ENV['note']->get_list($page, UC_PPP, $num, FALSE);
		$multipage = $this->page($num, UC_PPP, $page, 'admin.php?m=note&a=ls');

		$this->view->assign('status', $status);
		$this->view->assign('applist', $this->apps);
		$this->_format_notlist(&$notelist);
		$this->view->assign('notelist', $notelist);
		$this->view->assign('multipage', $multipage);

		$this->view->display('admin_note');
	}

	function onsend() {
		$noteid = intval(getgpc('noteid'));
		$appid = intval(getgpc('appid'));
		$result = $_ENV['note']->sendone($appid, $noteid);
		if($result) {
			$this->writelog('note_send', "appid=$appid&noteid=$noteid");
			$this->message('note_succeed', $_SERVER['HTTP_REFERER']);
		} else {
			$this->writelog('note_send', 'failed');
			$this->message('note_false', $_SERVER['HTTP_REFERER']);
		}

	}

	function _note_status($status, $appid, $noteid, $args, $operation) {
		if($status > 0) {
			return '<font color="green">'.$this->lang['note_succeed'].'</font>';
		} elseif($status == 0) {
			$url = 'admin.php?m=note&a=send&appid='.$appid.'&noteid='.$noteid;
			return '<a href="'.$url.'" class="red">'.$this->lang['note_na'].'</a>';
		} elseif($status < 0) {
			$url = 'admin.php?m=note&a=send&appid='.$appid.'&noteid='.$noteid;
			return '<a href="'.$url.'"><font color="red">'.$this->lang['note_false'].(-$status).$this->lang['note_times'].'</font></a>';
		}
	}

	function _format_notlist(&$notelist) {
		if(is_array($notelist)) {
			foreach($notelist AS $key => $note) {
				$notelist[$key]['operation'] = $this->lang['note_'.$note['operation']];//$this->operations[$note['operation']][0];
				foreach($this->apps AS $appid => $app) {
					$notelist[$key]['status'][$appid] = $this->_note_status($note['app'.$appid], $appid, $note['noteid'], $note['args'], $note['operation']);
				}
			}
		}
	}

}

?>