Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function visitDatasource(DatagridConfiguration $config, DatasourceInterface $datasource)
 {
     if (!$this->isApplicable($config)) {
         return;
     }
     /** @var OrmDatasource $datasource */
     $qb = $datasource->getQueryBuilder();
     $dqlParts = $qb->getDQLParts();
     /** @var Andx $conditions */
     $conditions = $dqlParts['where'];
     if (empty($conditions)) {
         return;
     }
     $parts = $conditions->getParts();
     if (empty($parts)) {
         return;
     }
     $qb->resetDQLPart('where');
     $addParameter = false;
     foreach ($parts as $part) {
         if (!is_string($part)) {
             $part = $qb->expr()->orX($part, $this->createItemsFunc($qb));
             $addParameter = true;
         }
         $qb->andWhere($part);
     }
     if ($addParameter) {
         $qb->setParameter('segmentId', $this->segmentHelper->getSegmentIdByGridName($config->offsetGetByPath('[name]')));
     }
 }
 /**
  * @param string       $gridName
  * @param ParameterBag $parameterBag
  *
  * @return bool
  */
 public function isApplicable($gridName, ParameterBag $parameterBag)
 {
     if ($parameterBag->get(MarketingListItemsListener::MIXIN, false) !== self::MIXIN_NAME) {
         return false;
     }
     $segmentId = $this->segmentHelper->getSegmentIdByGridName($gridName);
     return $segmentId && (bool) $this->segmentHelper->getMarketingListBySegment($segmentId);
 }
Ejemplo n.º 3
0
 /**
  * @param string       $gridName
  * @param ParameterBag $parameters
  *
  * @return bool
  */
 public function isApplicable($gridName, $parameters)
 {
     if (!$parameters->get(self::MIXIN, false)) {
         return false;
     }
     $segmentId = $this->segmentHelper->getSegmentIdByGridName($gridName);
     return $segmentId && (bool) $this->segmentHelper->getMarketingListBySegment($segmentId);
 }