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