Skip to content

Commit

Permalink
added entity filter as dep
Browse files Browse the repository at this point in the history
  • Loading branch information
Dennis Patzer committed Sep 12, 2019
1 parent e16df5a commit 300079c
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 28 deletions.
3 changes: 2 additions & 1 deletion composer.json
Expand Up @@ -9,7 +9,8 @@
"symfony/framework-bundle": "^3.4",
"heimrichhannot/contao-utils-bundle": "^2.0",
"heimrichhannot/contao-multi-column-editor-bundle": "^2.0",
"heimrichhannot/contao-fieldpalette-bundle": ">=0.2 <2.0-dev ",
"heimrichhannot/contao-fieldpalette-bundle": ">=0.2 <2.0-dev",
"heimrichhannot/contao-entity-filter-bundle": "^1.5",
"codefog/contao-haste": "^4.18",
"twig/extensions": "^1.5",
"heimrichhannot/truncate-html": "^1.0",
Expand Down
5 changes: 3 additions & 2 deletions src/Backend/FilterConfigElement.php
Expand Up @@ -68,7 +68,7 @@ public function modifyPalette(DataContainer $dc)
}
}

if(ExternalEntityType::TYPE == $filterConfigElement->type && $filterConfigElement->sourceTable) {
if (ExternalEntityType::TYPE == $filterConfigElement->type && $filterConfigElement->sourceTable) {
$dca['fields']['sourceEntityResolve']['eval']['multiColumnEditor']['table'] = $filterConfigElement->sourceTable;
}
}
Expand Down Expand Up @@ -381,11 +381,12 @@ public function getOptions(DataContainer $dc)

/**
* @param DataContainer $dc
*
* @return array
*/
public function getSourceFields(DataContainer $dc): array
{
if(!$dc->activeRecord->sourceTable) {
if (!$dc->activeRecord->sourceTable) {
return [];
}

Expand Down
56 changes: 31 additions & 25 deletions src/Filter/Type/ExternalEntityType.php
@@ -1,11 +1,13 @@
<?php

/*
* Copyright (c) 2019 Heimrich & Hannot GmbH
*
* @license LGPL-3.0-or-later
*/

namespace HeimrichHannot\FilterBundle\Filter\Type;


use Contao\Controller;
use Contao\Database;
use Contao\StringUtil;
use Contao\System;
use HeimrichHannot\FilterBundle\Filter\AbstractType;
Expand Down Expand Up @@ -33,31 +35,12 @@ public function buildQuery(FilterQueryBuilder $builder, FilterConfigElementModel

$where = $this->getWhere($builder, $element, $sourceValue);
$builder->andWhere($where);

}

public function buildForm(FilterConfigElementModel $element, FormBuilderInterface $builder)
{
}

/**
* @param FilterQueryBuilder $builder
* @param FilterConfigElementModel $element
* @param $sourceValue
* @return string
*/
protected function getWhere(FilterQueryBuilder $builder, FilterConfigElementModel $element, $sourceValue): string
{
$filter = $this->config->getFilter();

$field = $filter['dataContainer'] . '.' . $element->field;
$operator = $this->getOperator($element);
$dca = $this->getDca($filter, $element);

return System::getContainer()->get('huh.utils.database')->composeWhereForQueryBuilder($builder, $field,
$operator, $dca, $sourceValue);
}

/**
* {@inheritdoc}
*/
Expand All @@ -76,6 +59,7 @@ public function getDefaultName(FilterConfigElementModel $element)

/**
* @param FilterConfigElementModel $element
*
* @return mixed|null
*/
public function getSourceEntity(FilterConfigElementModel $element)
Expand All @@ -92,9 +76,29 @@ public function getSourceEntity(FilterConfigElementModel $element)
return System::getContainer()->get('huh.utils.model')->findOneModelInstanceBy($element->sourceTable, [$where], $values);
}

/**
* @param FilterQueryBuilder $builder
* @param FilterConfigElementModel $element
* @param $sourceValue
*
* @return string
*/
protected function getWhere(FilterQueryBuilder $builder, FilterConfigElementModel $element, $sourceValue): string
{
$filter = $this->config->getFilter();

$field = $filter['dataContainer'].'.'.$element->field;
$operator = $this->getOperator($element);
$dca = $this->getDca($filter, $element);

return System::getContainer()->get('huh.utils.database')->composeWhereForQueryBuilder($builder, $field,
$operator, $dca, $sourceValue);
}

/**
* @param $entity
* @param FilterConfigElementModel $element
*
* @return string
*/
protected function getSourceValueForFilter($entity, FilterConfigElementModel $element): string
Expand All @@ -114,8 +118,9 @@ protected function getSourceValueForFilter($entity, FilterConfigElementModel $el
}

/**
* @param array $filter
* @param array $filter
* @param FilterConfigElementModel $element
*
* @return array
*/
protected function getDca(array $filter, FilterConfigElementModel $element): array
Expand All @@ -125,14 +130,15 @@ protected function getDca(array $filter, FilterConfigElementModel $element): arr

/**
* @param FilterConfigElementModel $element
*
* @return string
*/
protected function getOperator(FilterConfigElementModel $element): string
{
if(!$element->customOperator) {
if (!$element->customOperator) {
return $this->getDefaultOperator($element);
}

return $element->customOperator;
}
}
}

0 comments on commit 300079c

Please sign in to comment.