/** * Checks if a given field is considered empty. * This method accepts field as Objects or by identifiers. * * @param \eZ\Publish\API\Repository\Values\Content\Content $content * @param \eZ\Publish\API\Repository\Values\Content\Field|string $fieldDefIdentifier Field or Field Identifier to * get the value from. * @param string $forcedLanguage Locale we want the content name translation in (e.g. "fre-FR"). * Null by default (takes current locale). * * @return bool */ public function isFieldEmpty(Content $content, $fieldDefIdentifier, $forcedLanguage = null) { if ($fieldDefIdentifier instanceof Field) { $fieldDefIdentifier = $fieldDefIdentifier->fieldDefIdentifier; } return $this->fieldHelper->isFieldEmpty($content, $fieldDefIdentifier, $forcedLanguage); }
public function testIsFieldNotEmpty() { $contentTypeId = 123; $contentInfo = new ContentInfo(array('contentTypeId' => $contentTypeId)); $content = $this->getMock('eZ\\Publish\\API\\Repository\\Values\\Content\\Content'); $content->expects($this->any())->method('__get')->with('contentInfo')->will($this->returnValue($contentInfo)); $fieldDefIdentifier = 'my_field_definition'; $textLineFT = new TextLineType(); $nonEmptyValue = new Value('Vive le sucre !!!'); $emptyField = new Field(array('fieldDefIdentifier' => 'ezstring', 'value' => $nonEmptyValue)); $contentType = $this->getMockForAbstractClass('eZ\\Publish\\API\\Repository\\Values\\ContentType\\ContentType'); $fieldDefinition = $this->getMockBuilder('eZ\\Publish\\API\\Repository\\Values\\ContentType\\FieldDefinition')->setConstructorArgs(array(array('fieldTypeIdentifier' => 'ezstring')))->getMockForAbstractClass(); $contentType->expects($this->once())->method('getFieldDefinition')->with($fieldDefIdentifier)->will($this->returnValue($fieldDefinition)); $this->contentTypeServiceMock->expects($this->once())->method('loadContentType')->with($contentTypeId)->will($this->returnValue($contentType)); $this->translationHelper->expects($this->once())->method('getTranslatedField')->with($content, $fieldDefIdentifier)->will($this->returnValue($emptyField)); $this->fieldTypeServiceMock->expects($this->any())->method('getFieldType')->with('ezstring')->will($this->returnValue($textLineFT)); $this->assertFalse($this->fieldHelper->isFieldEmpty($content, $fieldDefIdentifier)); }
public function getFirstFilledImageFieldIdentifier(Content $content) { foreach ($content->getFieldsByLanguage() as $field) { $fieldTypeIdentifier = $this->fieldHelper->getFieldDefinition($content->contentInfo, $field->fieldDefIdentifier)->fieldTypeIdentifier; if ($fieldTypeIdentifier !== 'ezimage') { continue; } if ($this->fieldHelper->isFieldEmpty($content, $field->fieldDefIdentifier)) { continue; } return $field->fieldDefIdentifier; } return null; }