Networking\InitCmsBundle\Admin\Model\MediaAdmin::buildDatagrid PHP Method

buildDatagrid() public method

public buildDatagrid ( )
    public function buildDatagrid()
    {
        if ($this->datagrid) {
            $this->datagrid = null;
            $this->filterFieldDescriptions = array();
        }
        $filterParameters = $this->getFilterParameters();
        $persistentParameters = $this->getPersistentParameters();
        $context = $persistentParameters['context'];
        $provider = $persistentParameters['provider'];
        if ($context && array_key_exists('context', $filterParameters)) {
            if ($filterParameters['context']['value'] != $context) {
                $filterParameters['context']['value'] = $context;
                $filterParameters['_page'] = 1;
            }
        } else {
            $filterParameters['context'] = array('value' => $persistentParameters['context']);
        }
        if ($provider && array_key_exists('providerName', $filterParameters)) {
            if ($filterParameters['providerName']['value'] != $provider) {
                $filterParameters['providerName']['value'] = $provider;
                $filterParameters['_page'] = 1;
            }
        } elseif ($provider) {
            $filterParameters['providerName']['value'] = $provider;
            $filterParameters['_page'] = 1;
        } else {
            $filterParameters['providerName'] = array('value' => $persistentParameters['provider']);
        }
        $this->request->getSession()->set($this->getCode() . '.filter.parameters', $filterParameters);
        // transform _sort_by from a string to a FieldDescriptionInterface for the datagrid.
        if (isset($filterParameters['_sort_by']) && is_string($filterParameters['_sort_by'])) {
            if ($this->hasListFieldDescription($filterParameters['_sort_by'])) {
                $filterParameters['_sort_by'] = $this->getListFieldDescription($filterParameters['_sort_by']);
            } else {
                $filterParameters['_sort_by'] = $this->getModelManager()->getNewFieldDescriptionInstance($this->getClass(), $filterParameters['_sort_by'], array());
                $this->getListBuilder()->buildField(null, $filterParameters['_sort_by'], $this);
            }
        }
        // initialize the datagrid
        $this->datagrid = $this->getDatagridBuilder()->getBaseDatagrid($this, $filterParameters);
        $this->datagrid->getPager()->setMaxPageLinks($this->maxPageLinks);
        $mapper = new DatagridMapper($this->getDatagridBuilder(), $this->datagrid, $this);
        // build the datagrid filter
        $this->configureDatagridFilters($mapper, $context, $provider);
        // ok, try to limit to add parent filter
        if ($this->isChild() && $this->getParentAssociationMapping() && !$mapper->has($this->getParentAssociationMapping())) {
            $mapper->add($this->getParentAssociationMapping(), null, array('field_type' => 'sonata_type_model_reference', 'field_options' => array('model_manager' => $this->getModelManager()), 'operator_type' => 'hidden'));
        }
        foreach ($this->getExtensions() as $extension) {
            $extension->configureDatagridFilters($mapper, $context);
        }
    }