/** * Action to make the table */ public function tableAction() { $this->getHelper('contextSwitch')->addActionContext('table', 'json')->initContext(); $view = $this->view; $table = $this->getHelper('datatable'); /* @var $table Action_Helper_Datatable */ $table->setDataSource($this->feedbackRepository); $table->setOption('oLanguage', array('sSearch' => '')); $table->setCols(array('index' => $view->toggleCheckbox(), 'user' => getGS('User'), 'message' => getGS('Date') . ' / ' . getGS('Message'), 'url' => getGS('Coming from')), array('index' => false)); $index = 1; $acceptanceRepository = $this->_helper->entity->getRepository('Newscoop\\Entity\\Comment\\Acceptance'); $table->setHandle(function ($feedback) use($view, &$index, $acceptanceRepository) { $user = $feedback->getUser(); $url = $feedback->getUrl(); $message = $feedback->getMessage(); $publication = $feedback->getPublication(); $section = $feedback->getSection(); $article = $feedback->getArticle(); if ($article) { $article_name = $article->getName(); $article_url = $view->linkArticle($article); } else { $article_name = getGS('None'); $article_url = $view->baseUrl('admin/feedback'); } if ($section) { $section_name = $section->getName(); } else { $section_name = getGS('None'); } $attachment = array(); $attachment['type'] = $feedback->getAttachmentType(); $attachment['id'] = $feedback->getAttachmentId(); if ($attachment['type'] == 'image') { $image = new Image($attachment['id']); $attachment['name'] = $image->getImageFileName(); $attachment['status'] = $image->getStatus(); $attachment['thumbnail'] = $image->getThumbnailUrl(); $attachment['approve_url'] = $view->url(array('action' => 'approve', 'type' => 'image', 'format' => 'json', 'id' => $attachment['id'])); } if ($attachment['type'] == 'document') { $document = new Attachment($attachment['id']); $attachment['name'] = $document->getFileName(); $attachment['status'] = $document->getStatus(); $attachment['approve_url'] = $view->url(array('action' => 'approve', 'type' => 'document', 'format' => 'json', 'id' => $attachment['id'])); } $banned = $acceptanceRepository->checkBanned(array('name' => $user->getName(), 'email' => '', 'ip' => ''), $publication); if ($banned['name'] == true) { $banned = true; } else { $banned = false; } return array('index' => $index++, 'user' => array('username' => $user->getUsername(), 'name' => $user->getFirstName(), 'email' => $user->getEmail(), 'avatar' => (string) $view->getAvatar($user->getEmail(), array('img_size' => 50, 'default_img' => 'wavatar')), 'banurl' => $view->url(array('controller' => 'user', 'action' => 'toggle-ban', 'user' => $user->getId(), 'publication' => $publication->getId())), 'is_banned' => $banned), 'message' => array('id' => $feedback->getId(), 'created' => array('date' => $feedback->getTimeCreated()->format('Y.m.d'), 'time' => $feedback->getTimeCreated()->format('H:i:s')), 'message' => $feedback->getMessage(), 'subject' => $feedback->getSubject(), 'status' => $feedback->getStatus(), 'attachmentType' => $feedback->getAttachmentType(), 'action' => array('reply' => $view->url(array('action' => 'reply', 'format' => 'json'))), 'url' => $url, 'publication' => $publication->getName(), 'section' => $section_name, 'article' => array('name' => $article_name, 'url' => $article_url)), 'attachment' => $attachment); }); $table->setOption('fnDrawCallback', 'datatableCallback.draw')->setOption('fnRowCallback', 'datatableCallback.row')->setOption('fnServerData', 'datatableCallback.addServerData')->setOption('fnInitComplete', 'datatableCallback.init')->setOption('sDom', '<"top">lf<"#actionExtender">rit<"bottom"ip>')->setStripClasses()->toggleAutomaticWidth(false)->setDataProp(array('index' => null, 'user' => null, 'message' => null, 'url' => null))->setClasses(array('index' => 'commentId', 'user' => 'commentUser', 'message' => 'commentTimeCreated', 'url' => 'commentThread')); try { $table->dispatch(); } catch (Exception $e) { var_dump($e); exit; } //$this->editForm->setSimpleDecorate()->setAction($this->_helper->url('update')); //$this->view->editForm = $this->editForm; }
/** * Action to make the table */ public function tableAction() { $translator = \Zend_Registry::get('container')->getService('translator'); $this->getHelper('contextSwitch')->addActionContext('table', 'json')->initContext(); $view = $this->view; $table = $this->getHelper('datatable'); /* @var $table Action_Helper_Datatable */ $table->setDataSource($this->feedbackRepository); $table->setOption('oLanguage', array('oPaginate' => array('sFirst' => $translator->trans('First', array(), 'comments'), 'sLast' => $translator->trans('Last', array(), 'comments'), 'sNext' => $translator->trans('Next'), 'sPrevious' => $translator->trans('Previous')), 'sZeroRecords' => $translator->trans('No records found.', array(), 'comments'), 'sSearch' => $translator->trans('Search'), 'sInfo' => $translator->trans('Showing _START_ to _END_ of _TOTAL_ entries', array(), 'comments'), 'sEmpty' => $translator->trans('No entries to show', array(), 'comments'), 'sInfoFiltered' => $translator->trans(' - filtering from _MAX_ records', array(), 'comments'), 'sLengthMenu' => $translator->trans('Display _MENU_ records', array(), 'comments'), 'sInfoEmpty' => '')); $table->setCols(array('id' => $view->toggleCheckbox(), 'user' => $translator->trans('User', array(), 'comments'), 'message' => $translator->trans('Date') . ' / ' . $translator->trans('Message', array(), 'comments'), 'url' => $translator->trans('Coming from', array(), 'comments')), array('id' => false)); $table->setInitialSorting(array('id' => 'desc')); $index = 1; $acceptanceRepository = $this->_helper->entity->getRepository('Newscoop\\Entity\\Comment\\Acceptance'); $table->setHandle(function ($feedback) use($view, &$index, $acceptanceRepository) { $user = $feedback->getUser(); $url = $feedback->getUrl(); $message = $feedback->getMessage(); $publication = $feedback->getPublication(); $section = $feedback->getSection(); $article = $feedback->getArticle(); $translator = \Zend_Registry::get('container')->getService('translator'); if ($article) { $article_name = $article->getName(); $article_url = $view->linkArticle($article); } else { $article_name = $translator->trans('None', array(), 'comments'); $article_url = $view->baseUrl('admin/feedback'); } if ($section) { $section_name = $section->getName(); } else { $section_name = $translator->trans('None', array(), 'comments'); } $attachment = array(); $attachment['type'] = $feedback->getAttachmentType(); $attachment['id'] = $feedback->getAttachmentId(); if ($attachment['type'] == 'image') { $image = new Image($attachment['id']); $attachment['name'] = $image->getImageFileName(); $attachment['status'] = $image->getStatus(); $attachment['thumbnail'] = $image->getThumbnailUrl(); $attachment['approve_url'] = $view->url(array('action' => 'approve', 'type' => 'image', 'format' => 'json', 'id' => $attachment['id'])); } if ($attachment['type'] == 'document') { $document = new Attachment($attachment['id']); $attachment['name'] = $document->getFileName(); $attachment['status'] = $document->getStatus(); $attachment['approve_url'] = $view->url(array('action' => 'approve', 'type' => 'document', 'format' => 'json', 'id' => $attachment['id'])); } $banned = $acceptanceRepository->checkBanned(array('name' => $user->getName(), 'email' => '', 'ip' => ''), $publication); if ($banned['name'] == true) { $banned = true; } else { $banned = false; } $zendRouter = \Zend_Registry::get('container')->getService('zend_router'); $userUrl = $zendRouter->assemble(array_merge(array('module' => 'default', 'controller' => 'user', 'action' => 'profile')), 'default', true); return array('id' => $index++, 'user' => array('username' => strip_tags($user->getUsername()), 'userUrl' => $userUrl . '/' . strip_tags($user->getUsername()), 'name' => $user->getFirstName(), 'email' => $user->getEmail(), 'avatar' => (string) $view->getAvatar($user->getEmail(), array('img_size' => 50, 'default_img' => 'wavatar')), 'banurl' => $view->url(array('controller' => 'user', 'action' => 'toggle-ban', 'user' => $user->getId(), 'publication' => $publication->getId())), 'is_banned' => $banned), 'message' => array('id' => $feedback->getId(), 'created' => array('date' => $feedback->getTimeCreated()->format('Y.m.d'), 'time' => $feedback->getTimeCreated()->format('H:i:s')), 'message' => $feedback->getMessage(), 'subject' => $feedback->getSubject(), 'status' => $feedback->getStatus(), 'attachmentType' => $feedback->getAttachmentType(), 'action' => array('reply' => $view->url(array('action' => 'reply', 'format' => 'json'))), 'url' => $url, 'publication' => $publication->getName(), 'section' => $section_name, 'article' => array('name' => $article_name, 'url' => $article_url)), 'attachment' => $attachment); }); $table->setOption('fnDrawCallback', 'datatableCallback.draw')->setOption('fnRowCallback', 'datatableCallback.row')->setOption('fnServerData', 'datatableCallback.addServerData')->setOption('fnInitComplete', 'datatableCallback.init')->setOption('sDom', '<"top">lf<"#actionExtender">rit<"bottom"ip>')->setStripClasses()->toggleAutomaticWidth(false)->setDataProp(array('id' => null, 'user' => null, 'message' => null, 'url' => null))->setClasses(array('id' => 'commentId', 'user' => 'commentUser', 'message' => 'commentTimeCreated', 'url' => 'commentThread')); try { $table->dispatch(); } catch (Exception $e) { throw new \Exception($e->getMessage()); } //$this->editForm->setSimpleDecorate()->setAction($this->_helper->url('update')); //$this->view->editForm = $this->editForm; }