/** * 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; }