1: <?php
2:
3: if (!defined('XOOPS_ROOT_PATH')) exit();
4:
5: define ("LEGACYRENDER_FRAME_PERFORM_SUCCESS", 1);
6: define ("LEGACYRENDER_FRAME_PERFORM_FAIL", 2);
7: define ("LEGACYRENDER_FRAME_INIT_SUCCESS", 3);
8:
9: define ("LEGACYRENDER_FRAME_VIEW_NONE", 1);
10: define ("LEGACYRENDER_FRAME_VIEW_SUCCESS", 2);
11: define ("LEGACYRENDER_FRAME_VIEW_ERROR", 3);
12: define ("LEGACYRENDER_FRAME_VIEW_INDEX", 4);
13: define ("LEGACYRENDER_FRAME_VIEW_INPUT", 5);
14: define ("LEGACYRENDER_FRAME_VIEW_PREVIEW", 6);
15: define ("LEGACYRENDER_FRAME_VIEW_CANCEL", 7);
16:
17: class LegacyRender_ActionFrame
18: {
19: var $mActionName = null;
20: var $mAction = null;
21: var $mAdminFlag = null;
22:
23: 24: 25:
26: var $mCreateAction = null;
27:
28: function LegacyRender_ActionFrame($admin)
29: {
30: $this->mAdminFlag = $admin;
31: $this->mCreateAction =new XCube_Delegate();
32: $this->mCreateAction->register('LegacyRender_ActionFrame.CreateAction');
33: $this->mCreateAction->add(array(&$this, '_createAction'));
34: }
35:
36: function setActionName($name)
37: {
38: $this->mActionName = $name;
39:
40:
41:
42:
43: $root =& XCube_Root::getSingleton();
44: $root->mContext->setAttribute('actionName', $name);
45: $root->mContext->mModule->setAttribute('actionName', $name);
46: }
47:
48: function _createAction(&$actionFrame)
49: {
50: if (is_object($actionFrame->mAction)) {
51: return;
52: }
53:
54:
55:
56:
57: $className = "LegacyRender_" . ucfirst($actionFrame->mActionName) . "Action";
58: $fileName = ucfirst($actionFrame->mActionName) . "Action";
59: if ($actionFrame->mAdminFlag) {
60: $fileName = XOOPS_MODULE_PATH . "/legacyRender/admin/actions/${fileName}.class.php";
61: }
62: else {
63: $fileName = XOOPS_MODULE_PATH . "/legacyRender/actions/${fileName}.class.php";
64: }
65:
66: if (!file_exists($fileName)) {
67: die();
68: }
69:
70: require_once $fileName;
71:
72: if (XC_CLASS_EXISTS($className)) {
73: $actionFrame->mAction =new $className($actionFrame->mAdminFlag);
74: }
75: }
76:
77: function execute(&$controller)
78: {
79: if (!preg_match("/^\w+$/", $this->mActionName)) {
80: die();
81: }
82:
83:
84:
85:
86: $this->mCreateAction->call(new XCube_Ref($this));
87:
88: if (!(is_object($this->mAction) && is_a($this->mAction, 'LegacyRender_Action'))) {
89: die();
90: }
91:
92: $handler =& xoops_gethandler('config');
93: $moduleConfig =& $handler->getConfigsByDirname('legacyRender');
94:
95: $this->mAction->prepare($controller, $controller->mRoot->mContext->mXoopsUser, $moduleConfig);
96:
97: if (!$this->mAction->hasPermission($controller, $controller->mRoot->mContext->mXoopsUser)) {
98: if ($this->mAdminFlag) {
99: $controller->executeForward(XOOPS_URL . "/admin.php");
100: }
101: else {
102: $controller->executeForward(XOOPS_URL);
103: }
104: }
105:
106: if (xoops_getenv("REQUEST_METHOD") == "POST") {
107: $viewStatus = $this->mAction->execute($controller, $controller->mRoot->mContext->mXoopsUser);
108: }
109: else {
110: $viewStatus = $this->mAction->getDefaultView($controller, $controller->mRoot->mContext->mXoopsUser);
111: }
112:
113: switch($viewStatus) {
114: case LEGACYRENDER_FRAME_VIEW_SUCCESS:
115: $this->mAction->executeViewSuccess($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget());
116: break;
117:
118: case LEGACYRENDER_FRAME_VIEW_ERROR:
119: $this->mAction->executeViewError($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget());
120: break;
121:
122: case LEGACYRENDER_FRAME_VIEW_INDEX:
123: $this->mAction->executeViewIndex($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget());
124: break;
125:
126: case LEGACYRENDER_FRAME_VIEW_INPUT:
127: $this->mAction->executeViewInput($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget());
128: break;
129:
130: case LEGACYRENDER_FRAME_VIEW_PREVIEW:
131: $this->mAction->executeViewPreview($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget());
132: break;
133:
134: case LEGACYRENDER_FRAME_VIEW_CANCEL:
135: $this->mAction->executeViewCancel($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget());
136: break;
137: }
138: }
139: }
140:
141: class LegacyRender_Action
142: {
143: 144: 145:
146: var $_mAdminFlag = false;
147:
148: function LegacyRender_Action($adminFlag = false)
149: {
150: $this->_mAdminFlag = $adminFlag;
151: }
152:
153: function hasPermission(&$controller, &$xoopsUser)
154: {
155: return true;
156: }
157:
158: function prepare(&$controller, &$xoopsUser, $moduleConfig)
159: {
160: }
161:
162: function getDefaultView(&$controller, &$xoopsUser)
163: {
164: return LEGACYRENDER_FRAME_VIEW_NONE;
165: }
166:
167: function execute(&$controller, &$xoopsUser)
168: {
169: return LEGACYRENDER_FRAME_VIEW_NONE;
170: }
171:
172: function executeViewSuccess(&$controller, &$xoopsUser, &$render)
173: {
174: }
175:
176: function executeViewError(&$controller, &$xoopsUser, &$render)
177: {
178: }
179:
180: function executeViewIndex(&$controller, &$xoopsUser, &$render)
181: {
182: }
183:
184: function executeViewInput(&$controller, &$xoopsUser, &$render)
185: {
186: }
187:
188: function executeViewPreview(&$controller, &$xoopsUser, &$render)
189: {
190: }
191:
192: function executeViewCancel(&$controller, &$xoopsUser, &$render)
193: {
194: }
195: }
196:
197: ?>
198: