Use latest Repository feature to replace static model calls.

This commit is contained in:
David Molineus
2017-10-18 15:30:24 +02:00
parent edb4ac9eeb
commit dd23d386eb
7 changed files with 93 additions and 9 deletions

View File

@@ -27,7 +27,7 @@
"netzmacht/contao-leaflet-libraries": "^1.0", "netzmacht/contao-leaflet-libraries": "^1.0",
"netzmacht/php-javascript-builder": "^1.0", "netzmacht/php-javascript-builder": "^1.0",
"netzmacht/php-leaflet": "^1.0.2", "netzmacht/php-leaflet": "^1.0.2",
"netzmacht/contao-toolkit": "^3.0@dev", "netzmacht/contao-toolkit": "dev-hotfix/3.0.0-beta2",
"contao-community-alliance/meta-palettes": "^1.5", "contao-community-alliance/meta-palettes": "^1.5",
"menatwork/contao-multicolumnwizard": "^3.2", "menatwork/contao-multicolumnwizard": "^3.2",
"doctrine/cache": "^1.0" "doctrine/cache": "^1.0"

View File

@@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer; namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer;
use Contao\FilesModel; use Contao\FilesModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -24,6 +25,23 @@ use Symfony\Component\Translation\TranslatorInterface as Translator;
*/ */
class FileLabelRenderer extends AbstractLabelRenderer class FileLabelRenderer extends AbstractLabelRenderer
{ {
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* FileLabelRenderer constructor.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
}
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
@@ -37,7 +55,8 @@ class FileLabelRenderer extends AbstractLabelRenderer
*/ */
public function render(array $row, string $label, Translator $translator): string public function render(array $row, string $label, Translator $translator): string
{ {
$file = FilesModel::findByPk($row['file']); $repository = $this->repositoryManager->getRepository(FilesModel::class);
$file = $repository->findByPk($row['file']);
if ($file) { if ($file) {
$label .= ' <span class="tl_gray">(' . $file->path . ')</span>'; $label .= ' <span class="tl_gray">(' . $file->path . ')</span>';

View File

@@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer; namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer;
use Netzmacht\Contao\Leaflet\Model\MarkerModel; use Netzmacht\Contao\Leaflet\Model\MarkerModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -24,6 +25,23 @@ use Symfony\Component\Translation\TranslatorInterface as Translator;
*/ */
final class MarkersLabelRenderer extends AbstractLabelRenderer final class MarkersLabelRenderer extends AbstractLabelRenderer
{ {
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* FileLabelRenderer constructor.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@@ -37,8 +55,9 @@ final class MarkersLabelRenderer extends AbstractLabelRenderer
*/ */
public function render(array $row, string $label, Translator $translator): string public function render(array $row, string $label, Translator $translator): string
{ {
$count = MarkerModel::countBy('pid', $row['id']); $repository = $this->repositoryManager->getRepository(MarkerModel::class);
$label .= sprintf( $count = $repository->countBy(['pid'], [$row['pid']]);
$label .= sprintf(
'<span class="tl_gray"> (%s %s)</span>', '<span class="tl_gray"> (%s %s)</span>',
$count, $count,
$translator->trans('countEntries', [], 'contao_tl_leaflet_layer') $translator->trans('countEntries', [], 'contao_tl_leaflet_layer')

View File

@@ -29,7 +29,7 @@ final class OverpassLabelRenderer extends AbstractLabelRenderer
*/ */
protected function getLayerType(): string protected function getLayerType(): string
{ {
return 'vectors'; return 'overpass';
} }
/** /**

View File

@@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer; namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -24,12 +25,29 @@ use Symfony\Component\Translation\TranslatorInterface as Translator;
*/ */
final class ReferenceLabelRenderer extends AbstractLabelRenderer final class ReferenceLabelRenderer extends AbstractLabelRenderer
{ {
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* FileLabelRenderer constructor.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function getLayerType(): string protected function getLayerType(): string
{ {
return 'vectors'; return 'reference';
} }
/** /**
@@ -37,7 +55,8 @@ final class ReferenceLabelRenderer extends AbstractLabelRenderer
*/ */
public function render(array $row, string $label, Translator $translator): string public function render(array $row, string $label, Translator $translator): string
{ {
$reference = LayerModel::findByPk($row['reference']); $repository = $this->repositoryManager->getRepository(LayerModel::class);
$reference = $repository->find((int) $row['reference']);
if ($reference) { if ($reference) {
$label .= '<span class="tl_gray"> (' . $reference->title . ')</span>'; $label .= '<span class="tl_gray"> (' . $reference->title . ')</span>';

View File

@@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer; namespace Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer;
use Netzmacht\Contao\Leaflet\Model\VectorModel; use Netzmacht\Contao\Leaflet\Model\VectorModel;
use Netzmacht\Contao\Toolkit\Data\Model\RepositoryManager;
use Symfony\Component\Translation\TranslatorInterface as Translator; use Symfony\Component\Translation\TranslatorInterface as Translator;
/** /**
@@ -24,6 +25,23 @@ use Symfony\Component\Translation\TranslatorInterface as Translator;
*/ */
final class VectorsLabelRenderer extends AbstractLabelRenderer final class VectorsLabelRenderer extends AbstractLabelRenderer
{ {
/**
* Repository manager.
*
* @var RepositoryManager
*/
private $repositoryManager;
/**
* FileLabelRenderer constructor.
*
* @param RepositoryManager $repositoryManager Repository manager.
*/
public function __construct(RepositoryManager $repositoryManager)
{
$this->repositoryManager = $repositoryManager;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@@ -37,8 +55,9 @@ final class VectorsLabelRenderer extends AbstractLabelRenderer
*/ */
public function render(array $row, string $label, Translator $translator): string public function render(array $row, string $label, Translator $translator): string
{ {
$count = VectorModel::countBy('pid', $row['id']); $repository = $this->repositoryManager->getRepository(VectorModel::class);
$label .= sprintf( $count = $repository->countBy(['pid'], [$row['id']]);
$label .= sprintf(
'<span class="tl_gray"> (%s %s)</span>', '<span class="tl_gray"> (%s %s)</span>',
$count, $count,
$translator->trans('countEntries', [], 'contao_tl_leaflet_layer') $translator->trans('countEntries', [], 'contao_tl_leaflet_layer')

View File

@@ -62,6 +62,8 @@ services:
netzmacht.contao_leaflet.layer_label_renderer.markers: netzmacht.contao_leaflet.layer_label_renderer.markers:
class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\MarkersLabelRenderer class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\MarkersLabelRenderer
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: 'netzmacht.contao_leaflet.layer_label_renderer' } - { name: 'netzmacht.contao_leaflet.layer_label_renderer' }
@@ -77,15 +79,21 @@ services:
netzmacht.contao_leaflet.layer_label_renderer.reference: netzmacht.contao_leaflet.layer_label_renderer.reference:
class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\ReferenceLabelRenderer class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\ReferenceLabelRenderer
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: 'netzmacht.contao_leaflet.layer_label_renderer' } - { name: 'netzmacht.contao_leaflet.layer_label_renderer' }
netzmacht.contao_leaflet.layer_label_renderer.vectors: netzmacht.contao_leaflet.layer_label_renderer.vectors:
class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\VectorsLabelRenderer class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\VectorsLabelRenderer
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: 'netzmacht.contao_leaflet.layer_label_renderer' } - { name: 'netzmacht.contao_leaflet.layer_label_renderer' }
netzmacht.contao_leaflet.layer_label_renderer.file: netzmacht.contao_leaflet.layer_label_renderer.file:
class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\FileLabelRenderer class: Netzmacht\Contao\Leaflet\Backend\Renderer\Label\Layer\FileLabelRenderer
arguments:
- '@netzmacht.contao_toolkit.repository_manager'
tags: tags:
- { name: 'netzmacht.contao_leaflet.layer_label_renderer' } - { name: 'netzmacht.contao_leaflet.layer_label_renderer' }