DeskController.php
00001 <?php
00009 class Game_DeskController extends Dsao_Controller_Action
00010 {
00014 protected $_namespaceGameDesk = null;
00015
00021 public function preDispatch()
00022 {
00023
00024 $this->_setDefaultModelClass('Game_Desk');
00025
00026
00027 if (!Zend_Session::namespaceIsset('game_desk'))
00028 {
00029 $this->_namespaceGameDesk = new Zend_Session_Namespace('game_desk');
00030 $this->_namespaceGameDesk->lastRefresh = time()-60*60*24*7;
00031 }
00032 else
00033 {
00034 $this->_namespaceGameDesk = new Zend_Session_Namespace('game_desk');
00035 }
00036
00037
00038 $this->_getModel()->deleteEmptyRows();
00039 }
00040
00048 public function deleteAction()
00049 {
00050
00051 if (!$this->getHelper('SessionToken')->hasValidToken())
00052 {
00053 return;
00054 }
00055
00056 $idText = $this->getUri()->id;
00057
00058
00059 if(!$this->isXmlHttpRequest())
00060 {
00061
00062 if (!$this->getUri()->confirmation)
00063 {
00064
00065 $this->getView()->addConfirmationTemplate(
00066 'game_desk_delete_confirmation',
00067 '/game/desk/delete/id/'.$idText.'/confirmation/1');
00068
00069 return true;
00070 }
00071
00072
00073 $this->getView()->addTemplate(false);
00074 }
00075
00076
00077 if ($this->_getModel()->deleteText($this->getUser()->getId(), $idText))
00078 {
00079
00080 if ($this->isXmlHttpRequest())
00081 {
00082
00083 $this->getView()->assign('idText', $idText);
00084
00085 return true;
00086 }
00087
00088
00089 $this->getLog()->affirm('game_desk_delete_affirmation_deleted');
00090
00091 return true;
00092 }
00093
00094
00095 $this->getLog()->err('game_desk_delete_error_permission_denied');
00096
00097 return false;
00098 }
00099
00105 public function editAction()
00106 {
00107
00108 $idText = $this->getUri()->id;
00109
00110
00111 if (!$rowText = $this->_getModel()->hasChangePermission
00112 ($this->getUser()->getId(), $idText))
00113 {
00114
00115 $this->getLog()->err('game_desk_edit_error_permission_denied');
00116 $this->getView()->addTemplate(false);
00117
00118 return false;
00119 }
00120
00121
00122 if (!$this->getRequest()->isPost())
00123 {
00124 $rowTextContent = $rowText->content;
00125
00126
00127 if ($this->isXmlHttpRequest())
00128 {
00129 $rowTextArray = $rowText->toArrayDecoded();
00130
00131 $rowTextContent = $rowTextArray['content'];
00132 }
00133
00134 $this->getView()->assign(array(
00135 'gameDeskEditContent' => $rowTextContent,
00136 'idText' => $idText
00137 ));
00138
00139 return true;
00140 }
00141
00142
00143 if (!$this->getHelper('SessionToken')->hasValidToken())
00144 {
00145 return;
00146 }
00147
00148
00149 $this->_getModel()->editText($this->getUser(), $idText,
00150 $this->getRequest()->getPost('content'));
00151
00152
00153 if ($this->getRequest()->getPost('content'))
00154 {
00155
00156 if ($this->isXmlHttpRequest())
00157 {
00158
00159 $rowText->refresh();
00160 $rowTextArray = $rowText->toArrayDecoded();
00161
00162
00163 $this->getView()->getAjaxResponse()->setData
00164 ($rowTextArray['content'] , Dsao_Ajax_Response::PLAIN);
00165 }
00166
00167 $this->getLog()->affirm('game_desk_edit_affirmation_edited');
00168 }
00169
00170 else
00171 {
00172 $this->getLog()->affirm('game_desk_delete_affirmation_deleted');
00173 }
00174
00175 $this->getView()->addTemplate(false);
00176
00177 return true;
00178 }
00179
00185 public function insertAction()
00186 {
00187
00188 if (!$this->getHelper('SessionToken')->hasValidToken())
00189 {
00190 return;
00191 }
00192
00193 $this->_getModel()->insertText(1, $this->getUser()->username,
00194 $this->getRequest()->getPost('content'));
00195
00196
00197 if (!$this->isXmlHttpRequest())
00198 {
00199 $this->_gotoSimple('show');
00200
00201 return true;
00202 }
00203
00204
00205 $this->showAction();
00206
00207 return true;
00208 }
00209
00215 public function showAction()
00216 {
00217
00218 if ($this->isXmlHttpRequest())
00219 {
00220 $this->getView()->assign('texts', $this->_getModel()->fetchGroupTexts
00221 (1, $this->_namespaceGameDesk->lastRefresh, true)->toArrayDecoded());
00222
00223
00224 $this->_namespaceGameDesk->lastRefresh = time();
00225
00226 return true;
00227 }
00228
00229 else
00230 {
00231 $this->getHelper('History')->setAddToHistory();
00232 }
00233
00234
00235 $loadedTexts = $this->_getModel()->fetchGroupTexts
00236 (1, time()-60*60*24*7)->toArrayDecoded();
00237
00238
00239 $this->_namespaceGameDesk->lastRefresh = time();
00240
00241
00242 $loadedTexts[] = array
00243 (
00244 'author' => 'System',
00245 'content' => $this->getTranslate()->
00246 _('game_desk_show_info_no_texts'),
00247 'id' => 'system',
00248 'lastEditedBy' => 'System',
00249 'timeCreated' => date('d.m.y - H:i:s'),
00250 'timeLastEdited'=> date('d.m.y - H:i:s'),
00251 );
00252
00253 $this->getView()->assign_by_ref('gameDeskTexts', $loadedTexts);
00254
00255
00256 $this->getView()->addScriptaculousFiles(array('effects', 'controls'));
00257
00258
00259 $this->_addJsFile();
00260
00261
00262 $this->getView()->addJsTexts(array
00263 (
00264 'game_desk_delete_confirmation',
00265 'game_desk_edit_js_cancel_template',
00266 'game_desk_edit_js_loading_template',
00267 'game_desk_edit_js_saving_template',
00268 'game_desk_edit_js_submit_template'
00269 ));
00270
00271 return true;
00272 }
00273 }