Exemple #1
0
 public function testCreateNodeWithOnlyRequiredConfigUsesTheDefaultValues()
 {
     /** @var Application|\PHPUnit_Framework_MockObject_MockObject $appMock */
     $appMock = $this->getMockBuilder('Silex\\Application')->disableOriginalConstructor()->getMock();
     $appMock->expects(self::any())->method('offsetExists')->with('manager-config')->will(self::returnValue(['manager' => []]));
     $appMock->expects(self::any())->method('offsetGet')->with('manager-config')->will(self::returnValue(['manager' => ['dummy' => ['index' => ['columns' => []]]]]));
     $node = new Node($appMock, 'dummy', 'index');
     self::assertSame(10, $node->getItemPerPage());
     self::assertSame([], $node->getColumns());
     self::assertSame('dummy', $node->getDbTable());
     self::assertSame('Manager: dummy', $node->getHeader());
     self::assertSame('setting', $node->getIcon());
     self::assertEmpty($node->getQuery());
     self::assertNull($node->getSearch());
 }
 /**
  * @param Application $app
  * @param Request     $request
  * @param string      $dbTable
  * @param string      $page
  *
  * @return string
  */
 public function index(Application $app, Request $request, $dbTable, $page)
 {
     $config = new Node($app, $dbTable, 'index');
     $columns = $config->getColumns();
     if ($request->getQueryString() && $config->getSearch()) {
         foreach ($config->getSearchInputs() as $input) {
             $this->db->whereLike($input['name'], $request->get(str_replace('.', '_', $input['name'])));
         }
     }
     $total = $this->db->count($config);
     list($pagination, $pages) = $config->getPagination() ? $this->db->limit($total, $config->getItemPerPage(), $page) : ['', 0];
     $result = $this->db->fetchByConfig($config, $pagination);
     foreach ($result as $key => $row) {
         foreach ($columns as $name => $value) {
             if (isset($action['modifier'][$name])) {
                 $callable = $action['modifier'][$name];
                 $result[$key][$name] = $callable($result[$key]);
             }
         }
     }
     return $app['twig']->render($app['manager-config']['view']['index'], ['rows' => $result, 'title' => $columns, 'action' => $config->getAction(), 'header' => $config->getHeader(), 'icon' => $config->getIcon(), 'total' => $total, 'pages' => $pages, 'pagination' => $pagination, 'currentTable' => $dbTable, 'search' => $config->getSearch(), 'currentPage' => $page]);
 }