. */ /* */ /*************************************************************************************/ namespace Thelia\Action; use Propel\Runtime\ActiveQuery\Criteria; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Thelia\Core\Event\Profile\ProfileEvent; use Thelia\Core\Event\TheliaEvents; use Thelia\Model\Profile as ProfileModel; use Thelia\Model\ProfileQuery; class Profile extends BaseAction implements EventSubscriberInterface { /** * @param ProfileEvent $event */ public function create(ProfileEvent $event) { $profile = new ProfileModel(); $profile ->setDispatcher($this->getDispatcher()) ->setCode($event->getCode()) ->setLocale($event->getLocale()) ->setTitle($event->getTitle()) ->setChapo($event->getChapo()) ->setDescription($event->getDescription()) ->setPostscriptum($event->getPostscriptum()) ; $profile->save(); $event->setProfile($profile); } /** * @param ProfileEvent $event */ public function update(ProfileEvent $event) { if (null !== $profile = ProfileQuery::create()->findPk($event->getId())) { $profile ->setDispatcher($this->getDispatcher()) ->setLocale($event->getLocale()) ->setTitle($event->getTitle()) ->setChapo($event->getChapo()) ->setDescription($event->getDescription()) ->setPostscriptum($event->getPostscriptum()) ; $profile->save(); $event->setProfile($profile); } } /** * @param ProfileEvent $event */ public function delete(ProfileEvent $event) { if (null !== $profile = ProfileQuery::create()->findPk($event->getId())) { $profile ->delete() ; $event->setProfile($profile); } } /** * {@inheritDoc} */ public static function getSubscribedEvents() { return array( TheliaEvents::PROFILE_CREATE => array("create", 128), TheliaEvents::PROFILE_UPDATE => array("update", 128), TheliaEvents::PROFILE_DELETE => array("delete", 128), ); } }