Exemple #1
0
 /**
  * Test the Meta Method
  *
  * @param string $name
  * @param string $content
  *
  * @dataProvider metasSampleProvider
  */
 public function testMetaObject($name, $content)
 {
     $meta = new Meta($name, $content);
     $this->assertEquals($name, $meta->getName());
     $this->assertEquals($content, $meta->getContent());
     $this->assertEquals($name, $meta->attribute('name'));
     $this->assertEquals($content, $meta->attribute('content'));
     $this->assertTrue($meta->hasAttribute('name'));
     $this->assertTrue($meta->hasAttribute('content'));
     $this->assertTrue($content == '' ? $meta->isEmpty() : !$meta->isEmpty());
 }
 /**
  * Resolve a Meta Value
  *
  * @param Meta        $meta
  * @param Content     $content
  * @param ContentType $contentType
  *
  * @return boolean
  */
 public function resolveMeta(Meta $meta, Content $content, ContentType $contentType = null)
 {
     $this->settings = array('limit' => $this->fieldContentMaxLength, 'sequence' => '...');
     if ($contentType === null) {
         $contentType = $this->repository->getContentTypeService()->loadContentType($content->contentInfo->contentTypeId);
     }
     $resolveMultilingue = $this->resolve($meta->getContent(), $contentType, $content->fields, $content->versionInfo->languageCodes);
     // we don't fallback on the other languages... it would be very bad for SEO to mix the languages
     if (array_key_exists($this->languages[0], $resolveMultilingue) && $resolveMultilingue[$this->languages[0]] != '') {
         $meta->setContent($resolveMultilingue[$this->languages[0]]);
         return true;
     }
     $meta->setContent("");
     return false;
 }