Version:

Precondition Service for Data Pools

Data pool workspaces and permissions provide a good way to configure which assets and data objects should be visible in the portal engine frontend. Nevertheless, depending on the use case this might not be enough.

If you would like to add your individual filter logic which should be applied to one or multiple data pools implement a custom pre condition service.

To add custom pre condition services, define a Symfony service that extends PreConditionServiceHandlerInterface and has the tag pimcore.portal_engine.pre_condition_service_handler assigned.

The drop down in the configuration document lists all services with the tag pimcore.portal_engine.pre_condition_service_handler assigned.

Sample Service
class ActualCars implements PreConditionServiceHandlerInterface
{

    public function addPreCondition(Search $search)
    {
        $search->addQuery(new TermQuery("standard_fields.objectType.raw", "Actual-Car"));
    }
}
Sample Service Definition
  AppBundle\PortalEngine\PreConditionService\ActualCars:
    tags:
      - { name: pimcore.portal_engine.pre_condition_service_handler }

The search can be modified using the ONGR ElasticsearchDSL query builder library.