public function membersAction() { $result = array('success' => false); $siteId = -1; $from = null; $to = null; if ($this->getCommonParams($siteId, $from, $to)) { $page = (int) $this->params()->fromQuery("page", 1); $perPage = (int) $this->params()->fromQuery("perPage", 10); $orderBy = $this->params()->fromQuery('orderBy', DbViewMembership::JOINDATE); if (!DbViewMembership::hasField($orderBy)) { $orderBy = DbViewMembership::JOINDATE; } $order = $this->params()->fromQuery('ascending', true); if ($order) { $order = Order::ASCENDING; } else { $order = Order::DESCENDING; } $members = $this->services->getUserService()->findSiteMembers($siteId, UserType::ANY, false, $from, $to, array($orderBy => $order), true); $members->setCurrentPageNumber($page); $members->setItemCountPerPage($perPage); $renderer = $this->getServiceLocator()->get('ViewHelperManager')->get('partial'); $table = PaginatedTableFactory::createMembersTable($members, false); $table->getColumns()->setOrder($orderBy, $order === Order::ASCENDING); if ($renderer) { $result['success'] = true; $result['content'] = $renderer('partial/tables/table.phtml', array('table' => $table, 'data' => array('siteId' => $siteId))); } } return new JsonModel($result); }
public function searchAction() { $request = $this->getRequest(); $form = $this->services->getUtilityService()->getSearchForm(); $result = array('form' => $form); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $text = $form->get(SearchForm::TEXT_FIELD_NAME)->getValue(); $text = trim($text); if (mb_strlen($text) >= 3) { $result['pages'] = $this->services->getPageService()->findByName($text); $result['users'] = $this->services->getUserService()->findByName($text); } } } return new ViewModel($result); }
/** * Get a paginated table with authors for a selected site * @param int $siteId * @param string $orderBy * @param int $order * @param int $page * @param int $perPage * @return \Application\Component\PaginatedTable\TableInterface; */ protected function getAuthorsTable($siteId, $orderBy, $order, $page, $perPage) { $authors = $this->services->getUserService()->findAuthorSummaries($siteId, array($orderBy => $order), true); $authors->setItemCountPerPage($perPage); $authors->setCurrentPageNumber($page); $userIds = array(); $authorById = array(); foreach ($authors as $author) { $userIds[] = $author->getUserId(); $authorById[$author->getUserId()] = $author; } $users = $this->services->getUserService()->findAll(array(sprintf('%s IN (%s)', DbViewUsers::USERID, implode(',', $userIds)))); foreach ($users as $user) { $authorById[$user->getId()]->setUser($user); } $table = \Application\Factory\Component\PaginatedTableFactory::createAuthorsTable($authors); $table->getColumns()->setOrder($orderBy, $order === Order::ASCENDING); return $table; }