/** * Create service * * @param ServiceLocatorInterface $sm * @return mixed */ public function createService(ServiceLocatorInterface $sm) { $dataGrid = new \ZfcDatagrid\Service\DatagridFactory(); $dataGrid = $dataGrid->createService($sm); $dataGrid->setTitle('Seo'); $dataGrid->setDefaultItemsPerPage(20); $em = $sm->get('doctrine.entitymanager.orm_default'); $qb = $em->createQueryBuilder(); $qb->select('s'); $qb->from('Seo\\Entity\\Seo', 's'); $dataGrid->setDataSource($qb); $col = new Column\Select('id', 's'); $col->setWidth(1); $col->setSortDefault(1, 'DESC'); $col->setIdentity(); $col->setHidden(false); $col->setLabel('Id'); $dataGrid->addColumn($col); $col = new Column\Select('pageId', 's'); $col->setLabel('PageId'); $dataGrid->addColumn($col); $col = new Column\Select('type', 's'); $col->setLabel('Type'); // $col->setReplaceValues(array( // 'BUILDER' => 'Builder', // 'JOB' => 'Job', // 'HOMEOWNER' => 'Homeowner' // )); $dataGrid->addColumn($col); $col = new Column\Select('title', 's'); $col->setLabel('Title'); $dataGrid->addColumn($col); $col = new Column\Select('description', 's'); $col->setLabel('Description'); $dataGrid->addColumn($col); $col = new Column\Select('keywords', 's'); $col->setLabel('Keywords'); $dataGrid->addColumn($col); $action2 = new Column\Action\Icon(); $action2->setIconClass('icon-edit'); $action2->setAttribute('href', "/seo/update/" . $action2->getRowIdPlaceholder()); $action2->setAttribute('data-toggle', 'modal'); $action2->setAttribute('data-target', '#updateModal'); $action3 = new Column\Action\Icon(); $action3->setIconClass('icon-remove'); $action3->setAttribute('href', '/seo/remove/' . $action3->getRowIdPlaceholder()); $action3->setAttribute('data-toggle', 'modal'); $action3->setAttribute('data-target', '#removeModal'); $col = new Column\Action(); $col->setLabel('Actions'); $col->setWidth(1); $col->addAction($action2); $col->addAction($action3); $dataGrid->addColumn($col); return $dataGrid; }
public function listAction() { /* @var $grid \ZfcDatagrid\Datagrid */ /* @var $em EntityManager */ $serviceLocator = $this->getServiceLocator(); $config = $serviceLocator->get('config'); $entityClass = $config['zfcuser']['userEntityClass']; $grid = $serviceLocator->get('ZfcDatagrid\\Datagrid'); $em = $serviceLocator->get(EntityManager::class); $userAliasDql = 'u'; $qb = $em->getRepository($entityClass)->createQueryBuilder($userAliasDql); $grid->setTitle('Users'); $columnCollection = new ColumnCollection(); $buttonCollection = new ButtonCollection(); $colId = new Column\Select('id', $userAliasDql); $colId->setLabel('User ID'); $colId->setWidth(1); $columnCollection->put(ColumnCollection::$ID_COLUMN_ID, $colId); $colUsername = new Column\Select('username', $userAliasDql); $colUsername->setLabel('Username'); $columnCollection->put(ColumnCollection::$ID_COLUMN_USERNAME, $colUsername); $colEmail = new Column\Select('email', $userAliasDql); $colEmail->setLabel('Email'); $columnCollection->put(ColumnCollection::$ID_COLUMN_EMAIL, $colEmail); $actions = new Column\Action(); $actions->setLabel('#Action'); $actions->setWidth(3); $columnCollection->put(ColumnCollection::$ID_COLUMN_ACTIONS, $actions, -1000); $editBtn = new Column\Action\Button(); $editBtn->setLabel('Edit'); $editBtn->setAttribute('class', 'btn btn-primary btn-sm'); $editBtn->setLink($this->url()->fromRoute('zfcadmin/zfcuseradmin/edit', array('userId' => $editBtn->getColumnValuePlaceholder($colId)))); $buttonCollection->put(ButtonCollection::$ID_EDIT_BTN, $editBtn); $deleteBtn = new Column\Action\Button(); $deleteBtn->setLabel('Delete'); $deleteBtn->setAttribute('class', 'btn btn-danger btn-sm delete-btn'); $deleteBtn->setLink($this->url()->fromRoute('zfcadmin/zfcuseradmin/remove', array('userId' => $deleteBtn->getColumnValuePlaceholder($colId)))); $buttonCollection->put(ButtonCollection::$ID_DELETE_BTN, $deleteBtn); $events = $this->createPrivateEventManager(ListEvent::class); $events->trigger(ListEvent::$EVENT_NAME, $this, array('queryBuilder' => $qb, 'buttonCollection' => $buttonCollection, 'columnCollection' => $columnCollection, 'userAliasDql' => $userAliasDql)); foreach ($buttonCollection->getIterator() as $btn) { $actions->addAction($btn); } foreach ($columnCollection->getIterator() as $column) { $grid->addColumn($column); } //$grid->addColumn($actions); $grid->setDataSource($qb); // Finalizing $grid->setToolbarTemplateVariables(array('addUrl' => $this->url()->fromRoute('zfcadmin/zfcuseradmin/create'))); return $grid->getResponse(); }