/protected/modules/admin_cp/controllers/ChecklistController.php

https://bitbucket.org/markmoskalenko/svitor · PHP · 192 lines · 153 code · 39 blank · 0 comment · 46 complexity · f6f5c4f4cff0cfb6e005fdf2dc07208a MD5 · raw file

  1. <?php
  2. class ChecklistController extends AppController
  3. {
  4. public function actionIndex($for = '', $type_id = 0, $cat_id = 0)
  5. {
  6. $private_for = '';
  7. $type_id = intval($type_id);
  8. $cat_id = intval($cat_id);
  9. $holiday_types = array();
  10. $wedding_types = array();
  11. $categories = array();
  12. $criteria = new CDbCriteria;
  13. if ($for == 'wedding' || $for == 'holiday') {
  14. $private_for = $for;
  15. $criteria->condition = 'fun_type = :fun_type';
  16. $criteria->params = array(':fun_type' => $private_for);
  17. if (!empty($private_for) && !empty($type_id))
  18. {
  19. $criteria->condition .= ' AND '.$private_for.'_type_id = :type_id';
  20. $criteria->params[':type_id'] = $type_id;
  21. if (!empty($cat_id))
  22. {
  23. $criteria->condition .= ' AND cat_min_id = :cat_id';
  24. $criteria->params[':cat_id'] = $cat_id;
  25. }
  26. }
  27. }
  28. $templates_data = ChecklistTemplate::model()->findAll($criteria);
  29. if ($private_for == 'holiday')
  30. $holiday_types = HolidayTypes::model()->findAll();
  31. if ($private_for == 'wedding')
  32. $wedding_types = WeddingTypes::model()->findAll();
  33. if (!empty($private_for) && !empty($type_id))
  34. {
  35. $criteria = new CDbCriteria;
  36. $criteria->condition = '(fun_type = "multi" OR fun_type = "'.$private_for.'")';
  37. $categories = CategoryMiniatures::model()->findAll($criteria);
  38. }
  39. $this->render('index', array(
  40. 'templates_data' => $templates_data,
  41. 'holiday_types' => $holiday_types,
  42. 'wedding_types' => $wedding_types,
  43. 'categories' => $categories,
  44. 'private_for' => $private_for,
  45. 'type_id' => $type_id
  46. ));
  47. }
  48. public function actionAdd($for = '', $type_id = '', $cat_id = '')
  49. {
  50. $model = new ChecklistTemplate('add');
  51. $holiday_types = HolidayTypes::model()->findAll();
  52. $wedding_types = WeddingTypes::model()->findAll();
  53. $criteria = new CDbCriteria;
  54. $criteria->condition = 'show_in_checklist = 1 AND fun_type = "multi" OR fun_type = "holiday"';
  55. $holiday_groups = CategoryMiniatures::model()->findAll($criteria);
  56. $criteria->condition = 'show_in_checklist = 1 AND fun_type = "multi" OR fun_type = "wedding"';
  57. $wedding_groups = CategoryMiniatures::model()->findAll($criteria);
  58. $search = '';
  59. if ($for == 'wedding' || $for == 'holiday') {
  60. $model->fun_type = $for;
  61. $search = '?for='.$for;
  62. if (!empty($type_id)) {
  63. $type_str = $for.'_type_id';
  64. $model->$type_str = $type_id;
  65. $search .= '&type_id='.intval($type_id);
  66. if (!empty($cat_id)) {
  67. $cat_str = $for == 'wedding' ? 'wedding_cat_min_id' : 'holiday_cat_min_id';
  68. $model->$cat_str = $cat_id;
  69. $search .= '&cat_id='.intval($cat_id);
  70. }
  71. }
  72. }
  73. if (isset($_POST['ChecklistTemplate']))
  74. {
  75. $model->attributes = $_POST['ChecklistTemplate'];
  76. if ($model->fun_type == 'wedding') {
  77. $model->cat_min_id = $model->wedding_cat_min_id;
  78. }
  79. else if ($model->fun_type == 'holiday') {
  80. $model->cat_min_id = $model->holiday_cat_min_id;
  81. }
  82. if ($model->save())
  83. $this->redirect('/admin_cp/checklist/'.$search);
  84. }
  85. $this->render('_form', array(
  86. 'model' => $model,
  87. 'holiday_types' => $holiday_types,
  88. 'wedding_types' => $wedding_types,
  89. 'holiday_groups' => $holiday_groups,
  90. 'wedding_groups' => $wedding_groups,
  91. 'search' => $search
  92. ));
  93. }
  94. public function actionEdit($id = 0)
  95. {
  96. $id = intval($id);
  97. if (empty($id))
  98. $this->redirect('/admin_cp/checklist/');
  99. $model = ChecklistTemplate::model()->findByAttributes(array('entry' => $id));
  100. if (empty($model))
  101. $this->redirect('/admin_cp/checklist/');
  102. if ($model->fun_type == 'wedding') {
  103. $model->wedding_cat_min_id = $model->cat_min_id;
  104. }
  105. else if ($model->fun_type == 'holiday') {
  106. $model->holiday_cat_min_id = $model->cat_min_id;
  107. }
  108. $holiday_types = HolidayTypes::model()->findAll();
  109. $wedding_types = WeddingTypes::model()->findAll();
  110. $criteria = new CDbCriteria;
  111. $criteria->condition = 'show_in_checklist = 1 AND fun_type = "multi" OR fun_type = "holiday"';
  112. $holiday_groups = CategoryMiniatures::model()->findAll($criteria);
  113. $criteria->condition = 'show_in_checklist = 1 AND fun_type = "multi" OR fun_type = "wedding"';
  114. $wedding_groups = CategoryMiniatures::model()->findAll($criteria);
  115. $search = '';
  116. if (isset($_GET['for'])) {
  117. $search = '?for='.$_GET['for'];
  118. if (isset($_GET['type_id']))
  119. $search .= '&type_id='.intval($_GET['type_id']);
  120. if (isset($_GET['cat_id']))
  121. $search .= '&cat_id='.intval($_GET['cat_id']);
  122. }
  123. if (isset($_POST['ChecklistTemplate']))
  124. {
  125. $model->scenario = 'edit';
  126. $model->attributes = $_POST['ChecklistTemplate'];
  127. if ($model->fun_type == 'wedding') {
  128. $model->cat_min_id = $model->wedding_cat_min_id;
  129. }
  130. else if ($model->fun_type == 'holiday') {
  131. $model->cat_min_id = $model->holiday_cat_min_id;
  132. }
  133. if ($model->save())
  134. $this->redirect('/admin_cp/checklist/'.$search);
  135. }
  136. $this->render('_form', array(
  137. 'model' => $model,
  138. 'holiday_types' => $holiday_types,
  139. 'wedding_types' => $wedding_types,
  140. 'holiday_groups' => $holiday_groups,
  141. 'wedding_groups' => $wedding_groups,
  142. 'search' => $search
  143. ));
  144. }
  145. public function actionDelete($id = 0)
  146. {
  147. $id = intval($id);
  148. if (empty($id))
  149. mApi::sayError(1, 'Не получен параметр id');
  150. if (ChecklistTemplate::model()->deleteAllByAttributes(array('entry' => $id)))
  151. echo 'ok';
  152. }
  153. }