XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
BlockEditForm.class.php
1<?php
11
12if (!defined('XOOPS_ROOT_PATH')) {
13 exit();
14}
15
16require_once XOOPS_ROOT_PATH . '/core/XCube_ActionForm.class.php';
17require_once XOOPS_MODULE_PATH . '/legacy/class/Legacy_Validator.class.php';
18
20{
21 public function getTokenName()
22 {
23 return 'module.legacy.BlockEditForm.TOKEN' . $this->get('bid');
24 }
25
26 public function prepare()
27 {
28 //
29 // Set form properties
30 //
31 $this->mFormProperties['bid'] =new XCube_IntProperty('bid');
32 $this->mFormProperties['options'] =new XCube_StringArrayProperty('options');
33 $this->mFormProperties['title'] =new XCube_StringProperty('title');
34 $this->mFormProperties['side'] =new XCube_IntProperty('side');
35 $this->mFormProperties['weight'] =new XCube_IntProperty('weight');
36 $this->mFormProperties['bcachetime'] =new XCube_IntProperty('bcachetime');
37 $this->mFormProperties['bmodule'] =new XCube_IntArrayProperty('bmodule');
38 $this->mFormProperties['groupid'] =new XCube_IntArrayProperty('groupid');
39
40 //
41 // Set field properties
42 //
43 $this->mFieldProperties['bid'] =new XCube_FieldProperty($this);
44 $this->mFieldProperties['bid']->setDependsByArray(['required']);
45 $this->mFieldProperties['bid']->addMessage('required', _MD_LEGACY_ERROR_REQUIRED, _AD_LEGACY_LANG_BID);
46
47 $this->mFieldProperties['title'] =new XCube_FieldProperty($this);
48 $this->mFieldProperties['title']->setDependsByArray(['required', 'maxlength']);
49 $this->mFieldProperties['title']->addMessage('required', _MD_LEGACY_ERROR_REQUIRED, _AD_LEGACY_LANG_TITLE, '191');
50 $this->mFieldProperties['title']->addMessage('maxlength', _MD_LEGACY_ERROR_MAXLENGTH, _AD_LEGACY_LANG_TITLE, '191');
51 $this->mFieldProperties['title']->addVar('maxlength', '191');
52
53 $this->mFieldProperties['side'] =new XCube_FieldProperty($this);
54 $this->mFieldProperties['side']->setDependsByArray(['required', 'objectExist']);
55 $this->mFieldProperties['side']->addMessage('required', _MD_LEGACY_ERROR_REQUIRED, _AD_LEGACY_LANG_SIDE);
56 $this->mFieldProperties['side']->addMessage('objectExist', _AD_LEGACY_ERROR_OBJECTEXIST, _AD_LEGACY_LANG_SIDE);
57 $this->mFieldProperties['side']->addVar('handler', 'columnside');
58 $this->mFieldProperties['side']->addVar('module', 'legacy');
59
60 $this->mFieldProperties['weight'] =new XCube_FieldProperty($this);
61 $this->mFieldProperties['weight']->setDependsByArray(['required', 'intRange']);
62 $this->mFieldProperties['weight']->addMessage('required', _MD_LEGACY_ERROR_REQUIRED, _AD_LEGACY_LANG_WEIGHT);
63 $this->mFieldProperties['weight']->addMessage('intRange', _AD_LEGACY_ERROR_INTRANGE, _AD_LEGACY_LANG_WEIGHT);
64 $this->mFieldProperties['weight']->addVar('min', '0');
65 $this->mFieldProperties['weight']->addVar('max', '65535');
66
67 $this->mFieldProperties['bcachetime'] =new XCube_FieldProperty($this);
68 $this->mFieldProperties['bcachetime']->setDependsByArray(['required', 'objectExist']);
69 $this->mFieldProperties['bcachetime']->addMessage('required', _MD_LEGACY_ERROR_REQUIRED, _AD_LEGACY_LANG_BCACHETIME);
70 $this->mFieldProperties['bcachetime']->addMessage('objectExist', _AD_LEGACY_ERROR_OBJECTEXIST, _AD_LEGACY_LANG_BCACHETIME);
71 $this->mFieldProperties['bcachetime']->addVar('handler', 'cachetime');
72
73 $this->mFieldProperties['groupid'] =new XCube_FieldProperty($this);
74 $this->mFieldProperties['groupid']->setDependsByArray(['objectExist']);
75 $this->mFieldProperties['groupid']->addMessage('objectExist', _AD_LEGACY_ERROR_OBJECTEXIST, _AD_LEGACY_LANG_GROUPID);
76 $this->mFieldProperties['groupid']->addVar('handler', 'group');
77
78 /* @todo @gigamaster template */
79 $this->mFormProperties['template'] = new XCube_StringProperty('template');
80
81 $this->mFieldProperties['template'] = new XCube_FieldProperty($this);
82 $this->mFieldProperties['template']->setDependsByArray(['maxlength']);
83 $this->mFieldProperties['template']->addMessage('maxlength', _MD_LEGACY_ERROR_MAXLENGTH, _AD_LEGACY_LANG_TEMPLATE, '255');
84 $this->mFieldProperties['template']->addVar('maxlength', '255');
85
86
87 }
88
89 public function validateBmodule()
90 {
91 $bmodule = $this->get('bmodule');
92 if (!(is_countable($bmodule) ? count($bmodule) : 0)) {
93 $this->addErrorMessage(_AD_LEGACY_ERROR_BMODULE);
94 } else {
95 $handler =& xoops_gethandler('module');
96 foreach ($this->get('bmodule') as $mid) {
97 $module =& $handler->get($mid);
98 if (-1 !== $mid && 0 !== $mid && !is_object($module)) {
99 $this->addErrorMessage(XCube_Utils::formatString(_AD_LEGACY_ERROR_OBJECTEXIST, _AD_LEGACY_LANG_BMODULE));
100 }
101 }
102 }
103 }
104
105 public function validateGroupid()
106 {
107 $groupid = $this->get('groupid');
108 if (!(is_countable($groupid) ? count($groupid) : 0)) {
109 $this->addErrorMessage(_AD_LEGACY_ERROR_GROUPID);
110 }
111 }
112
113 public function load(&$obj)
114 {
115 $this->set('bid', $obj->get('bid'));
116 $this->set('title', $obj->get('title'));
117 $this->set('side', $obj->get('side'));
118 $this->set('weight', $obj->get('weight'));
119 $this->set('bcachetime', $obj->get('bcachetime'));
120
121/* @todo @gigamaster template */
122 $this->set('template', $obj->get('template'));
123
124 $i = 0;
125 foreach ($obj->mBmodule as $module) {
126 if (is_object($module)) {
127 $this->set('bmodule', $i++, $module->get('module_id'));
128 }
129 }
130
131 $i = 0;
132 foreach ($obj->mGroup as $group) {
133 if (is_object($group)) {
134 $this->set('groupid', $i++, $group->get('groupid'));
135 }
136 }
137 }
138
139 public function update(&$obj)
140 {
141 $obj->set('bid', $this->get('bid'));
142 $obj->set('title', $this->get('title'));
143 $obj->set('side', $this->get('side'));
144 $obj->set('weight', $this->get('weight'));
145 $obj->set('bcachetime', $this->get('bcachetime'));
146
147 $obj->set('last_modified', time());
148
149 /* @todo @gigamaster template */
150 $obj->set('template', $this->get('template'));
151 //
152 // Update options (XOOPS2 compatible)
153 //
154 $optionArr = $this->get('options');
155 for ($i = 0; $i < (is_countable($optionArr) ? count($optionArr) : 0); $i++) {
156 if (is_array($optionArr[$i])) {
157 $optionArr[$i] = implode(',', $optionArr[$i]);
158 }
159 }
160
161 $obj->set('options', implode('|', $optionArr));
162
163 $obj->mBmodule = [];
164 $handler =& xoops_getmodulehandler('block_module_link', 'legacy');
165 foreach ($this->get('bmodule') as $mid) {
166 $t_obj =& $handler->create();
167 $t_obj->set('block_id', $this->get('bid'));
168 $t_obj->set('module_id', $mid);
169 $obj->mBmodule[] =& $t_obj;
170 unset($t_obj);
171 }
172
173 $obj->mGroup = [];
174 $handler =& xoops_gethandler('group');
175 foreach ($this->get('groupid') as $groupid) {
176 $obj->mGroup[] =& $handler->get($groupid);
177 }
178 }
179}
update(&$obj)
[Abstract] Updates an object with properties values.
getTokenName()
Gets the token name of this actionform's token.
prepare()
[Abstract] Set up form properties and field properties.
load(&$obj)
[Abstract] Initializes properties' values from an object.
addErrorMessage( $message)
Adds a message to the form's error message buffer.
[Abstract] Used for validating member property values of XCube_ActionForm.
Represents int[] property. XCube_GenericArrayProperty<XCube_IntProperty>.
Represents int property.
Represents string[] property. XCube_GenericArrayProperty<XCube_StringProperty>.
Represents string property.
static formatString()
[Static] Formats string with special care for international.