1: <?php
2: if (!defined('XOOPS_ROOT_PATH')) exit();
3:
4: class blacklistAction extends AbstractAction
5: {
6: private $mActionForm;
7: private $blackuser = array();
8:
9: public function __construct()
10: {
11: parent::__construct();
12: }
13:
14: public function execute()
15: {
16: $this->setUrl('index.php?action=blacklist');
17: $modobj = $this->getSettings();
18: $uid = intval($this->root->mContext->mRequest->getRequest('uid'));
19: if ( $uid != 0 ) {
20: $this->addblklist($modobj, $uid);
21: } else {
22: switch ($this->root->mContext->mRequest->getRequest('cmd')) {
23: case 'add':
24: $modHand = xoops_getmodulehandler('settings', _MY_DIRNAME);
25: $uid = $modHand->getuidTouname($this->root->mContext->mRequest->getRequest('uname'));
26: if ( $uid > 0 ) {
27: $this->addblklist($modobj, $uid);
28: } else {
29: $this->setErr(_MD_MESSAGE_SETTINGS_MSG19);
30: }
31: break;
32: case 'del':
33: $this->delblklist($modobj);
34: break;
35: default:
36: if ( $modobj->get('blacklist') != "" ) {
37: $blusers = explode(',', $modobj->get('blacklist'));
38: foreach ( $blusers as $bluid ) {
39: $this->blackuser[$bluid] = $this->getLinkUnameFromId($bluid);
40: }
41: }
42: }
43: }
44: }
45:
46: private function delblklist($modobj)
47: {
48: $deluid = $this->root->mContext->mRequest->getRequest('deluid');
49: if ( !is_array($deluid) || count($deluid) == 0 ) {
50: $this->setErr(_MD_MESSAGE_DELETEMSG2);
51: return;
52: }
53:
54: $adduid = false;
55: if ( !empty($deluid) && is_array($deluid) ) {
56: $modHand = xoops_getmodulehandler('settings', _MY_DIRNAME);
57: $lists = explode(',', $modobj->get('blacklist'));
58: foreach ($lists as $auid) {
59: if ( !in_array($auid, $deluid) ) {
60: if ( $modHand->chkUser($auid) ) {
61: $adduid[] = $auid;
62: }
63: }
64: }
65: if ( is_array($adduid) ) {
66: $modobj->set('blacklist', implode(',', $adduid));
67: } else {
68: $modobj->set('blacklist', "");
69: }
70: if ( $modHand->insert($modobj) ) {
71: $this->setErr(_MD_MESSAGE_SETTINGS_MSG16);
72: } else {
73: $this->setErr(_MD_MESSAGE_SETTINGS_MSG17);
74: }
75: }
76: }
77:
78: private function addblklist($modobj, $uid)
79: {
80: $modHand = xoops_getmodulehandler('settings', _MY_DIRNAME);
81: $blackuser = $this->getLinkUnameFromId($uid);
82: $lists = explode(',', $modobj->get('blacklist'));
83: if ( in_array($uid, $lists) ) {
84: $this->setErr(XCube_Utils::formatString(_MD_MESSAGE_SETTINGS_MSG14, $blackuser));
85: return;
86: }
87: if ( $lists[0] == "" ) {
88: $modobj->set('blacklist', $uid);
89: } else {
90: $lists[] = $uid;
91: $modobj->set('blacklist', implode(',', $lists));
92: }
93: if ( $modHand->insert($modobj, true) ) {
94: $this->setErr(XCube_Utils::formatString(_MD_MESSAGE_SETTINGS_MSG12, $blackuser));
95: } else {
96: $this->setErr(XCube_Utils::formatString(_MD_MESSAGE_SETTINGS_MSG13, $blackuser));
97: }
98: }
99:
100: public function executeView(&$render)
101: {
102: $render->setTemplateName('message_blaclist.html');
103: $render->setAttribute('blackuser', $this->blackuser);
104: }
105: }
106: ?>
107: