PageRenderTime 50ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/symfony/apps/backend/modules/moderate_movie/actions/actions.class.php

https://bitbucket.org/wayfarer/verse
PHP | 293 lines | 237 code | 46 blank | 10 comment | 23 complexity | b33a3184194ae7a022eaafd332b3635a MD5 | raw file
Possible License(s): ISC, AGPL-3.0, LGPL-2.1, BSD-3-Clause, LGPL-3.0
  1. <?php
  2. require_once dirname(__FILE__).'/../lib/moderate_movieGeneratorConfiguration.class.php';
  3. require_once dirname(__FILE__).'/../lib/moderate_movieGeneratorHelper.class.php';
  4. /**
  5. * moderation_movie actions.
  6. *
  7. * @package verse3
  8. * @subpackage moderation_movie
  9. * @author Vladimir Droznik <vladimir.droznik@gmail.com>
  10. * @version SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
  11. */
  12. class moderate_movieActions extends autoModerate_movieActions
  13. {
  14. public function executeCreate(sfWebRequest $request) {
  15. $this->form = $this->configuration->getForm();
  16. $this->plg_obituary_movie = $this->form->getObject();
  17. if($this->processForm($request, $this->form)!=sfView::NONE) {
  18. $this->setTemplate('new');
  19. } else {
  20. return sfView::NONE;
  21. }
  22. }
  23. protected function processForm(sfWebRequest $request, sfForm $form) {
  24. $plg_obituary_movie = $form->getObject();
  25. $is_new = $plg_obituary_movie->isNew();
  26. $taintedValues = $request->getParameter($form->getName());
  27. if (!$is_new) {
  28. $taintedValues['obituary_id'] = $plg_obituary_movie->getObituaryId();
  29. $taintedValues['path'] = $plg_obituary_movie->getPath();
  30. }
  31. $form->bind($taintedValues, $request->getFiles($form->getName()));
  32. if ($form->isValid()) {
  33. $notice = $is_new ? 'The item was created successfully.' : 'The item was updated successfully.';
  34. $files = $request->getFiles($form->getName());
  35. if($is_new && count( $files )) {
  36. $domain = Doctrine::getTable('SmsDomain')->getCurrent();
  37. $movie = verseMediaUtil::uploadFile( $domain->getDomainName(), null, array( 'media' => $files['path'] ) );
  38. $movie->save($form->getValue('obituary_id'), $domain->getDomainName(), $domain->getDomainId(), $form->getValue('state'), $form->getValue('caption'));
  39. $this->setLayout(false);
  40. return sfView::NONE;
  41. } else {
  42. try {
  43. $movie = $form->save();
  44. } catch (Doctrine_Validator_Exception $e) {
  45. $errorStack = $form->getObject()->getErrorStack();
  46. $message = get_class($form->getObject()) . ' has ' . count($errorStack) . " field" . (count($errorStack) > 1 ? 's' : null) . " with validation errors: ";
  47. foreach ($errorStack as $field => $errors) {
  48. $message .= "$field (" . implode(", ", $errors) . "), ";
  49. }
  50. $message = trim($message, ', ');
  51. $this->getUser()->setFlash('error', $message);
  52. return sfView::SUCCESS;
  53. }
  54. }
  55. $this->getUser()->setFlash('notice', $notice);
  56. $this->redirect('@plg_obituary_movie');
  57. } else {
  58. $this->getUser()->setFlash('error', 'The item has not been saved due to some errors.', false);
  59. }
  60. }
  61. public function executeApprove(sfWebRequest $request) {
  62. $movie = $this->getRoute()->getObject();
  63. $movie->approve();
  64. $this->getUser()->setFlash('notice', 'The selected movie has been approved successfully.');
  65. $this->redirect('plg_obituary_movie');
  66. }
  67. public function executeHide(sfWebRequest $request) {
  68. $movie = $this->getRoute()->getObject();
  69. $movie->hide();
  70. $this->getUser()->setFlash('notice', 'The selected movie has been hidden successfully.');
  71. $this->redirect('plg_obituary_movie');
  72. }
  73. public function executeUnhide(sfWebRequest $request) {
  74. $movie = $this->getRoute()->getObject();
  75. $movie->unhide();
  76. $this->getUser()->setFlash('notice', 'The selected movie has been unhidden successfully.');
  77. $this->redirect('plg_obituary_movie');
  78. }
  79. public function executeDelete(sfWebRequest $request) {
  80. $movie = $this->getRoute()->getObject();
  81. $file = new verseMediaFile('files/'.Doctrine::getTable('SmsDomain')->getCurrent()->getDomainName().'/'.$movie->getPath());
  82. $file->delete();
  83. $movie->delete();
  84. $this->getUser()->setFlash('notice', 'The selected movie has been deleted successfully.');
  85. $this->redirect('plg_obituary_movie');
  86. }
  87. public function executeBatch(sfWebRequest $request) {
  88. $request->checkCSRFProtection();
  89. if (!$ids = $request->getParameter('ids'))
  90. {
  91. $this->getUser()->setFlash('error', 'You must at least select one item.');
  92. $this->redirect('plg_obituary_movie');
  93. }
  94. $action = null;
  95. foreach($request->getParameter('batch_action') as $batch_action) {
  96. if($batch_action) {
  97. $action = $batch_action;
  98. break;
  99. }
  100. }
  101. if (!$action)
  102. {
  103. $this->getUser()->setFlash('error', 'You must select an action to execute on the selected items.');
  104. $this->redirect('plg_obituary_movie');
  105. }
  106. if (!method_exists($this, $method = 'execute'.ucfirst($action)))
  107. {
  108. throw new InvalidArgumentException(sprintf('You must create a "%s" method for action "%s"', $method, $action));
  109. }
  110. if (!$this->getUser()->hasCredential($this->configuration->getCredentials($action)))
  111. {
  112. $this->forward(sfConfig::get('sf_secure_module'), sfConfig::get('sf_secure_action'));
  113. }
  114. $validator = new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => 'PlgObituaryMovie'));
  115. try
  116. {
  117. // validate ids
  118. $ids = $validator->clean($ids);
  119. // execute batch
  120. $this->$method($request);
  121. }
  122. catch (sfValidatorError $e)
  123. {
  124. $this->getUser()->setFlash('error', 'A problem occurs when deleting the selected items as some items do not exist anymore.');
  125. }
  126. $this->redirect('plg_obituary_movie');
  127. }
  128. public function executeBatchHide(sfWebRequest $request) {
  129. $ids = $request->getParameter('ids');
  130. $q = Doctrine::getTable('PlgObituaryMovie')->createQuery()
  131. ->whereIn('id', $ids);
  132. foreach ($q->execute() as $movie) {
  133. $movie->hide();
  134. }
  135. $this->getUser()->setFlash('notice', 'The selected movies have been hidden successfully.');
  136. $this->redirect('plg_obituary_movie');
  137. }
  138. public function executeBatchUnhide(sfWebRequest $request) {
  139. $ids = $request->getParameter('ids');
  140. $q = Doctrine::getTable('PlgObituaryMovie')->createQuery()
  141. ->whereIn('id', $ids);
  142. foreach ($q->execute() as $movie) {
  143. $movie->unhide();
  144. }
  145. $this->getUser()->setFlash('notice', 'The selected movies have been unhidden successfully.');
  146. $this->redirect('plg_obituary_movie');
  147. }
  148. public function executeBatchApprove(sfWebRequest $request) {
  149. $ids = $request->getParameter('ids');
  150. $q = Doctrine::getTable('PlgObituaryMovie')->createQuery()
  151. ->whereIn('id', $ids);
  152. foreach ($q->execute() as $movie) {
  153. $movie->approve();
  154. }
  155. $this->getUser()->setFlash('notice', 'The selected movies have been approved successfully.');
  156. $this->redirect('plg_obituary_movie');
  157. }
  158. public function executeBatchDelete(sfWebRequest $request) {
  159. $ids = $request->getParameter('ids');
  160. $q = Doctrine::getTable('PlgObituaryMovie')->createQuery()
  161. ->whereIn('id', $ids);
  162. $domain_name = Doctrine::getTable('SmsDomain')->getCurrent()->getDomainName();
  163. foreach ($q->execute() as $movie) {
  164. $file = new verseMediaFile('files/'.$domain_name.'/'.$movie->getPath());
  165. $file->delete();
  166. $movie->delete();
  167. }
  168. $this->getUser()->setFlash('notice', 'The selected movies have been deleted successfully.');
  169. $this->redirect('plg_obituary_movie');
  170. }
  171. protected function getFilters() {
  172. return $this->getUser()->getAttribute('moderate_media.filters', $this->configuration->getFilterDefaults(), 'admin_module');
  173. }
  174. protected function setFilters(array $filters) {
  175. return $this->getUser()->setAttribute('moderate_media.filters', $filters, 'admin_module');
  176. }
  177. public function executeFilter(sfWebRequest $request) {
  178. $this->setPage(1);
  179. if ($request->hasParameter('_reset')) {
  180. $this->setFilters($this->configuration->getFilterDefaults());
  181. $this->redirect('plg_obituary_movie');
  182. }
  183. if($request->hasParameter('obituary')) {
  184. $this->getUser()->setAttribute('movie_obituary_id', $request->getParameter('obituary'));
  185. $this->getUser()->setAttribute('photo_obituary_id', $request->getParameter('obituary'));
  186. $filters = $this->configuration->getFilterDefaults();
  187. $filters['obituary_id'] = intval($request->getParameter('obituary'));
  188. $filters['state'] = 0;
  189. $this->setFilters($filters);
  190. $this->redirect('plg_obituary_movie');
  191. }
  192. if($request->hasParameter('_active_movies')) {
  193. $filters = $this->getFilters();
  194. $filters['state'] = 0;
  195. $this->setFilters($filters);
  196. $this->redirect('plg_obituary_movie');
  197. }
  198. if($request->hasParameter('_moderated_movies')) {
  199. $filters = $this->configuration->getFilterDefaults();
  200. $filters['state'] = 1;
  201. unset($filters['obituary_id']);
  202. $this->getUser()->setAttribute('movie_obituary_id', '');
  203. $this->getUser()->setAttribute('photo_obituary_id', '');
  204. $this->setFilters($filters);
  205. $this->redirect('plg_obituary_movie');
  206. }
  207. if($request->hasParameter('_hidden_movies')) {
  208. $filters = $this->getFilters();
  209. $filters['state'] = 2;
  210. $this->setFilters($filters);
  211. $this->redirect('plg_obituary_movie');
  212. }
  213. if($request->hasParameter('_unknown_movies')) {
  214. $filters = $this->getFilters();
  215. $filters['status'] = 0;
  216. $this->setFilters($filters);
  217. $this->redirect('plg_obituary_movie');
  218. }
  219. if($request->hasParameter('_ready_movies')) {
  220. $filters = $this->getFilters();
  221. $filters['status'] = 1;
  222. $this->setFilters($filters);
  223. $this->redirect('plg_obituary_movie');
  224. }
  225. if($request->hasParameter('_converting_movies')) {
  226. $filters = $this->getFilters();
  227. $filters['status'] = 2;
  228. $this->setFilters($filters);
  229. $this->redirect('plg_obituary_movie');
  230. }
  231. if($request->hasParameter('_invalid_movies')) {
  232. $filters = $this->getFilters();
  233. $filters['status'] = 3;
  234. $this->setFilters($filters);
  235. $this->redirect('plg_obituary_movie');
  236. }
  237. $this->filters = $this->configuration->getFilterForm($this->getFilters());
  238. $this->filters->bind($request->getParameter($this->filters->getName()));
  239. if ($this->filters->isValid()) {
  240. $this->setFilters($this->filters->getValues());
  241. $this->redirect('plg_obituary_movie');
  242. }
  243. $this->pager = $this->getPager();
  244. $this->sort = $this->getSort();
  245. $this->setTemplate('index');
  246. }
  247. }