<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Pimcore\Model\DataObject;
use Pimcore\Model\DataObject\DemoProduct;
use Pimcore\Model\DataObject\AbstractObject;
use Pimcore\Model\DataObject\Service;
use Pimcore\Model\DataObject\Articles;
use Pimcore\Model\DataObject\Content;
use Pimcore\Model\DataObject\Fieldcollection\Data\TestCollection;
use Pimcore\Model\DataObject\Companies;
use Pimcore\Model\DataObject\About;
use Pimcore\Model\DataObject\ReviewsAndRatings;
use Knp\Component\Pager\PaginatorInterface;
class DefaultController extends FrontendController
{
/**
* @param Request $request
* @return Response
*/
public function defaultAction(Request $request): Response
{
return $this->render('default/default.html.twig');
}
public function dataObjectAction(Request $request)
{
// $product=new DemoProduct();
// $product->setParent(Service::createFolderByPath("/demo/import/product"));
// $product->setKey("imported-product-3");
// $product->setPublished(true);
// $product->setName("new data Import Product");
// $product->setDescription("this is demo data description");
// $product->setPrice(675);
// $product->save();
//$test=Articles::getById(933);
//return ['test'=>$test];
/*
$articleListing=new Articles\Listing();
//$articleListing=DataObject\Articles\Listing::getById(933);
$data=[];
foreach($articleListing as $article)
{
$data[]=[
'id'=>$article->getId(),
'testInput'=>$article->getTestInput(),
'testCheckbox'=>$article->getTestCheckbox(),
//'testSelect'=>$article->getTestSelect(),
//'testCountry'=>$article->getTestCountry(),
//'testInput'=>$article->getTestInput()
];
}
*/
// $articleListingOne=new DataObject\Fieldcollection\Data\TestCollection();
// $dataOne=[];
// foreach($articleListingOne as $articleOne)
// {
// $dataOne[]=[
// //'id'=>$articleOne->getId(),
// 'testSelect'=>$articleOne->getTestSelect(),
// 'testCountry'=>$articleOne->getTestCountry(),
// 'testInput'=>$articleOne->getTestInput()
// ];
// }
// $contentList=new Content\Listing();
// $data=[];
// foreach($contentList as $contents)
// {
// $data[]=[
// 'id'=>$contents->getId(),
// 'title'=>$contents->getTitle(),
// 'contentDescription'=>$contents->getContentDescription(),
// 'contentImages'=>$contents->getContentImages()
// ];
//}
//return new JsonResponse($data);
/*
$productListing=new DemoProduct\Listing();
$productListing->setCondition('price > ?', [intval($request->get('from-price'))]);
$data=[];
foreach($productListing as $product)
{
$data[]=[
'id'=>$product->getId(),
'name'=>$product->getName(),
'description'=>$product->getDescription(),
'price'=>$product->getPrice()
];
}
return new JsonResponse($data);
*/
//return new Response("\n\ndone");
}
// public function academyAction(Request $request)
// {
// $companyListing=new Companies\Listing();
// $data=[];
// foreach($companyListing as $company)
// {
// $data[]=[
// 'id'=>$company->getId(),
// 'businessOwner'=>$company->getBusinessOwner(),
// 'businessName'=>$company->getBusinessName()
// ];
// }
// //return new JsonResponse($data);
// return $this->render('default/default.html.twig');
// }
public function homeAction(Request $request)
{
$homeCompanyDetails = new Companies\Listing();
$homeArticleDetails = new Articles\Listing();
$homeReviewsDetails = new ReviewsAndRatings\Listing();
//$homeDetails = Companies::getById($request->get('id'));
//$CompaniesDetails = Companies::getById($request->get('id'));
return $this->render('Home/listing.html.twig',[
'Companies' => $homeCompanyDetails,'Articles'=> $homeArticleDetails,'ReviewsAndRatings'=>$homeReviewsDetails,
]);
}
public function listingAction(Request $request, PaginatorInterface $paginator)
{
$CompaniesList = new Companies\Listing();
return $this->render('Companies/listing.html.twig', [
'Companies' => $CompaniesList,
]);
}
public function companyDetailAction(Request $request)
{
//$CompaniesDetails = Companies::getByBusinessName($request->get('Companies'));
$CompaniesDetails = Companies::getById($request->get('id'));
$ArticlesList = new Articles\Listing();
$ArticlesList->setCondition("companies like '".$CompaniesDetails->getBusinessName()."'");
$ArticlesList->load();
$ReviewsList = new ReviewsAndRatings\Listing();
$ReviewsList->setCondition("companies like '".$CompaniesDetails->getBusinessName()."'");
$ReviewsList->load();
return $this->render('Companies/detail.html.twig', [
'Companies' => $CompaniesDetails,'Articles'=> $ArticlesList,'ReviewsAndRatings'=>$ReviewsList,
]);
}
public function listingActionAbout(Request $request)
{
$CompaniesAboutDetails = Companies::getById($request->get('id'));
//$CompaniesAboutDetails = new Companies\Listing();
return $this->render('Companies/company_about.html.twig', [
'Companies' => $CompaniesAboutDetails,
]);
}
public function listingActionArticle(Request $request, PaginatorInterface $paginator)
{
// get a list of SimpleService objects and order them by date
$ArticlesList = new Articles\Listing(["orderKey" => ["date"],
"order" => "desc"]);
return $this->render('Articles/listing.html.twig', [
'Articles' => $ArticlesList,
]);
}
public function articleDetailAction(Request $request)
{
//$CompaniesDetails = Companies::getByBusinessName($request->get('Companies'));
$ArticleDetails = Articles::getById($request->get('id'));
//$CompaniesDetails = new Companies\Listing();
$CompaniesDetails = Companies::getByBusinessName($ArticleDetails->getCompanies());
//$ArticleDetails = Articles::getById(936);
return $this->render('Articles/detail.html.twig', [
'Articles' => $ArticleDetails,'Companies' => $CompaniesDetails,
]);
}
public function listingActionRatingsReviews(Request $request, PaginatorInterface $paginator)
{
// get a list of SimpleService objects and order them by date
$ReviewsList = new ReviewsAndRatings\Listing();
return $this->render('RatingsReviews/listing.html.twig', [
'ReviewsAndRatings' => $ReviewsList,
]);
}
public function reviewsDetailAction(Request $request)
{
//$CompaniesDetails = Companies::getByBusinessName($request->get('Companies'));
$ReviewDetails = ReviewsAndRatings::getById($request->get('id'));
//$ArticleDetails = Articles::getById(936);
return $this->render('ReviewsAndRatings/detail.html.twig', [
'ReviewsAndRatings' => $ReviewDetails,
]);
}
}