PageRenderTime 47ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/clients/controller/backend/menu_group/menu_group.php

https://gitlab.com/vanthanhhoh/devlovebook
PHP | 150 lines | 136 code | 12 blank | 2 comment | 46 complexity | bd7518981b25a94ad0191413afb053c4 MD5 | raw file
  1. <?php
  2. class menu_group extends Controller {
  3. public $NodeTypeName;
  4. public function __construct() {
  5. $this->NodeTypeName = 'menu_group';
  6. }
  7. public function Main() {
  8. require(CONTROLLER_PATH . Boot::$ControllerGroup . 'menu_group' . DIRECTORY_SEPARATOR . 'menu_group_ListRows.php');
  9. }
  10. public function AddNode() {
  11. Theme::UseJquery();
  12. Theme::JsFooter('AddNodeLib', APPLICATION_DATA_DIR . 'static/Node/add.js');
  13. $NodeID = 0;
  14. $FormValue = array();
  15. if(isset(G::$Registry['Params'][ROUTER_EXTRA_KEY])) {
  16. $NodeID = G::$Registry['Params'][ROUTER_EXTRA_KEY];
  17. $GetNode = DB::Query('menu_group')->Where('menu_group_id', '=', $NodeID)->Get();
  18. if($GetNode->num_rows == 1) {
  19. $FormValue = $GetNode->Result[0];
  20. DB::Query('menu_group')->Where('menu_group_id', '=', $NodeID)->Update(array('editing_id' => USER_ID));
  21. }
  22. else $NodeID = 0;
  23. }
  24. $FV = $this->SaveNodeAction($NodeID, $FormValue);
  25. if(!empty($FV)) $FormValue = array_merge($FormValue, $FV);
  26. $this->UseCssComponents('Glyphicons,Buttons,Labels,InputGroups');
  27. $Fields = array('title' => array('value' => isset($FormValue['title']) ? $FormValue['title'] : ''));
  28. Backend::$NodeSettings['status'] = isset($FormValue['status']) ? $FormValue['status'] : 1;
  29. Backend::$NodeSettings['priority'] = isset($FormValue['priority']) ? $FormValue['priority'] : 0;
  30. Backend::$NodeSettings['schedule'] = Filter::UnixTimeToDate(isset($FormValue['schedule']) ? $FormValue['schedule'] : 0);
  31. Backend::$NodeSettings['exprired'] = Filter::UnixTimeToDate(isset($FormValue['exprired']) ? $FormValue['exprired'] : 0);
  32. if(isset($FormValue['node_settings'])) Backend::$NodeSettings['extra'] = $FormValue['node_settings'];
  33. ob_start();
  34. echo '<form class="form-horizontal" action="" method="post">';
  35. echo '<input type="hidden" name="SaveNodeSubmit" value="1"/>';
  36. echo '<input type="hidden" name="NodeID" value="' . $NodeID . '"/>';
  37. include Form::$CompiledPath . 'Controller_menu_group_InsertNode.php';
  38. echo '<div class="clearfix"></div><div class="clearfix" style="text-align:center;margin:10px 0 15px 0"><input type="submit" class="btn btn-primary" value="Save"/></div>';
  39. echo '</form>';
  40. $Form = ob_get_clean();
  41. $this->Render($Form);
  42. }
  43. public function Action() {
  44. $action = Input::Post('action');
  45. $ids = Input::Post('ids');
  46. $ids = array_filter(explode(',', $ids));
  47. $ids = array_map('intval', $ids);
  48. $rt = array('status' => 'not');
  49. if($action == 'deactive') {
  50. $Deactive = DB::Query('menu_group')->Where('menu_group_id', 'IN', $ids)->Update(array('status' => 0));
  51. if($Deactive->status) $rt = array('status' => 'ok', 'items' => $ids);
  52. }
  53. if($action == 'active') {
  54. $Deactive = DB::Query('menu_group')->Where('menu_group_id', 'IN', $ids)->Update(array('status' => 1));
  55. if($Deactive->status) $rt = array('status' => 'ok', 'items' => $ids);
  56. }
  57. if($action == 'delete') {
  58. $Deactive = DB::Query('menu_group')->Where('menu_group_id', 'IN', $ids)->Delete();
  59. if($Deactive->status) $rt = array('status' => 'ok', 'items' => $ids);
  60. }
  61. echo json_encode($rt);
  62. die();
  63. }
  64. public function RemoveNode() {
  65. $NodeID = 0;
  66. if(isset(G::$Registry['Params'][ROUTER_EXTRA_KEY])) {
  67. $NodeID = G::$Registry['Params'][ROUTER_EXTRA_KEY];
  68. $GetNode = DB::Query('menu_group')->Where('menu_group_id', '=', $NodeID)->Get();
  69. if($GetNode->num_rows == 0)
  70. return Helper::Notify('error', 'Node not found');
  71. }
  72. if(Input::Post('RemoveNodeSubmit') == 1) {
  73. $DeleteNode = DB::Query('menu_group')->Where('menu_group_id', '=', $NodeID)->Delete();
  74. if($DeleteNode->affected_rows == 1) {
  75. Helper::Notify('success', 'Success delete node ' . $GetNode->Result[0]['title']);
  76. Header('Refresh: 1.5; url=' . Router::Generate('Controller', array('controller' => 'menu_group')));
  77. }
  78. else Helper::Notify('error', 'Error delete node ' . $GetNode->Result[0]['title']);
  79. }
  80. else {
  81. $config = array('action' => Router::GenerateThisRoute(),
  82. 'tokens' => array(array('name' => 'NodeID', 'value' => $NodeID), array('name' => 'RemoveNodeSubmit', 'value' => 1))
  83. );
  84. $v = Access::Confirm('Confirm remove node: ' . $GetNode->Result[0]['title'], $config);
  85. $this->Render($v);
  86. }
  87. }
  88. public function SaveNodeAction($RealNodeID, $OldFormValue = array()) {
  89. if(Input::Post('SaveNodeSubmit') == 1) {
  90. $FormValue = Input::Post('Field');
  91. if(!isset($FormValue['title']) || $FormValue['title'] == '')
  92. Helper::Notify('error', 'Tiêu đề không thể để trống');
  93. $FormValue['schedule'] = Filter::DateToUnixTime($FormValue['schedule']['date'], $FormValue['schedule']['hour'], $FormValue['schedule']['minute']);
  94. if($FormValue['schedule'] < CURRENT_TIME) $FormValue['schedule'] = CURRENT_TIME;
  95. $FormValue['exprired'] = Filter::DateToUnixTime($FormValue['exprired']['date'], $FormValue['exprired']['hour'], $FormValue['exprired']['minute']);
  96. if($FormValue['exprired'] < CURRENT_TIME) $FormValue['exprired'] = 0;
  97. $FormValue['node_settings'] = Backend::BuildNodePermission(Input::Post('VNP_Settings'));
  98. if(Helper::NotifyCount('error') == 0) {
  99. $NodeID = Input::Post('NodeID');
  100. if(empty($NodeID)) {
  101. $CheckUnique = array();
  102. $NodeExisted = false;
  103. if(!$NodeExisted) {
  104. $FormValue['lang'] = LANG;
  105. $FormValue['user_id'] = USER_ID;
  106. $FormValue['last_edit_id'] = USER_ID;
  107. $FormValue['add_time'] = CURRENT_TIME;
  108. $FormValue['edit_time'] = CURRENT_TIME;
  109. $NodeQuery = DB::Query('menu_group')->Insert($FormValue);
  110. if($NodeQuery->status && $NodeQuery->insert_id > 0) {
  111. Helper::Notify('success', 'Successful add node in Nhóm menu');
  112. }
  113. else Helper::Notify('error', 'Cannot add node in Nhóm menu');
  114. }
  115. else Helper::Notify('error', 'Cannot add node in Nhóm menu. Be sure that <em></em> didn\'t existed!');
  116. }
  117. else {
  118. //$CheckExisted = DB::Query('menu_group')->Where('menu_group_id', '=', $NodeID)->Get();
  119. //if($CheckExisted->num_rows == 1) {
  120. if($RealNodeID == $NodeID) {
  121. $FormValue['last_edit_id'] = USER_ID;
  122. $FormValue['edit_time'] = CURRENT_TIME;
  123. $FormValue['editing_id'] = 0;
  124. $NodeQuery = DB::Query('menu_group')->Where('menu_group_id', '=', $NodeID)->Update($FormValue);
  125. if($NodeQuery->status && $NodeQuery->affected_rows > 0) {
  126. Helper::Notify('success', 'Successful update node in Nhóm menu');
  127. }
  128. else Helper::Notify('error', 'Cannot update node in Nhóm menu');
  129. }
  130. else {
  131. Helper::Notify('error', 'Cannot update, Node not found!');
  132. }
  133. }
  134. }
  135. return $FormValue;
  136. }
  137. }
  138. }