<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use Pimcore\Model\DataObject;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
use Pimcore\Model\Asset;
use Pimcore\Model\DataObject\Folder;
use Doctrine\Persistence\ManagerRegistry;
class BusinessPartnerController extends FrontendController
{
/**
* @Route({
* "de": "/de/login",
* "en": "/en/login",
* "hu": "/hu/login"
* }, name="secure_login")
*/
public function loginAction(Request $request, AuthenticationUtils $authenticationUtils)
{
// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
if ($this->isGranted('IS_AUTHENTICATED_FULLY')) {
return $this->redirectToRoute('business_partner');
}
return $this->render('businesspartner/login.html.twig', [
'error' => $error,
'lastUsername' => $lastUsername
]);
}
/**
* @Route({
* "de": "/de/logout",
* "en": "/en/logout",
* "hu": "/hu/logout"
* }, name="secure_logout")
*/
public function logoutAction(Request $request)
{
}
/**
* @Route({
* "de": "/de/business-partner",
* "en": "/en/business-partner",
* "hu": "/hu/business-partner"
* }, name="business_partner")
*/
public function indexAction(Request $request, \Pimcore\Config\Config $websiteConfig)
{
$user = $this->getUser();
if (!$user) {
return $this->redirectToRoute("secure_login");
}
$name = $user->getName();
$news_limit = 4;
$events_limit = 4;
$downloads_limit = 4;
$listing = new DataObject\News\Listing();
$listing->setCondition("title != ''");
$listing->addConditionParam("o_path = '/bp-news/'");
$listing->setOrderKey(['date', 'o_creationDate']);
$listing->setOrder("DESC");
$listing->setLimit($news_limit);
$news = $listing->load();
$listing = new DataObject\Events\Listing();
$listing->setCondition("title != ''");
$listing->addConditionParam("o_path = '/bp-events/'");
$listing->setOrderKey(['dateStart', 'o_creationDate']);
$listing->setOrder("DESC");
$listing->setLimit($events_limit);
$events = $listing->load();
/*$listing = new DataObject\Downloads\Listing();
$listing->setCondition("title != ''");
$listing->addConditionParam("o_path = '/bp-downloads/'");
$listing->setOrderKey('o_creationDate');
$listing->setOrder("DESC");
$listing->setLimit($downloads_limit);
$downloads = $listing->load();*/
return $this->render('businesspartner/index.html.twig', [
'name' => $name,
'news' => $news,
'events' => $events,
]);
}
/**
* @Route({
* "de": "/de/business-partner/news",
* "en": "/en/business-partner/news",
* "hu": "/hu/business-partner/news"
* }, name="business_partner_news")
*/
public function newsAction(Request $request, \Pimcore\Config\Config $websiteConfig)
{
$user = $this->getUser();
if (!$user) {
return $this->redirectToRoute("secure_login");
}
$name = $user->getName();
$listing = new DataObject\News\Listing();
$listing->setCondition("title != ''");
$listing->addConditionParam("o_path = '/bp-news/'");
$listing->setOrderKey(['date', 'o_creationDate']);
$listing->setOrder("DESC");
$news = $listing->load();
return $this->render('businesspartner/news.html.twig', [
'name' => $name,
'news' => $news
]);
}
/**
* @Route({
* "de": "/de/business-partner/news/{key}",
* "en": "/en/business-partner/news/{key}",
* "hu": "/hu/business-partner/news/{key}"
* }, name="business_partner_news_detail")
*/
public function newsDetailAction($key, Request $request, \Pimcore\Config\Config $websiteConfig)
{
$user = $this->getUser();
if (!$user) {
return $this->redirectToRoute("secure_login");
}
$name = $user->getName();
$listing = new DataObject\News\Listing();
$listing->setCondition("title != ''");
$listing->addConditionParam("o_key = '" . $key . "'");
$listing->addConditionParam("o_path = '/bp-news/'");
$news = $listing->load()[0];
if (!$news) {
return $this->redirectToRoute("business_partner_news");
}
return $this->render('businesspartner/news_detail.html.twig', [
'name' => $name,
'n' => $news
]);
}
/**
* @Route({
* "de": "/de/business-partner/events",
* "en": "/en/business-partner/events",
* "hu": "/hu/business-partner/events"
* }, name="business_partner_events")
*/
public function eventsAction(Request $request, \Pimcore\Config\Config $websiteConfig)
{
$user = $this->getUser();
if (!$user) {
return $this->redirectToRoute("secure_login");
}
$name = $user->getName();
$listing = new DataObject\Events\Listing();
$listing->setCondition("title != ''");
$listing->addConditionParam("o_path = '/bp-events/'");
$listing->setOrderKey(['dateStart', 'o_creationDate']);
$listing->setOrder("DESC");
$events = $listing->load();
return $this->render('businesspartner/events.html.twig', [
'name' => $name,
'events' => $events
]);
}
/**
* @Route({
* "de": "/de/business-partner/events/{key}",
* "en": "/en/business-partner/events/{key}",
* "hu": "/hu/business-partner/events/{key}"
* }, name="business_partner_events_detail")
*/
public function eventsDetailAction($key, Request $request, \Pimcore\Config\Config $websiteConfig)
{
$user = $this->getUser();
if (!$user) {
return $this->redirectToRoute("secure_login");
}
$name = $user->getName();
$listing = new DataObject\Events\Listing();
$listing->setCondition("title != ''");
$listing->addConditionParam("o_key = '" . $key . "'");
$listing->addConditionParam("o_path = '/bp-events/'");
$event = $listing->load()[0];
if (!$event) {
return $this->redirectToRoute("business_partner_events");
}
return $this->render('businesspartner/events_detail.html.twig', [
'name' => $name,
'e' => $event,
'key' => $key
]);
}
/**
* @Route({
* "de": "/de/business-partner/downloads",
* "en": "/en/business-partner/downloads",
* "hu": "/hu/business-partner/downloads"
* }, name="business_partner_download_categories")
*/
public function downloadCategoriesAction(Request $request, \Pimcore\Config\Config $websiteConfig)
{
$user = $this->getUser();
if (!$user) {
return $this->redirectToRoute("secure_login");
}
$name = $user->getName();
$categoryImage = Asset::getByPath('/bp-portal/istockphoto-1193926746-1024x1024.jpg');
$test = Folder::getByPath('/bp-downloads/');
$categories = [];
foreach ($test->getChildren() as $subfolder) {
if ($subfolder->getType() == "folder") {
$tmp = [];
$tmp["name"] = $subfolder->getKey();
$tmp["image"] = "empty";
if ($categoryImage)
$tmp["image"] = $categoryImage->getThumbnail("default");
$categories[] = $tmp;
}
}
return $this->render('businesspartner/download_categories.html.twig', [
'name' => $name,
'categories' => $categories
]);
}
/**
* @Route({
* "de": "/de/business-partner/downloads/{category}",
* "en": "/en/business-partner/downloads/{category}",
* "hu": "/hu/business-partner/downloads/{category}"
* }, name="business_partner_downloads")
*/
public function downloadsAction($category, Request $request, \Pimcore\Config\Config $websiteConfig, ManagerRegistry $managerRegistry)
{
// $managerRegistry
$user = $this->getUser();
if (!$user) {
return $this->redirectToRoute("secure_login");
}
$name = $user->getName();
// Downloads nur auf EN
$request->setLocale("en");
//todo $this->get('translator')->setLocale('en');
$listing = new DataObject\Downloads\Listing();
//$listing->setCondition("title != ''");
$listing->addConditionParam("o_path = '/bp-downloads/" . $category . "/'");
$listing->setOrderKey('o_creationDate');
$listing->setOrder("DESC");
$downloads = $listing->load();
return $this->render('businesspartner/downloads.html.twig', [
'name' => $name,
'downloads' => $downloads,
'category' => $category
]);
}
}