<?php
namespace App\Controller;
use App\Entity\Cities;
use App\Entity\Contact;
use App\Entity\Events;
use App\Entity\EventType;
use App\Entity\Globals;
use App\Entity\MenuItem;
use App\Entity\Pages;
use App\Entity\Picture;
use App\Form\ContactFormType;
use App\Form\EventsType;
use App\Form\HomePageFilesType;
use App\Form\HomePageType;
use App\Form\LelkipasztorType;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Asset\UrlPackage;
use Symfony\Component\Asset\VersionStrategy\EmptyVersionStrategy;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Translation\TranslatorInterface;
class HomeController extends AbstractController
{
private $globals;
private $lang;
private $page;
public function __construct(EntityManagerInterface $entityManager, SessionInterface $session, TranslatorInterface $translator)
{
$this->globals = new Globals();
$this->lang = $this->globals->getCurrentLanguage($session);
$this->page = $this->globals->getDefaultPage($entityManager, $translator, $this->lang);
$this->globals->setGlobals($entityManager);
}
/**
* @Route("/", name="home")
*/
public function homepage(Request $request, TranslatorInterface $translator)
{
$this->globals->setUserStuff([
'loggedIn' => $this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_USER') || $this->isGranted('ROLE_MODERATOR'),
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'isModerator' => $this->isGranted('ROLE_MODERATOR'),
'isUser' => $this->isGranted('ROLE_USER'),
]);
//get available languages
$langs = $this->getDoctrine()->getRepository(MenuItem::class)->findAll();
$this->globals->setLangs($langs);
//set page title
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'home',
'language' => $this->lang,
]);
if (!is_null($page)) {
$this->page->title = $page->getTitle();
$this->page->content = $page->getContent();
}
$this->page->istentiszteletekTitle = $translator->trans('widgets.istentiszteletek.title', [], 'messages', $this->lang);
$this->page->hirekTitle = $translator->trans('widgets.hirek.pagetitle', [], 'messages', $this->lang);
$this->page->varosokTitle = $translator->trans('widgets.varosok.title', [], 'messages', $this->lang);
$this->page->bemutatkozasTitle = $translator->trans('pages.bemutatkozas.title', [], 'messages', $this->lang);
$this->page->keptarTitle = $translator->trans('pages.galleries.title', [], 'messages', $this->lang);
$this->page->url = $request->getUri();
$cities = $this->getDoctrine()->getRepository(Cities::class)->findBy([], ['name' => 'ASC']);
$menus = $this->globals->getMenus($this->getDoctrine(), $request, $this->lang, $translator);
$hirek_result = $this->getDoctrine()->getRepository(Events::class)->getLastEvents(1, 5, $this->lang);
$istentiszteletek = $this->getDoctrine()->getRepository(Events::class)->getLastEvents(2, 5);
$gomb = $this->getDoctrine()->getRepository(Events::class)->getLastEvents(3);
$widgets = [];
$widgets['istentisztelet'] = new \stdClass();
$widgets['istentisztelet']->title = $translator->trans('widgets.istentiszteletek.title', [], 'messages', $this->lang);
$widgets['istentisztelet']->items = [];
$widgets['istentisztelet']->url = '';
$widgets['istentisztelet']->caption = '';
foreach ($istentiszteletek as $index => $istentisztelet) {
if ($istentisztelet->getEventType()->getId() == 2) {
$item = $istentisztelet;
$item->weekday = $this->globals->getDayOfWeek($istentisztelet->getDatum()->format('Y-m-d'), $this->lang);
$item->day = $istentisztelet->getDatum()->format('d');
$item->month = $this->globals->getMonthOfDate($istentisztelet->getDatum()->format('Y-m-d'), $this->lang);
$item->year = $istentisztelet->getDatum()->format('Y');
$item->eventTime = $istentisztelet->getTime()->format('H:i');
if (count($widgets['istentisztelet']->items) < 3) {
$widgets['istentisztelet']->items[] = $item;
}
}
}
$hirek = [];
foreach ($hirek_result as $index => $hir) {
$item = $hir;
$item->weekday = $this->globals->getDayOfWeek($hir->getDatum()->format('Y-m-d'), $this->lang);
$item->day = $hir->getDatum()->format('d');
$item->month = $this->globals->getMonthOfDate($hir->getDatum()->format('Y-m-d'), $this->lang);
$item->year = $hir->getDatum()->format('Y');
$item->eventTime = is_null($hir->getTime()) ? '' : $hir->getTime()->format('H:i');
$item->isMulti = 0;
if (!is_null($hir->getEndDatum())) {
$item->isMulti = 1;
$item->end_weekday = $this->globals->getDayOfWeek($hir->getEndDatum()->format('Y-m-d'), $this->lang);
$item->end_day = $hir->getEndDatum()->format('d');
$item->end_month = $this->globals->getMonthOfDate($hir->getEndDatum()->format('Y-m-d'), $this->lang);
$item->end_year = $hir->getEndDatum()->format('Y');
}
$hirek[] = $item;
}
if ($gomb) {
$widgets['protestanshirado'] = new \stdClass();
$widgets['protestanshirado']->title = '';
$widgets['protestanshirado']->items = [];
$widgets['protestanshirado']->url = $gomb->getUrl();
$widgets['protestanshirado']->caption = $gomb->getCaption();
}
$form = new \stdClass();
$form->title = $translator->trans('hirlevel.title', [], 'messages', $this->lang);
$form->email = new \stdClass();
$form->email->title = $translator->trans('hirlevel.email.field', [], 'messages', $this->lang);
$form->email->placeholder = $translator->trans('hirlevel.email.placeholder', [], 'messages', $this->lang);
$form->email->helptext = $translator->trans('hirlevel.email.helptext', [], 'messages', $this->lang);
$form->name = new \stdClass();
$form->name->title = $translator->trans('hirlevel.name.field', [], 'messages', $this->lang);
$form->name->placeholder = $translator->trans('hirlevel.name.placeholder', [], 'messages', $this->lang);
$form->checkbox = sprintf(
$translator->trans('hirlevel.checkbox', [], 'messages', $this->lang),
'<a href="/datenschutzerklarung" target="_blank" class="form-check-label-link">',
'</a>'
);
$form->submit = $translator->trans('hirlevel.submit', [], 'messages', $this->lang);
$widgets['signupform'] = $form;
$widgets['hirek'] = new \stdClass();
$widgets['hirek']->title = $translator->trans('widgets.hirek.title', [], 'messages', $this->lang);
$widgets['hirek']->youtubeID = $this->globals->getYoutubeID();
$bemutatkozas_result = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'bemutatkozas',
'language' => $this->lang,
]);
$bemutatkozas = $bemutatkozas_result ? $bemutatkozas_result->getContent() : 'Panik, no content!';
$galleries_raw = $this->getDoctrine()->getRepository(Events::class)->getAllGalleries();
$galleries = [];
foreach ($galleries_raw as $item) {
$item->imagesCount = count($item->getPictures());
if (!is_null($item->getImage())) {
$img = $this->getDoctrine()->getRepository(Picture::class)->findOneBy([
'id' => $item->getImage(),
]);
if ($img) {
$item->topImage = '/galleries/'.$item->getId().'/'.$img->getPhoto();
}
}
$galleries[] = $item;
}
$hP_item = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'home',
'language' => $this->lang,
]);
$homePage = new \stdClass();
$homePage->name = 'home';
$homePage->language = $this->lang;
$homePage->content = '';
$homePage->cim = '';
$homePage->kep = '';
$homePage->url = '';
$homePage->url_caption = '';
if ($hP_item) {
$event_type = $this->getDoctrine()->getRepository(EventType::class)->findOneBy(['name' => 'kezdolap_vers']);
$event_item = $this->getDoctrine()->getRepository(Events::class)->findOneBy([
'eventType' => $event_type,
'language' => $this->lang,
]);
if ($event_item) {
$homePage->content = $event_item->getDescription();
$homePage->cim = $event_item->getCaption();
if (!is_null($event_item->getImage())) {
$img = $this->getDoctrine()->getRepository(Events::class)->findBy(['id' => $event_item->getImage()])[0];
if ($img) {
if (stristr($img->getMachineName(), '://') !== false) {
$homePage->kep = $img->getMachineName();
} else {
$homePage->kep = '/uploads/kezdolap/' . $img->getMachineName();
}
$homePage->url = $img->getUrl();
$homePage->url_caption = $img->getCity();
}
}
$tmp = '<strong>'.$homePage->cim.'</strong><p style="margin-bottom: -10px;"><img class="alignnone wp-image-2243 size-full" src="'.$homePage->kep.'" alt="" /></p><p style="text-align: left; "><small style="color: #999;"><i>Foto: <a style="color:#999; text-decoration:none !important;" href="'.$homePage->url.'" target="_blank">'.$homePage->url_caption.'</a></i></small></p>';
$this->page->content = $tmp.$this->page->content;
}
}
if ($this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_MODERATOR') || $this->isGranted('ROLE_HOMEPAGE')) {
$homeFiles = $this->getHomeFiles();
$homePageForm = $this->createForm(HomePageType::class, $homePage, [
'action' => $this->generateUrl('home_update'),
'kepek' => $homeFiles->files,
'kepdata' => $homeFiles->data,
'url' => $homePage->url,
'url_caption' => $homePage->url_caption,
'kep' => $homePage->kep,
'cim' => $homePage->cim,
]);
$homeFilesForm = new \stdClass();
$homeFilesForm->file = '';
$homeFiles->form = $this->createForm(HomePageFilesType::class, $homeFilesForm, [
'action' => $this->generateUrl('home_uploadFile'),
]);
} else {
$homePageForm = false;
$homeFiles = false;
}
return $this->render('pages/home.html.twig', [
'page' => $this->page,
'cities' => $cities,
'menus' => $menus,
'currentLang' => $this->globals->getLang($this->lang),
'widgets' => $widgets,
'hirek' => $hirek,
'istentiszteletek' => $istentiszteletek,
'bemutatkozas' => $bemutatkozas,
'galleries' => $galleries,
'globals' => $this->globals->getGlobals(),
'homePageForm' => $homePageForm == false ? null : $homePageForm->createView(),
'nemtalalt' => $translator->trans('pages.notfoundtext', [], 'messages', $this->lang),
'homeFiles' => $homeFiles == false ? null : $homeFiles,
'homeFilesForm' => $homePageForm == false ? null : $homeFiles->form->createView(),
]);
}
public function getHomeFiles() {
$res = new \stdClass();
$res->path = 'uploads/kezdolap/';
$res->files = [];
$res->data = null;
// $path = __DIR__.'/../../public/'.$res->path;
// if (!is_dir($path)) {
// mkdir($path,0755);
// }
//
// $objects = scandir($path);
// foreach ($objects as $object) {
// if ($object != "." && $object != "..") {
// if (!is_dir($object)) {
// $res->files[$object] = $object;
// }
// }
// }
$page = $this->getDoctrine()->getRepository(Events::class)->findOneBy(['title' => 'home'.$this->lang]);
$activeImage = 0;
if ($page) {
if (!is_null($page->getImage())) {
$activeImage = $page->getImage();
}
}
$eventType = $this->getDoctrine()->getRepository(EventType::class)->findOneBy(['name' => 'kezdolap_kep']);
$files = $this->getDoctrine()->getRepository(Events::class)->findBy(['eventType'=>$eventType]);
foreach ($files as $file) {
if ($file->getId() == $activeImage) {
$file->active = true;
$file->name = $file->getMachineName();
} else { $file->active = false;}
$file->path = stristr($file->getMachineName(),'://') !== false ? $file->getMachineName() : ('/public/uploads/kezdolap/'.$file->getMachineName());
if ($file->active) { $res->data = $file; }
$res->files[] = $file;
}
return $res;
}
/**
* @Route("/update_homefile", name="home_uploadFile", methods={"POST"})
*/
public function homeFileUpdate(Request $request): RedirectResponse
{
$frm = $this->createForm(HomePageFilesType::class);
$frm->handleRequest($request);
if ($frm->isValid() && $frm->isSubmitted()) {
$data = $_POST['home_page_files'];// url, url_caption
$file = $_FILES['home_page_files'];//name, type, tmp_name [file]
$path = __DIR__ . '/../../public/uploads/kezdolap/';
if (!is_dir($path)) {
mkdir($path, 0755);
}
move_uploaded_file($file['tmp_name']['file'], $path . $file['name']['file']);
$event_type = $this->getDoctrine()->getRepository(EventType::class)->findOneBy(['name' => 'kezdolap_kep']);
$ev = new Events();
$ev->setEventType($event_type);
$ev->setMachineName($file['name']['file']);
$ev->setHideDatum(1);
$ev->setHideTitle(1);
$ev->setUrl($data['url']);
$ev->setCity($data['url_caption']);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($ev);
$entityManager->flush();
}
return $this->redirectToRoute('home');
}
/**
* @Route("/changelanguage/{lang}", name="changelanguage")
*/
public function changeLanguage(string $lang = 'hu', Request $request, SessionInterface $session)
{
$this->globals->setCurrentLanguage($session, $lang);
$referer = $request->headers->get('referer');
return $this->redirect($referer);
}
/**
* @Route("/hirek", name="hirek")
*/
public function hirek(Request $request, TranslatorInterface $translator)
{
$this->globals->setUserStuff([
'loggedIn' => $this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_USER') || $this->isGranted('ROLE_MODERATOR'),
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'isModerator' => $this->isGranted('ROLE_MODERATOR'),
'isUser' => $this->isGranted('ROLE_USER'),
]);
//get available languages
$langs = $this->getDoctrine()->getRepository(MenuItem::class)->findAll();
$this->globals->setLangs($langs);
//set page title
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'hirek',
'language' => $this->lang,
]);
if (!is_null($page)) {
$this->page->title = $page->getTitle();
$this->page->content = $page->getContent();
} else {
$this->page->title = $translator->trans('pages.hirek.title', [], 'messages', $this->lang);
}
$this->page->url = $request->getUri();
$this->page->metas->description = 'hirek, Rajna-Vesztfáliai Magyar Protestáns Gyülekezet, Ungarische Evangelische Gemeinde in NRW';
$menus = $this->globals->getMenus($this->getDoctrine(), $request, $this->lang, $translator);
$hirek_result = $this->getDoctrine()->getRepository(Events::class)->getLastEvents(1, 50, $this->lang);
$hirek = [];
foreach ($hirek_result as $index => $hir) {
$item = $hir;
$item->weekday = $this->globals->getDayOfWeek($hir->getDatum()->format('Y-m-d'), $this->lang);
$item->day = $hir->getDatum()->format('d');
$item->month = $this->globals->getMonthOfDate($hir->getDatum()->format('Y-m-d'), $this->lang);
$item->year = $hir->getDatum()->format('Y');
$item->eventTime = is_null($hir->getTime()) ? '' : $hir->getTime()->format('H:i');
$item->isMulti = 0;
if (!is_null($hir->getEndDatum())) {
$item->isMulti = 1;
$item->end_weekday = $this->globals->getDayOfWeek($hir->getEndDatum()->format('Y-m-d'), $this->lang);
$item->end_day = $hir->getEndDatum()->format('d');
$item->end_month = $this->globals->getMonthOfDate($hir->getEndDatum()->format('Y-m-d'), $this->lang);
$item->end_year = $hir->getEndDatum()->format('Y');
}
$hirek[] = $item;
}
return $this->render('pages/hirek.html.twig', [
'page' => $this->page,
'menus' => $menus,
'currentLang' => $this->globals->getLang($this->lang),
'hirek' => $hirek,
'results_count' => count($hirek),
'notfoundtext' => $translator->trans('pages.notfoundtext', [], 'messages', $this->lang),
'globals' => $this->globals->getGlobals(),
]);
}
/**
* @Route("/istentisztelet/{varos}", name="istentisztelet")
*/
public function istentisztelet(string $varos = null, Request $request, TranslatorInterface $translator)
{
$this->globals->setUserStuff([
'loggedIn' => $this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_USER') || $this->isGranted('ROLE_MODERATOR'),
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'isModerator' => $this->isGranted('ROLE_MODERATOR'),
'isUser' => $this->isGranted('ROLE_USER'),
]);
//get available languages
$langs = $this->getDoctrine()->getRepository(MenuItem::class)->findAll();
$this->globals->setLangs($langs);
//set page title
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'istentisztelet',
'language' => $this->lang,
]);
if (!is_null($page)) {
$this->page->title = $page->getTitle();
$this->page->content = $page->getContent();
} else {
$this->page->title = $translator->trans('pages.istentiszteletek.title', [], 'messages', $this->lang);
}
$this->page->varosokTitle = $translator->trans('widgets.varosok.title', [], 'messages', $this->lang);
$this->page->url = $request->getUri();
$this->page->metas->description = 'istentisztelet, Rajna-Vesztfáliai Magyar Protestáns Gyülekezet, Ungarische Evangelische Gemeinde in NRW';
$menus = $this->globals->getMenus($this->getDoctrine(), $request, $this->lang, $translator);
$cities = $this->getDoctrine()->getRepository(Cities::class)->findBy([], ['name' => 'ASC']);
if (is_null($varos)) {
$istentiszteletek_results = $this->getDoctrine()->getRepository(Events::class)->getLastEvents(2, 50);
} else {
$city = $this->getDoctrine()->getRepository(Cities::class)->findOneBy([
'name' => $varos
]);
//append all cities option to cities list
$item = new \stdClass();
$item->name = '';
$item->caption = $translator->trans('pages.istentiszteletek.mindenvaros', [], 'messages', $this->lang);
$cities[] = $item;
//get result for the city if it's found
if ($city) {
$istentiszteletek_results = $this->getDoctrine()->getRepository(Events::class)->getLastEventsForCity($city->getId(), 2, 50);
} else {
$istentiszteletek_results = [];
}
}
$istentiszteletek = [];
foreach ($istentiszteletek_results as $index => $istentisztelet) {
if ($istentisztelet->getEventType()->getId() == 2) {
$item = $istentisztelet;
$item->weekday = $this->globals->getDayOfWeek($istentisztelet->getDatum()->format('Y-m-d'), $this->lang);
$item->day = $istentisztelet->getDatum()->format('d');
$item->month = $this->globals->getMonthOfDate($istentisztelet->getDatum()->format('Y-m-d'), $this->lang);
$item->year = $istentisztelet->getDatum()->format('Y');
$item->eventTime = $istentisztelet->getTime()->format('H:i');
$istentiszteletek[] = $item;
}
}
return $this->render('pages/istentisztelet.html.twig', [
'page' => $this->page,
'menus' => $menus,
'currentLang' => $this->globals->getLang($this->lang),
'istentiszteletek' => $istentiszteletek,
'cities' => $cities,
'results_count' => count($istentiszteletek),
'notfoundtext' => $translator->trans('pages.notfoundtext', [], 'messages', $this->lang),
'globals' => $this->globals->getGlobals(),
]);
}
/**
* @Route("/bemutatkozas", name="bemutatkozas")
*/
public function bemutatkozas(Request $request, TranslatorInterface $translator)
{
$this->globals->setUserStuff([
'loggedIn' => $this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_USER') || $this->isGranted('ROLE_MODERATOR'),
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'isModerator' => $this->isGranted('ROLE_MODERATOR'),
'isUser' => $this->isGranted('ROLE_USER'),
]);
//get available languages
$langs = $this->getDoctrine()->getRepository(MenuItem::class)->findAll();
$this->globals->setLangs($langs);
//set page title
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'bemutatkozas',
'language' => $this->lang,
]);
if (!is_null($page)) {
$this->page->title = $page->getTitle();
$this->page->content = $page->getContent();
} else {
$this->page->title = $translator->trans('pages.bemutatkozas.title', [], 'messages', $this->lang);
}
$this->page->varosokTitle = $translator->trans('widgets.varosok.title', [], 'messages', $this->lang);
$this->page->url = $request->getUri();
$this->page->metas->description = 'A magyar protestáns gyülekezet múltja és jelene Észak-Rajna-Vesztfáliában';
$menus = $this->globals->getMenus($this->getDoctrine(), $request, $this->lang, $translator);
return $this->render('pages/bemutatkozas.html.twig', [
'page' => $this->page,
'menus' => $menus,
'currentLang' => $this->globals->getLang($this->lang),
'globals' => $this->globals->getGlobals(),
]);
}
/**
* @Route("/kapcsolat/{varosId}", name="kapcsolat")
*/
public function kapcsolat(string $varosId = null, Request $request, TranslatorInterface $translator)
{
$this->globals->setUserStuff([
'loggedIn' => $this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_USER') || $this->isGranted('ROLE_MODERATOR'),
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'isModerator' => $this->isGranted('ROLE_MODERATOR'),
'isUser' => $this->isGranted('ROLE_USER'),
]);
//get available languages
$langs = $this->getDoctrine()->getRepository(MenuItem::class)->findAll();
$this->globals->setLangs($langs);
//set page title
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'kapcsolat',
'language' => $this->lang,
]);
if (!is_null($page)) {
$this->page->title = $page->getTitle();
$this->page->content = $page->getContent();
} else {
$this->page->title = $translator->trans('pages.kapcsolat.title', [], 'messages', $this->lang);
}
$this->page->varosokTitle = $translator->trans('widgets.varosok.title', [], 'messages', $this->lang);
$this->page->url = $request->getUri();
$this->page->metas->description = 'kapcsolat, Ungarischer Evangelischer Verein in NRW';
$menus = $this->globals->getMenus($this->getDoctrine(), $request, $this->lang, $translator);
$cities = $this->getDoctrine()->getRepository(Cities::class)->findBy([], ['name' => 'ASC']);
if (!is_null($varosId)) {
$tmp_city = new Cities();
$tmp_city->setName('');
$tmp_city->setCaption($translator->trans('pages.istentiszteletek.mindenvaros', [], 'messages', $this->lang));
$tmp_city->setUrl($this->generateUrl('kapcsolat'));
$cities[] = $tmp_city;
}
if (is_null($varosId)) {
$eventType = $this->getDoctrine()->getRepository(EventType::class)->findOneBy(['name' => 'lelkipasztor']);
$lelkipasztor = $this->getDoctrine()->getRepository(Events::class)->findOneBy([
'eventType' => $eventType
]);
if (!$lelkipasztor) {
$lelkipasztor = new Events();
$lelkipasztor->setHideDatum(true);
$lelkipasztor->setHideTitle(true);
$lelkipasztor->setEventType($eventType);
}
$lelkipasztor->lelkipasztor = $translator->trans('pages.kapcsolat.lelkipasztor', [], 'messages', $this->lang);
if ($this->isGranted('ROLE_ADMIN')) {
$form = $this->createForm(LelkipasztorType::class, $lelkipasztor, ['action' => $this->generateUrl('lelkipasztor_edit')]);
$form->handleRequest($request);
}
} else {
$eventType = $this->getDoctrine()->getRepository(EventType::class)->findOneBy(['name' => 'kapcsolat']);
$city = $this->getDoctrine()->getRepository(Cities::class)->findOneBy(['name' => $varosId]);
$lelkipasztor = $this->getDoctrine()->getRepository(Events::class)->findBy([
'eventType' => $eventType,
'cityId' => $city,
]);
if ($this->lang == 'hu') {
$city->description = $city->getDescriptionHu();
} else {
$city->description = $city->getDescriptionDe();
}
$this->page->metas->description .= ', ' . $city->getCaption();
}
$contact_form = new \stdClass();
$contact_form->title = $translator->trans('pages.kapcsolat.contactTitle', [], 'messages', $this->lang);
$contact_form->send = $translator->trans('pages.kapcsolat.contactSend', [], 'messages', $this->lang);
$contact_form->form = $this->createForm(ContactFormType::class, null, [
'checkLabel' => $translator->trans('pages.kapcsolat.adatvedelem', [], 'messages', $this->lang),
'checkLabel2' => sprintf(
$translator->trans('pages.kapcsolat.adatvedelem2', [], 'messages', $this->lang),
'<a href="'.$this->generateUrl('adatvedelem').'" target="_blank">',
'</a>'
),
'nev' => $translator->trans('pages.kapcsolat.nev', [], 'messages', $this->lang),
'email' => $translator->trans('pages.kapcsolat.email', [], 'messages', $this->lang),
'email2' => $translator->trans('pages.kapcsolat.email2', [], 'messages', $this->lang),
'message' => $translator->trans('pages.kapcsolat.message', [], 'messages', $this->lang),
'action' => $this->generateUrl('kapcsolat_kuld'),
])->createView();
$contact_form->adatvedelem2 = sprintf($translator->trans('pages.kapcsolat.adatvedelem2',[],'message',$this->lang),'<a href="'.$this->generateUrl('adatvedelem').'" target="_blank">','</a>');
$contact_form->lang = $this->lang;
return $this->render('pages/kapcsolat.html.twig', [
'page' => $this->page,
'menus' => $menus,
'currentLang' => $this->globals->getLang($this->lang),
'cities' => $cities,
'lelkipasztor' => $lelkipasztor,
'edit_lelkipasztor' => $this->isGranted('ROLE_ADMIN') && is_null($varosId) ? $form->createView() : '',
'contact_form' => $contact_form,
'city' => is_null($varosId) ? null : $city,
'globals' => $this->globals->getGlobals(),
]);
}
/**
* @Route("/kapcsolat/dummy/lelkipasztor", name="lelkipasztor_edit", methods={"POST"})
*/
public function edit(Request $request): RedirectResponse
{
$eventType = $this->getDoctrine()->getRepository(EventType::class)->findOneBy(['name' => 'lelkipasztor']);
$lelkipasztor = $this->getDoctrine()->getRepository(Events::class)->findOneBy([
'eventType' => $eventType
]);
if (!$lelkipasztor) {
$lelkipasztor = new Events();
$lelkipasztor->setHideDatum(true);
$lelkipasztor->setHideTitle(true);
$lelkipasztor->setEventType($eventType);
}
$form = $this->createForm(LelkipasztorType::class, $lelkipasztor);
$form->handleRequest($request);
$eventType = $this->getDoctrine()->getRepository(EventType::class)->findOneBy(['name' => 'lelkipasztor']);
if ($form->isValid() && $form->isSubmitted()) {
$lelkipasztor->setEventType($eventType);
$lelkipasztor->setHideTitle(false);
$lelkipasztor->setHideDatum(false);
$lelkipasztor->setMachineName('lelkipasztor');
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($lelkipasztor);
$entityManager->flush();
}
return $this->redirectToRoute('kapcsolat');
}
/**
* @Route("/update_home", name="home_update", methods={"POST"})
*/
public function homeUpdate(Request $request): RedirectResponse
{
$homePage = new \stdClass();
$posted = $_POST['home_page'];
$homePage->name = $posted['name'];
$homePage->language = $posted['language'];
$homePage->content = $posted['content'];
$homePage->cim = $posted['cim'];
$homePage->kep = $posted['kep'];
$homePage->url = $posted['url'];
$homePage->url_caption = $posted['url_caption'];
$frm = $this->createForm(HomePageType::class, $homePage, [
'url' => $homePage->url,
'url_caption' => $homePage->url_caption,
'kep' => $homePage->kep,
'cim' => $homePage->cim,
]);
$frm->handleRequest($request);
if ($frm->isSubmitted()) {
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'home', 'language' => $frm->getData()->language,
]);
if ($page) {
$page->setContent($frm->getData()->content);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($page);
$entityManager->flush();
}
$event = $this->getDoctrine()->getRepository(Events::class)->findOneBy([
'title' => 'home'.$frm->getData()->language,
]);
if ($event) {
$event->setDescription($frm->getData()->content);
$event->setCaption($frm->getData()->cim);
$event->setImage($frm->getData()->kep);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($event);
$entityManager->flush();
$img = $this->getDoctrine()->getRepository(Events::class)->findOneBy(['id'=>$event->getImage()]);
if ($img) {
$img->setCity($frm->getData()->url_caption);
$img->setUrl($frm->getData()->url);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($img);
$entityManager->flush();
}
}
}
return $this->redirectToRoute('home');
}
/**
* @Route("/kapcsolat/email/kuld", name="kapcsolat_kuld", methods={"POST"})
*/
public function kapcsolatfelvetel(Request $request, MailerInterface $mailerInterface): RedirectResponse
{
$contact = new Contact();
$contact->email2 = '';
$contactEmail = $this->globals->getGlobals()->contactEmail;
$form = $this->createForm(ContactFormType::class, $contact);
$form->handleRequest($request);
if ($form->isValid() && $form->isSubmitted()) {
try {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($contact);
$entityManager->flush();
} catch (\Exception $e) {
return $this->redirectToRoute('kapcsolat',['error'=>$e->getMessage()]);
}
$mailer = new MailerController(
'contact@ungarische-gemeinde.de',
'New contact',
'',
[
'contact' => $contact,
'date' => \IntlDateFormatter::formatObject(
new \DateTime('now'),
'yyyy MMMM dd',
$this->lang.'_'.strtoupper($this->lang)),
'to' => [$contactEmail],
'template' => 'emails/contact.html.twig'
]
);
$mailer->sendEmail($mailerInterface);
}
return $this->redirectToRoute('kapcsolat');
}
/**
* @Route("/adatvedelem", name="adatvedelem")
*/
public function adatvedelem(Request $request, TranslatorInterface $translator)
{
$this->globals->setUserStuff([
'loggedIn' => $this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_USER') || $this->isGranted('ROLE_MODERATOR'),
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'isModerator' => $this->isGranted('ROLE_MODERATOR'),
'isUser' => $this->isGranted('ROLE_USER'),
]);
//get available languages
$langs = $this->getDoctrine()->getRepository(MenuItem::class)->findAll();
$this->globals->setLangs($langs);
//set page title
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'adatvedelem',
]);
$this->page->content = $page->getContent();
$this->page->title = $translator->trans('pages.adatvedelem.title', [], 'messages', $this->lang);
$this->page->url = $request->getUri();
$this->page->metas->description = 'adatvedelem, Rajna-Vesztfáliai Magyar Protestáns Gyülekezet, Ungarische Evangelische Gemeinde in NRW';
$menus = $this->globals->getMenus($this->getDoctrine(), $request, $this->lang, $translator);
return $this->render('pages/adatvedelem.html.twig',[
'page' => $this->page,
'menus' => $menus,
'currentLang' => $this->globals->getLang($this->lang),
'globals' => $this->globals->getGlobals(),
]);
}
/**
* @Route("/impressum", name="impressum")
*/
public function impressum(Request $request, TranslatorInterface $translator)
{
$this->globals->setUserStuff([
'loggedIn' => $this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_USER') || $this->isGranted('ROLE_MODERATOR'),
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'isModerator' => $this->isGranted('ROLE_MODERATOR'),
'isUser' => $this->isGranted('ROLE_USER'),
]);
//get available languages
$langs = $this->getDoctrine()->getRepository(MenuItem::class)->findAll();
$this->globals->setLangs($langs);
//set page title
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'impressum',
]);
$this->page->content = $page->getContent();
$this->page->title = $translator->trans('pages.impressum.title', [], 'messages', $this->lang);
$this->page->url = $request->getUri();
$this->page->metas->description = 'impressum, Rajna-Vesztfáliai Magyar Protestáns Gyülekezet, Ungarische Evangelische Gemeinde in NRW';
$menus = $this->globals->getMenus($this->getDoctrine(), $request, $this->lang, $translator);
return $this->render('pages/adatvedelem.html.twig',[
'page' => $this->page,
'menus' => $menus,
'currentLang' => $this->globals->getLang($this->lang),
'globals' => $this->globals->getGlobals(),
]);
}
/**
* @Route("/napiahitatok", name="napiahitatok")
*/
public function ahitatok(Request $request, TranslatorInterface $translator)
{
$this->globals->setUserStuff([
'loggedIn' => $this->isGranted('ROLE_ADMIN') || $this->isGranted('ROLE_USER') || $this->isGranted('ROLE_MODERATOR'),
'isAdmin' => $this->isGranted('ROLE_ADMIN'),
'isModerator' => $this->isGranted('ROLE_MODERATOR'),
'isUser' => $this->isGranted('ROLE_USER'),
]);
//get available languages
$langs = $this->getDoctrine()->getRepository(MenuItem::class)->findAll();
$this->globals->setLangs($langs);
//set page title
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy([
'name' => 'napiahitatok',
'language' => $this->lang,
]);
if (!is_null($page)) {
$this->page->title = $page->getTitle();
$this->page->content = $page->getContent();
} else {
$this->page->title = $translator->trans('pages.ahitatok.title', [], 'messages', $this->lang);
}
$this->page->url = $request->getUri();
$this->page->metas->description = 'ahitatok, Rajna-Vesztfáliai Magyar Protestáns Gyülekezet, Ungarische Evangelische Gemeinde in NRW';
$menus = $this->globals->getMenus($this->getDoctrine(), $request, $this->lang, $translator);
return $this->render('pages/ahitatok.html.twig',[
'page' => $this->page,
'menus' => $menus,
'currentLang' => $this->globals->getLang($this->lang),
'globals' => $this->globals->getGlobals(),
]);
}
}