1: <?php
2:
3:
4: if(!isset($config)) {
5: require_once '../util/AlphaConfig.inc';
6: $config = AlphaConfig::getInstance();
7:
8: require_once $config->get('app.root').'alpha/util/AlphaAutoLoader.inc';
9: }
10:
11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
56: class EditDEnum extends Edit implements AlphaControllerInterface {
57: 58: 59: 60: 61: 62:
63: private static $logger = null;
64:
65: 66: 67: 68: 69:
70: public function __construct() {
71: self::$logger = new Logger('EditDEnum');
72: self::$logger->debug('>>__construct()');
73:
74:
75: parent::__construct('Admin');
76:
77:
78: $this->setTitle('Editing a DEnum');
79: $this->setDescription('Page to edit a DEnum.');
80: $this->setKeywords('edit,DEnum');
81:
82: $this->BO = new DEnum();
83:
84: self::$logger->debug('<<__construct');
85: }
86:
87: 88: 89: 90: 91: 92:
93: public function doGET($params) {
94: self::$logger->debug('>>doGET($params=['.var_export($params, true).'])');
95:
96: global $config;
97:
98: echo AlphaView::displayPageHead($this);
99:
100: $message = $this->getStatusMessage();
101: if(!empty($message))
102: echo $message;
103:
104:
105: if (isset($params['oid'])) {
106: $BOoid = $params['oid'];
107: }else{
108: throw new IllegalArguementException('Could not load the DEnum object as an oid was not supplied!');
109: return;
110: }
111:
112: try {
113: $this->BO->load($BOoid);
114:
115: AlphaDAO::disconnect();
116:
117: $this->BOName = 'DEnum';
118:
119: $this->BOView = AlphaView::getInstance($this->BO);
120:
121: echo AlphaView::renderDeleteForm();
122:
123: echo $this->BOView->editView();
124: }catch(BONotFoundException $e) {
125: self::$logger->error('Unable to load the DEnum of id ['.$params['oid'].'], error was ['.$e->getMessage().']');
126: }
127:
128: echo AlphaView::displayPageFoot($this);
129:
130: self::$logger->debug('<<doGET');
131: }
132:
133: 134: 135: 136: 137: 138:
139: public function doPOST($params) {
140: self::$logger->debug('>>doPOST($params=['.var_export($params, true).'])');
141:
142: try {
143:
144: if(!$this->checkSecurityFields()) {
145: throw new SecurityException('This page cannot accept post data from remote servers!');
146: self::$logger->debug('<<doPOST');
147: }
148:
149:
150: if (isset($params['oid'])) {
151: $BOoid = $params['oid'];
152: }else{
153: throw new IllegalArguementException('Could not load the DEnum object as an oid was not supplied!');
154: }
155:
156: if (isset($params['saveBut'])) {
157: try {
158: $this->BO->load($BOoid);
159:
160: $this->BO->populateFromPost();
161:
162: AlphaDAO::begin();
163:
164: $this->BO->save();
165:
166: self::$logger->action('DEnum '.$this->BO->getOID().' saved');
167:
168:
169: $tmp = new DEnumItem();
170: $denumItems = $tmp->loadItems($this->BO->getID());
171:
172: foreach ($denumItems as $item) {
173: $item->set('value', $params['value_'.$item->getID()]);
174: $item->save();
175:
176: self::$logger->action('DEnumItem '.$item->getOID().' saved');
177: }
178:
179:
180: if(isset($params['new_value']) && trim($params['new_value']) != '') {
181: $newItem = new DEnumItem();
182: $newItem->set('value', $params['new_value']);
183: $newItem->set('DEnumID', $this->BO->getID());
184: $newItem->save();
185:
186: self::$logger->action('DEnumItem '.$newItem->getOID().' created');
187: }
188:
189: AlphaDAO::commit();
190:
191: $this->setStatusMessage(AlphaView::displayUpdateMessage(get_class($this->BO).' '.$this->BO->getID().' saved successfully.'));
192:
193: return $this->doGET($params);
194: }catch (FailedSaveException $e) {
195: self::$logger->error('Unable to save the DEnum of id ['.$params['oid'].'], error was ['.$e->getMessage().']');
196: AlphaDAO::rollback();
197: }
198:
199: AlphaDAO::disconnect();
200: }
201: }catch(SecurityException $e) {
202: $this->setStatusMessage(AlphaView::displayErrorMessage($e->getMessage()));
203: self::$logger->warn($e->getMessage());
204: }catch(IllegalArguementException $e) {
205: $this->setStatusMessage(AlphaView::displayErrorMessage($e->getMessage()));
206: self::$logger->error($e->getMessage());
207: }catch(BONotFoundException $e) {
208: self::$logger->warn($e->getMessage());
209: $this->setStatusMessage(AlphaView::displayErrorMessage('Failed to load the requested item from the database!'));
210: }
211:
212: echo AlphaView::displayPageHead($this);
213:
214: $message = $this->getStatusMessage();
215: if(!empty($message))
216: echo $message;
217:
218: echo AlphaView::displayPageFoot($this);
219: self::$logger->debug('<<doPOST');
220: }
221:
222: 223: 224: 225: 226:
227: public function after_displayPageHead_callback() {
228: $menu = AlphaView::loadTemplateFragment('html', 'adminmenu.phtml', array());
229:
230: return $menu;
231: }
232: }
233:
234:
235: if ('EditDEnum.php' == basename($_SERVER['PHP_SELF'])) {
236: $controller = new EditDEnum();
237:
238: if(!empty($_POST)) {
239: $controller->doPOST($_REQUEST);
240: }else{
241: $controller->doGET($_GET);
242: }
243: }
244:
245: ?>