PageRenderTime 43ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/QLTSv1/application/modules/asset/controllers/MessageController.php

http://mock-project.googlecode.com/
PHP | 217 lines | 187 code | 22 blank | 8 comment | 26 complexity | 5c5869885713d3307903d9541c54f43f MD5 | raw file
  1. <?php
  2. class Asset_MessageController extends Zend_Controller_Action {
  3. public function init() {
  4. }
  5. public function addAction() {
  6. $this->_helper->layout->disableLayout();
  7. $this->_helper->viewRenderer->setNoRender(true);
  8. if ($this->getRequest()->isPost()) {
  9. $from = Zend_Auth::getInstance()->getIdentity()->UserID;
  10. $touser = $this->getRequest()->getPost('To');
  11. $title = $this->getRequest()->getPost('Title');
  12. $detail = $this->getRequest()->getPost('Detail');
  13. // require_once APPLICATION_PATH . '/modules/user/models/DbTable/Member.php';
  14. $us = new User_Model_DbTable_Member();
  15. if ($us->getMemberFromUsername($touser) == NULL) {
  16. $toUserInfo = $us->getMemberFromUsername($touser);
  17. // ko ton tai to use
  18. $status = 'Error';
  19. $msg = 'Not found to member';
  20. echo Zend_Json::encode(array('status' => $status, 'msg' => $msg));
  21. exit();
  22. }
  23. $toUserInfo = $us->getMemberFromUsername($touser);
  24. $to = $toUserInfo['UserID'];
  25. $me = new Asset_Model_DbTable_Message();
  26. if ($me->addMessage($from, $to, $title, $detail)) {
  27. // success
  28. $status = 'Success';
  29. $msg = 'Create success';
  30. } else {
  31. // fail
  32. $status = 'Error';
  33. $msg = 'Not create new message.';
  34. }
  35. } else {
  36. $status = 'Error';
  37. $msg = 'Not found POST value.';
  38. }
  39. echo Zend_Json::encode(array('status' => $status, 'msg' => $msg));
  40. }
  41. public function deleteAction() {
  42. $this->_helper->layout->disableLayout();
  43. $this->_helper->viewRenderer->setNoRender(true);
  44. if ($this->getRequest()->getPost()) {
  45. $MessageID = $this->getRequest()->getPost('MessageID', -1);
  46. if ($MessageID > 0) {
  47. $me = new Asset_Model_DbTable_Message();
  48. if ($me->getMessage($MessageID) == NULL) {
  49. $status = 'Error';
  50. $msg = 'Not found message.';
  51. echo Zend_Json::encode(array('status' => $status, 'msg' => $msg));
  52. exit();
  53. } else {
  54. $me->deleteMessage($MessageID);
  55. $status = 'Success';
  56. $msg = 'Update database success';
  57. }
  58. } else {
  59. $status = 'Error';
  60. $msg = 'Not found message';
  61. }
  62. } else {
  63. $status = 'Error';
  64. $msg = 'Not found POST value';
  65. }
  66. echo Zend_Json::encode(array('status' => $status, 'msg' => $msg));
  67. }
  68. public function readAction() {
  69. $this->_helper->layout->disableLayout();
  70. $this->_helper->viewRenderer->setNoRender(true);
  71. if ($this->getRequest()->isPost()) {
  72. $MessageID = (int) $this->getRequest()->getPost('MessageID', -1);
  73. $uid = Zend_Auth::getInstance()->getIdentity()->UserID;
  74. if ($MessageID > 0) {
  75. $message = new Asset_Model_DbTable_Message();
  76. $select = $message->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
  77. ->setIntegrityCheck(false)
  78. ->join(array('su' => 'memberinfor'), "su.UserID=SendID", array('SUsername' => 'su.Username'))
  79. ->join(array('ru' => 'memberinfor'), "ru.UserID=ReceiveID", array('RUsername' => 'ru.Username'))
  80. ->where("SendID = '$uid' OR ReceiveID = '$uid'")
  81. ->where("MessageID = '$MessageID'");
  82. if ($row = $message->fetchRow($select)) {
  83. $status = 'success';
  84. $messageData = $row->toArray();
  85. $message->editMessage($MessageID, $messageData['Title'], $messageData['Detail'], 1);
  86. echo Zend_Json::encode(array('status' => $status, 'data' => $messageData));
  87. } else {
  88. $status = 'error';
  89. $msg = 'Not found detail of this message.';
  90. echo Zend_Json::encode(array('status' => $status, 'msg' => $msg));
  91. }
  92. } else {
  93. $status = 'error';
  94. $msg = 'Not found detail of this message.';
  95. echo Zend_Json::encode(array('status' => $status, 'msg' => $msg));
  96. }
  97. } else {
  98. $status = 'error';
  99. $msg = 'Not found POST value.';
  100. echo Zend_Json::encode(array('status' => $status, 'msg' => $msg));
  101. }
  102. }
  103. public function listAction() {
  104. }
  105. public function recordsAction() {
  106. $this->_helper->layout->disableLayout();
  107. $this->_helper->viewRenderer->setNoRender(true);
  108. // $this->getResponse()
  109. // ->setHeader('Content-Type', 'application/json');
  110. $message = new Asset_Model_DbTable_Message();
  111. $userInfo = (array) Zend_Auth::getInstance()->getIdentity();
  112. $uid = $userInfo['UserID'];
  113. $sort_column = $this->_getParam('sortname', 'MessageID'); # this will default to undefined
  114. $sort_order = $this->_getParam('sortorder', 'desc'); # this will default to undefined
  115. $page = $this->_getParam('page', 1);
  116. $limit = $this->_getParam('rp', 10);
  117. $offset = (($page - 1) * $limit);
  118. $search_column = $this->_getParam('qtype', 'Title');
  119. $search_for = $this->_getParam('query', '');
  120. $mode = (int) $this->_getParam('mode', 1);
  121. switch ($mode) {
  122. case 1: // all message to me
  123. $select = $message->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
  124. ->setIntegrityCheck(false)
  125. ->join(array('su' => 'memberinfor'), "su.UserID=SendID", array('SUsername' => 'su.Username'))
  126. ->join(array('ru' => 'memberinfor'), "ru.UserID=ReceiveID", array('RUsername' => 'ru.Username'))
  127. ->where("ReceiveID = '$uid'")->order("$sort_column $sort_order")->limit($limit, $offset);
  128. break;
  129. case 2: // all message from me
  130. $select = $message->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
  131. ->setIntegrityCheck(false)
  132. ->join(array('su' => 'memberinfor'), "su.UserID=SendID", array('SUsername' => 'su.Username'))
  133. ->join(array('ru' => 'memberinfor'), "ru.UserID=ReceiveID", array('RUsername' => 'ru.Username'))
  134. ->where("SendID = '$uid'")->order("$sort_column $sort_order")->limit($limit, $offset);
  135. break;
  136. case 3: // all message to or from me
  137. $select = $message->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
  138. ->setIntegrityCheck(false)
  139. ->join(array('su' => 'memberinfor'), "su.UserID=SendID", array('SUsername' => 'su.Username'))
  140. ->join(array('ru' => 'memberinfor'), "ru.UserID=ReceiveID", array('RUsername' => 'ru.Username'))
  141. ->where("SendID = '$uid' OR ReceiveID = '$uid'")->order("$sort_column $sort_order")->limit($limit, $offset);
  142. break;
  143. case 4: // all message (Role: admin)
  144. if ($userInfo['Role'] != 0) {
  145. echo Zend_Json::encode(array('page' => $page, 'total' => 0, 'rows' => NULL));
  146. exit();
  147. }
  148. $select = $message->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
  149. ->setIntegrityCheck(false)
  150. ->join(array('su' => 'memberinfor'), "su.UserID=SendID", array('SUsername' => 'su.Username'))
  151. ->join(array('ru' => 'memberinfor'), "ru.UserID=ReceiveID", array('ReceiveUsername' => 'ru.Username'))
  152. ->order("$sort_column $sort_order")->limit($limit, $offset);
  153. break;
  154. case 5:
  155. $select = $message->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
  156. ->setIntegrityCheck(false)
  157. ->join(array('su' => 'memberinfor'), "su.UserID=SendID", array('SUsername' => 'su.Username'))
  158. ->join(array('ru' => 'memberinfor'), "ru.UserID=ReceiveID", array('RUsername' => 'ru.Username'))
  159. ->where("ReceiveID = '$uid'")->order("$sort_column $sort_order")->limit($limit, $offset);
  160. break;
  161. default :
  162. $select = $message->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
  163. ->setIntegrityCheck(false)
  164. ->join(array('su' => 'memberinfor'), "su.UserID=SendID", array('SUsername' => 'su.Username'))
  165. ->join(array('ru' => 'memberinfor'), "ru.UserID=ReceiveID", array('RUsername' => 'ru.Username'))
  166. ->where("ReceiveID = '$uid'")->order("$sort_column $sort_order")->limit($limit, $offset);
  167. break;
  168. }
  169. if (!empty($search_column) && !empty($search_for)) {
  170. $select->where($search_column . ' LIKE ?', '%' . $search_for . '%');
  171. }
  172. $pager = Zend_Paginator::factory($select);
  173. $pager->setCurrentPageNumber($page);
  174. $pager->setItemCountPerPage($limit);
  175. $records = $pager->getIterator();
  176. $total = $pager->getTotalItemCount();
  177. if ($total == 0) {
  178. echo Zend_Json::encode(array('page' => $page, 'total' => $total, 'rows' => NULL));
  179. exit();
  180. }
  181. foreach ($records AS $record) {
  182. //If cell's elements have named keys, they must match column names
  183. //Only cell's with named keys and matching columns are order independent.
  184. $rows[] = array('id' => $record['MessageID'],
  185. 'cell' => $record->toArray()
  186. );
  187. }
  188. $jsonData = array(
  189. 'page' => $page,
  190. 'total' => $total,
  191. 'rows' => $rows
  192. );
  193. echo Zend_Json::encode($jsonData);
  194. }
  195. }