<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Event\LifecycleEventArgs;
/**
* ModuleText
*
* @ORM\Table(name="module_featured")
* @ORM\Entity(repositoryClass="App\Repository\ModuleCarouselRepository")
* @ORM\HasLifecycleCallbacks
*/
class ModuleFeatured {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="ModuleHook")
* @ORM\JoinColumn(name="module_hook_id", referencedColumnName="id")
*/
private $moduleHook;
/**
* @var ?string
*
* @ORM\Column(name="title_fr", type="string", length=255, nullable=true)
*/
private $titleFr;
/**
* @var ?string
*
* @ORM\Column(name="title_en", type="string", length=255, nullable=true)
*/
private $titleEn;
/**
* @var integer
*
* @ORM\OneToMany(targetEntity="ModuleFeaturedItem", mappedBy="module", cascade={"remove"})
* @ORM\OrderBy({"orderNum" = "ASC"})
*/
private $items;
public function getId() {
return $this->id;
}
public function getModuleHook() {
return $this->moduleHook;
}
public function getTitleFr(): ?string {
return $this->titleFr;
}
public function getTitleEn(): ?string {
return $this->titleEn;
}
public function getItems(){
return $this->items;
}
public function setId($id): void {
$this->id = $id;
}
public function setModuleHook($moduleHook): void {
$this->moduleHook = $moduleHook;
}
public function setTitleFr(?string $titleFr): void {
$this->titleFr = $titleFr;
}
public function setTitleEn(?string $titleEn): void {
$this->titleEn = $titleEn;
}
public function setProducts($items): void {
$this->items = $items;
}
/**
* Chargement des paramètres du module
*/
public function getData(ModuleHook $module_hooked) {
$data = array();
$data['titleFr'] = $this->getTitleFr();
$data['titleEn'] = $this->getTitleEn();
$data['items'] = $this->getItems();
$data['products'] = [];
foreach($this->getItems() as $item){
if($item->getProduct()->isActive())
$data['products'][] = $item->getProduct();
}
return $data;
}
}