GridHandler::fetchGrid PHP Method

fetchGrid() public method

Render the entire grid controller and send it to the client.
public fetchGrid ( $args, $request ) : JSONMessage
$args array
$request Request
return JSONMessage JSON object
    function fetchGrid($args, $request)
    {
        $this->setUrls($request);
        // Prepare the template to render the grid.
        $templateMgr = TemplateManager::getManager($request);
        $templateMgr->assign('grid', $this);
        $templateMgr->assign('request', $request);
        // Add rendered filter
        $renderedFilter = $this->renderFilter($request);
        $templateMgr->assign('gridFilterForm', $renderedFilter);
        // Add columns.
        $this->setFirstDataColumn();
        $columns = $this->getColumns();
        $templateMgr->assign('columns', $columns);
        $this->_fixColumnWidths();
        // Do specific actions to fetch this grid.
        $this->doSpecificFetchGridActions($args, $request, $templateMgr);
        // Assign additional params for the fetchRow and fetchGrid URLs to use.
        $templateMgr->assign('gridRequestArgs', $this->getRequestArgs());
        $this->callFeaturesHook('fetchGrid', array('grid' => &$this, 'request' => &$request));
        // Assign features.
        $templateMgr->assign('features', $this->getFeatures());
        // Let the view render the grid.
        return new JSONMessage(true, $templateMgr->fetch($this->getTemplate()));
    }

Usage Example

 /**
  * List all site users based on optional search criteria
  * @param $args array
  * @param $request PKPRequest
  */
 function fetchGrid($args, &$request)
 {
     // Get the search terms
     $searchField = $request->getUserVar('searchField');
     $searchMatch = $request->getUserVar('searchMatch');
     $search = $request->getUserVar('search');
     // Get all users for this site that match search criteria
     $userDao =& DAORegistry::getDAO('UserDAO');
     $rangeInfo = $this->getRangeInfo('users');
     $users =& $userDao->getUsersByField($searchField, $searchMatch, $search, true, $rangeInfo);
     $rowData = array();
     while ($user =& $users->next()) {
         $rowData[$user->getId()] = $user;
     }
     $this->setData($rowData);
     return GridHandler::fetchGrid($args, $request);
 }
All Usage Examples Of GridHandler::fetchGrid