1: <?php
2: 3: 4: 5:
6: if (!defined('XOOPS_ROOT_PATH')) exit();
7: require_once XOOPS_ROOT_PATH.'/core/XCube_ActionForm.class.php';
8: require_once XOOPS_MODULE_PATH.'/legacy/class/Legacy_Validator.class.php';
9:
10: class MessageForm extends XCube_ActionForm
11: {
12: public $fuid = 0;
13:
14: public function __construct()
15: {
16: parent::XCube_ActionForm();
17: }
18:
19: public function getTokenName()
20: {
21: return 'module.message.NewMessage.TOKEN';
22: }
23:
24: private function set_Property($key, $classname = 'XCube_StringProperty')
25: {
26: $this->mFormProperties[$key] = new $classname($key);
27: }
28:
29: public function prepare()
30: {
31: $this->set_Property('uname');
32: $this->set_Property('title');
33: $this->set_Property('Legacy_Event_User_Preview');
34: $this->set_Property('Legacy_Event_User_Submit');
35: $this->set_Property('note', 'XCube_TextProperty');
36:
37: $this->mFieldProperties['uname'] = new XCube_FieldProperty($this);
38: $this->mFieldProperties['uname']->setDependsByArray(array('required', 'maxlength'));
39: $this->mFieldProperties['uname']->addMessage('required', _MD_MESSAGE_FORMERROR1);
40: $this->mFieldProperties['uname']->addMessage('maxlength', _MD_MESSAGE_FORMERROR2);
41: $this->mFieldProperties['uname']->addVar('maxlength', '30');
42:
43: $this->mFieldProperties['title'] = new XCube_FieldProperty($this);
44: $this->mFieldProperties['title']->setDependsByArray(array('required', 'maxlength'));
45: $this->mFieldProperties['title']->addMessage('required', _MD_MESSAGE_FORMERROR3);
46: $this->mFieldProperties['title']->addMessage('maxlength', _MD_MESSAGE_FORMERROR4);
47: $this->mFieldProperties['title']->addVar('maxlength', '100');
48:
49: $this->mFieldProperties['note'] = new XCube_FieldProperty($this);
50: $this->mFieldProperties['note']->setDependsByArray(array('required'));
51: $this->mFieldProperties['note']->addMessage('required', _MD_MESSAGE_FORMERROR5);
52: }
53:
54: public function validateUname()
55: {
56: if ( $this->get('uname') != "" ) {
57: $uname = mb_strcut($this->get('uname'), 0, 30);
58: $userhand = xoops_gethandler('user');
59: $criteria = new CriteriaCompo(new Criteria('uname', $uname));
60: $uobj = $userhand->getObjects($criteria);
61: if ( isset($uobj) && is_array($uobj) && count($uobj) == 1) {
62: $this->fuid = $uobj[0]->get('uid');
63: } else {
64: $this->fuid = 0;
65: $this->addErrorMessage(_MD_MESSAGE_FORMERROR6);
66: }
67: $this->set('uname', $uname);
68: }
69: }
70:
71: public function getShow($name, $type = 'toShow')
72: {
73: if ( isset($this->mFormProperties[$name]) ) {
74: $root = XCube_Root::getSingleton();
75: $textFilter = $root->getTextFilter();
76: return $textFilter->$type($this->mFormProperties[$name]->getValue(null));
77: }
78: return "";
79: }
80:
81: public function update(&$obj)
82: {
83: $root = XCube_Root::getSingleton();
84: $obj->set('uid', $this->fuid);
85: $obj->set('from_uid', $root->mContext->mXoopsUser->get('uid'));
86: $obj->set('title', $this->get('title'));
87: $obj->set('message', $this->get('note'));
88: $obj->set('utime', time());
89: }
90:
91: public function setRes(&$obj)
92: {
93: $title = $obj->get('title','n');
94: if (!preg_match("/^Re:/i", $title)) {
95: $title = 'Re: '.$title;
96: }
97:
98: $userhand = xoops_gethandler('user');
99: $uobj = $userhand->get($obj->get('from_uid'));
100: if ( is_object($uobj) ) {
101: $this->set('uname', $uobj->get('uname'));
102: $this->set('title', $title);
103: $this->set('note', '[quote]'.$obj->get('message').'[/quote]');
104: return true;
105: }
106: return false;
107: }
108:
109: public function setUser(&$user)
110: {
111: $this->set('uname', $user->get('uname'));
112: }
113: }
114: ?>
115: