XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
SmilesListAction.class.php
1<?php
11
12if (!defined('XOOPS_ROOT_PATH')) {
13 exit();
14}
15
16require_once XOOPS_MODULE_PATH . '/legacy/class/AbstractListAction.class.php';
17require_once XOOPS_MODULE_PATH . '/legacy/admin/forms/SmilesFilterForm.class.php';
18require_once XOOPS_MODULE_PATH . '/legacy/admin/forms/SmilesListForm.class.php';
19
21{
22 public $mSmilesObjects = [];
23 public $mActionForm = null;
24 public $mpageArr = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100, 0];
25
26 public function prepare(&$controller, &$xoopsUser)
27 {
28 $this->mActionForm =new Legacy_SmilesListForm();
29 $this->mActionForm->prepare();
30 }
31
32 public function &_getHandler()
33 {
34 $handler =& xoops_getmodulehandler('smiles');
35 return $handler;
36 }
37
38 public function &_getPageNavi()
39 {
40 $navi =new XCube_PageNavigator($this->_getBaseUrl(), XCUBE_PAGENAVI_START | XCUBE_PAGENAVI_PERPAGE);
41
42 $root =& XCube_Root::getSingleton();
43 $perpage = $root->mContext->mRequest->getRequest($navi->mPrefix.'perpage');
44
45 if (isset($perpage) && 0 === (int)$perpage) {
46 $navi->setPerpage(0);
47 }
48 return $navi;
49 }
50
51 public function &_getFilterForm()
52 {
53 $filter =new Legacy_SmilesFilterForm($this->_getPageNavi(), $this->_getHandler());
54 return $filter;
55 }
56
57 public function _getBaseUrl()
58 {
59 return './index.php?action=SmilesList';
60 }
61
62 public function executeViewIndex(&$controller, &$xoopsUser, &$render)
63 {
64 $render->setTemplateName('smiles_list.html');
65 $render->setAttribute('objects', $this->mObjects);
66 $render->setAttribute('pageNavi', $this->mFilter->mNavi);
67 $render->setAttribute('actionForm', $this->mActionForm);
68 $render->setAttribute('pageArr', $this->mpageArr);
69 $render->setAttribute('filterForm', $this->mFilter);
70
71 $smiles_handler =& $this->_getHandler();
72 $smiles_total = $smiles_handler->getCount();
73 $display_smiles_total = $smiles_handler->getCount(new Criteria('display', 1));
74 $render->setAttribute('SmilesTotal', $smiles_total);
75 $render->setAttribute('displaySmilesTotal', $display_smiles_total);
76 $render->setAttribute('notdisplaySmilesTotal', $smiles_total - $display_smiles_total);
77 }
78
79 public function execute(&$controller, &$xoopsUser)
80 {
81 $form_cancel = $controller->mRoot->mContext->mRequest->getRequest('_form_control_cancel');
82 if (null !== $form_cancel) {
83 return LEGACY_FRAME_VIEW_CANCEL;
84 }
85
86 $this->mActionForm->fetch();
87 $this->mActionForm->validate();
88
89 if ($this->mActionForm->hasError()) {
90 return $this->_processConfirm($controller, $xoopsUser);
91 } else {
92 return $this->_processSave($controller, $xoopsUser);
93 }
94 }
95
96 public function _processConfirm(&$controller, &$xoopsUser)
97 {
98 $codeArr = $this->mActionForm->get('code');
99 $smilesHandler =& xoops_getmodulehandler('smiles');
100 //
101 // Do mapping.
102 //
103 foreach (array_keys($codeArr) as $sid) {
104 $smiles =& $smilesHandler->get($sid);
105 if (is_object($smiles)) {
106 $this->mSmilesObjects[$sid] =& $smiles;
107 }
108 unset($smiles);
109 }
110
111 return LEGACY_FRAME_VIEW_INPUT;
112 }
113
114 public function _processSave(&$controller, &$xoopsUser)
115 {
116 $codeArr = $this->mActionForm->get('code');
117 $smilesHandler =& xoops_getmodulehandler('smiles');
118
119 foreach (array_keys($codeArr) as $sid) {
120 $smiles =& $smilesHandler->get($sid);
121 if (is_object($smiles)) {
122 $olddata['code'] = $smiles->get('code');
123 $olddata['emotion'] = $smiles->get('emotion');
124 $olddata['display'] = $smiles->get('display');
125 $newdata['code'] = $this->mActionForm->get('code', $sid);
126 $newdata['emotion'] = $this->mActionForm->get('emotion', $sid);
127 $newdata['display'] = $this->mActionForm->get('display', $sid);
128 if (count(array_diff_assoc($olddata, $newdata)) > 0) {
129 $smiles->set('code', $this->mActionForm->get('code', $sid));
130 $smiles->set('emotion', $this->mActionForm->get('emotion', $sid));
131 $smiles->set('display', $this->mActionForm->get('display', $sid));
132 if (!$smilesHandler->insert($smiles)) {
133 return LEGACY_FRAME_VIEW_ERROR;
134 }
135 }//count if
136 }//object if
137 }//foreach
138
139 foreach (array_keys($codeArr) as $sid) {
140 if (1 === $this->mActionForm->get('delete', $sid)) {
141 $smiles =& $smilesHandler->get($sid);
142 if (is_object($smiles)) {
143 if (!$smilesHandler->delete($smiles)) {
144 return LEGACY_FRAME_VIEW_ERROR;
145 }
146 }
147 }
148 }
149 return LEGACY_FRAME_VIEW_SUCCESS;
150 }
151
158 public function executeViewInput(&$controller, &$xoopsUser, &$render)
159 {
160 $render->setTemplateName('smiles_list_confirm.html');
161 $render->setAttribute('smilesObjects', $this->mSmilesObjects);
162 $render->setAttribute('actionForm', $this->mActionForm);
163
164 //
165 // To support a template writer, this send the list of mid that
166 // actionForm kept.
167 //
168 $t_arr = $this->mActionForm->get('code');
169 $render->setAttribute('sids', array_keys($t_arr));
170 }
171
172
173 public function executeViewSuccess(&$controller, &$xoopsUser, &$renderer)
174 {
175 $controller->executeForward('./index.php?action=SmilesList');
176 }
177
178 public function executeViewError(&$controller, &$xoopsUser, &$renderer)
179 {
180 $controller->executeRedirect('./index.php?action=SmilesList', 1, _MD_LEGACY_ERROR_DBUPDATE_FAILED);
181 }
182
183 public function executeViewCancel(&$controller, &$xoopsUser, &$renderer)
184 {
185 $controller->executeForward('./index.php?action=SmilesList');
186 }
187}
executeViewInput(&$controller, &$xoopsUser, &$render)