Exemplo n.º 1
0
 public function metaTagsHtml($defaults = true, array $arguments = array(), $canonical = true)
 {
     $locale = $this->translator->getLocale();
     $currentLang = substr($locale, 0, 2);
     if (!isset($arguments['pre'])) {
         $arguments['pre'] = sprintf("\n%8s", ' ');
     }
     $headers = self::initMetaTagString();
     if ($defaults) {
         $headers .= $arguments['pre'] . '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
         $headers .= $arguments['pre'] . '<meta http-equiv="content-language" content="' . $currentLang . '" />';
         $headers .= $arguments['pre'] . '<meta name="DC.language" scheme="RFC3066" content="' . $currentLang . '" />';
     }
     $key = $this->keyGenerator->generateMetaTagKey($this->container->get('request'), $this->container->get('router'), $locale);
     $obj = $this->manager->findMetaTag($key, $locale);
     if ($obj) {
         $headers .= $this->metaTagToHtml($obj, $arguments);
     } else {
         $tags = $arguments;
         unset($tags['pre']);
         $headers .= MetaTagToHtmlRenderer::createMetaTags($arguments['pre'], $tags, $this);
     }
     if ($canonical) {
         $headers .= $arguments['pre'] . $this->canonicalTagsHtml($this->getRequest()->getPathInfo());
     }
     return $headers;
 }
Exemplo n.º 2
0
 /**
  * (non-PHPdoc).
  *
  * @see \Sonata\AdminBundle\Admin\Admin::prePersist()
  */
 public function prePersist($object)
 {
     /* @var $object MetaTagContent */
     $path = $this->getForm()->get('path')->getData();
     if (strpos('/', $path) !== false) {
         $path = '/' . $path;
     }
     try {
         $key = $this->keyGenerator->generateMetaTagKeyFromRelativePath($path, $this->getRouter(), $this->translator->getLocale());
         $object->setKeyword($key);
     } catch (\Exception $e) {
     }
 }
Exemplo n.º 3
0
 public function updatePathInfo(ContentInterface $content)
 {
     if (!$content->isChangedPathInfo()) {
         return;
     }
     $info = $this->getPathInfoFromMetaTagKey($content->getKeyword());
     $arr = $this->keyGenerator->splitLocaledKeyword($content->getKeyword());
     $contentInfo = $content->getPathInfo();
     $contentInfo['_locale'] = $arr[0];
     // add locale routing info after controller
     foreach ($info as $key => $value) {
         $contentInfo[$key] = $value;
     }
     $contentInfo = array_merge($contentInfo, $this->getQueryInfo($content->getKeyword()));
     $content->setChangedPathInfo($contentInfo);
     $content->setRouteDefaults($this->getDefaults($contentInfo['_route']));
 }
Exemplo n.º 4
0
 /**
  * @param $alias
  * @param $path
  * @param array $pathParameters
  * @param null  $locale
  * @param null  $title
  * @param null  $keywords
  * @param null  $description
  *
  * @return ContentInterface
  *
  * @internal param array $metatags
  */
 public function createNewAlias($alias, $path, array $pathParameters = array(), $locale = null, $title = null, $keywords = null, $description = null)
 {
     $rc = new \ReflectionClass($this->entityClass);
     $object = $rc->newInstance();
     if (!$object instanceof ContentInterface) {
         return;
     }
     $object->setAlias($alias);
     $pathParameters[UrlGenerator::GENERATE_NORMAL_ROUTE] = true;
     $path = $this->router->generate($path, $pathParameters);
     $path = str_replace('/app_dev.php', '', $path);
     $key = $this->generator->generateMetaTagKeyFromRelativePath($path, $this->router, $locale);
     $object->setKeyword($key);
     $object->setTitle($title);
     $object->setKeywords($keywords);
     $object->setDescription($description);
     return $object;
 }