kernel = $kernel; $this->parameterBag = $parameterBag; $this->cacheManager = $cacheManager; $this->em = $entityManager; $this->requestStack = $requestStack; $this->router = $router; $this->translator = $translator; $this->translatorAdmin = $translatorAdmin; $this->reminderStore = $reminderStore; $this->security = $security; $this->formFactory = $formFactory; $this->stringComponent = $stringComponent; $this->metaComponent = $metaComponent; $this->dateComponent = $dateComponent; $this->fileComponent = $fileComponent; $this->adminUrlGenerator = $adminUrlGenerator; } public function getFunctions() { return [ new TwigFunction('sov_liip', [$this, 'liip']), new TwigFunction('liip', [$this, 'liip']), new TwigFunction('sov_get_by_devalias', [$this, 'getByDevAlias']), new TwigFunction('sov_parameter', [$this, 'getParameter']), new TwigFunction('sov_homepage_route', [$this, 'getHomepageRoute']), new TwigFunction('lc_format_price', [$this, 'formatPrice']), new TwigFunction('die', [$this, 'die']), new TwigFunction('get_form_newsletter', [$this, 'getFormNewsletter']), new TwigFunction('sov_limit_text', [$this, 'limitText']), new TwigFunction('day_by_number', [$this, 'getDayByNumber']), new TwigFunction('user_current', [$this, 'getUserCurrent']), new TwigFunction('ea_url_short', [$this, 'generateEaUrl']), new TwigFunction('is_instance_of', [$this, 'isInstanceOf']), new TwigFunction('logo_admin', [$this, 'getLogoAdmin']), new TwigFunction('asset_url', [$this, 'getAssetUrl']), ]; } public function die() { die(); } public function getFilters() { return [ new TwigFilter('uc_first', [$this, 'ucFirst']), new TwigFilter('format_price', [$this, 'formatPrice']), new TwigFilter('sov_cache', [$this, 'sovCache']), new TwigFilter('slugify', [$this, 'slugify']), new TwigFilter('md5', [$this, 'md5']), new TwigFilter('rot13', [$this, 'rot13']), ]; } public function getAssetUrl($path) { $context = $this->router->getContext(); $host = $context->getScheme().'://'.$context->getHost().'/'; return $host.$path; } public function rot13(string $string): string { return str_rot13($string); } public function isInstanceOf(EntityInterface $entity, string $interfaceName) { $reflection = new \ReflectionClass($entity); $interfaceNameArray = $reflection->getInterfaceNames(); foreach ($interfaceNameArray as $interfaceNameEntity) { if (strpos($interfaceNameEntity, $interfaceName) !== false) { return true; } } return false; } public function sovCache($file) { $cacheTime = filemtime($this->kernel->getProjectDir() . '/public' . $file); if ($cacheTime) { return $file . '?c=' . $cacheTime; } else { return $file . "?c=0"; } } public function formatPrice($price, $unbreakableSpace = true) { $price = number_format($price, 2, ',', ' '); $price .= $unbreakableSpace ? ' ' : ' '; $price .= '€'; return $price; } public function ucFirst($string) { return ucfirst($string); } public function liip($path, $thumb = 'tile', $default = 'default.jpg') { return $this->fileComponent->liip($path, $thumb, $default); } public function getFileManagerFolder() { return $this->parameterBag->get('app.path_uploads'); } public function getHomepageRoute() { return $this->parameterBag->get('lc_sov.homepage_route'); } public function getParameter($name) { return $this->parameterBag->get($name); } public function getFormNewsletter() { $form = $this->formFactory->create(NewsletterType::class); return $form->createView(); } public function limitText(string $text, int $limit) { return $this->stringComponent->limitText($text, $limit); } public function getDayByNumber($day): string { return $this->dateComponent->getDayByNumber($day); } public function slugify($string) { return $this->stringComponent->slugify($string); } public function getUserCurrent() { return $this->security->getUser(); } public function generateEaUrl( string $controller = null, string $action = null, int $entityId = null, array $extraParam = array() ): string { $adminUrlGenerator = $this->adminUrlGenerator; if ($controller) { $adminUrlGenerator->setController($controller); } if ($action) { $adminUrlGenerator->setAction($action); } $adminUrlGenerator->setEntityId($entityId); if ($extraParam) { foreach ($extraParam as $key => $value) { $adminUrlGenerator->set($key, $value); } } return $adminUrlGenerator->generateUrl(); } public function md5(string $text): string { return md5($text); } public function getLogoAdmin(): string { $image = $this->getParameter('app.admin.logo_sidebar'); if(!$image) { $image = $this->getParameter('app.admin.logo'); } return ''; } }