<?php
namespace App\EventListener;
use App\Model\DataObject\Address;
use Pimcore\Event\Model\ElementEventInterface;
use Pimcore\Event\Model\DataObjectEvent;
//use Pimcore\Model\DataObject\Books;
use Pimcore\Model\DataObject;
use App\Twig\Extension\Apik;
class ObjectListener
{
public function onPreUpdate(ElementEventInterface $e)
{
if ($e instanceof DataObjectEvent) {
$obj = $e->getObject();
if($obj instanceof DataObject\News){
$languages = \Pimcore\Tool::getValidLanguages();
foreach($languages as $lang) {
if(!$obj->getSlug($lang) && $obj->getTitre($lang)){
$slug = Apik::toUrl($obj->getTitre($lang));
$check = DataObject\News::getBySlug($slug, $lang)->load();
if($check){
$check = $check[0];
if($check->getId() != $obj->getId()){
$slug = $slug."-".$obj->getId();
}
}
$obj->setSlug($slug, $lang);
}
}
}
}
}
public function onPostAdd(ElementEventInterface $e)
{
if ($e instanceof DataObjectEvent) {
$obj = $e->getObject();
if($obj instanceof DataObject\News){
$languages = \Pimcore\Tool::getValidLanguages();
foreach($languages as $lang) {
if(!$obj->getSlug($lang) && $obj->getTitre($lang)){
$slug = Apik::toUrl($obj->getTitre($lang));
$check = DataObject\News::getBySlug($slug, $lang)->load();
if($check){
$check = $check[0];
if($check->getId() != $obj->getId()){
$slug = $slug."-".$obj->getId();
}
}
$obj->setSlug($slug, $lang);
}
}
}
$obj->save();
}
}
}