/
GetEventHelper.php
107 lines (92 loc) · 3.02 KB
/
GetEventHelper.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
/*
* This file is part of con4gis,
* the gis-kit for Contao CMS.
*
* @package con4gis
* @version 6
* @author con4gis contributors (see "authors.txt")
* @license LGPL-3.0-or-later
* @copyright Küstenschmiede GmbH Software & Design
* @link https://www.con4gis.org
*/
namespace con4gis\ExportBundle\Classes\Helper;
use con4gis\ExportBundle\Classes\Events\ExportRunEvent;
use Contao\Config;
use Contao\FilesModel;
use Contao\InsertTags;
use Contao\System;
use Doctrine\ORM\EntityManager;
class GetEventHelper
{
/**
* @var EntityManager
*/
private $entityManager = null;
/**
* GetEventHelper constructor.
*/
public function __construct()
{
System::loadLanguageFile('default');
$this->entityManager = System::getContainer()->get('doctrine.orm.default_entity_manager');
}
/**
* @param $exportSettings
* @return ExportRunEvent
*/
public function getExportEvent($exportSettings)
{
$exportSettings = $this->getSettings($exportSettings);
$filename = $this->parseFilename($exportSettings);
$foldername = $this->getPath($exportSettings);
$event = new ExportRunEvent();
$this->getPath($exportSettings);
$event->setFilename($filename);
$event->setFolderName($foldername);
$event->setSettings($exportSettings);
$event->setLang($GLOBALS['TL_LANG']);
$event->setWebsitetile(strval(Config::get('websiteTitle')));
$event->setAdminmail(strval(Config::get('adminEmail')));
$event->setCharset(strval(Config::get('characterSet')));
return $event;
}
/**
* Lädt die Einstellungen des Exports.
* @param $id
* @return mixed
*/
protected function getSettings($id)
{
$respositoryName = '\con4gis\ExportBundle\Entity\TlC4gExport';
$respository = $this->entityManager->getRepository($respositoryName);
$exportSettings = $respository->find($id);
return $exportSettings;
}
/**
* Setzt den Pfad für das Speichern des Exports.
* @param $exportSettings
* @return string
*/
protected function getPath($exportSettings)
{
$savefolder = $exportSettings->getSavefolder();
$modleFiles = FilesModel::findByUuid((string)$savefolder);
$path = $modleFiles->path;
return TL_ROOT . '/' . $path . '/';
}
/**
* Erstellt den Dateinamen für die Exportdatei.
* @param $exportSettings
* @return string
*/
protected function parseFilename($exportSettings)
{
$pattern = $GLOBALS['con4gis']['export']['filename'];
$pattern = str_replace('{{export::title}}', $exportSettings->getTitle(), $pattern);
$pattern = str_replace('{{time}}', date('H.i'), $pattern);
// replace manual instead of inserttag, because it creates an esi tag into the filename
$filename = str_replace('{{date}}', date('d.m.Y'), $pattern);
return $filename;
}
}