function initializeFromFile($filename, $imageAltText = false, $originalFilename = false) { if (!file_exists($filename)) { $contentObjectID = isset($this->ContentObjectAttributeData['contentobject_id']) ? $this->ContentObjectAttributeData['contentobject_id'] : 0; $contentObjectAttributeID = isset($this->ContentObjectAttributeData['id']) ? $this->ContentObjectAttributeData['id'] : 0; $version = isset($this->ContentObjectAttributeData['version']) ? $this->ContentObjectAttributeData['version'] : 0; $contentObject = eZContentObject::fetch($contentObjectID); $contentObjectAttribute = eZContentObjectAttribute::fetch($contentObjectAttributeID, $version); $contentObjectAttributeName = ''; $contentObjectName = ''; if ($contentObject instanceof eZContentObject) { $contentObjectName = $contentObject->attribute('name'); } if ($contentObjectAttribute instanceof eZContentObjectAttribute) { $contentObjectAttributeName = $contentObjectAttribute->attribute('contentclass_attribute_name'); } eZDebug::writeError("The image '{$filename}' does not exist, cannot initialize image attribute: '{$contentObjectAttributeName}' (id: {$contentObjectAttributeID}) for content object: '{$contentObjectName}' (id: {$contentObjectID})", __METHOD__); return false; } $this->increaseImageSerialNumber(); if (!$originalFilename) { $originalFilename = basename($filename); } $mimeData = eZMimeType::findByFileContents($filename); if (!$mimeData['is_valid'] and $originalFilename != $filename) { $mimeData = eZMimeType::findByFileContents($originalFilename); } $attr = false; $this->removeAliases($attr); $this->setOriginalAttributeDataValues($this->ContentObjectAttributeData['id'], $this->ContentObjectAttributeData['version'], $this->ContentObjectAttributeData['language_code']); $contentVersion = eZContentObjectVersion::fetchVersion($this->ContentObjectAttributeData['version'], $this->ContentObjectAttributeData['contentobject_id']); $objectName = $this->imageName($this->ContentObjectAttributeData, $contentVersion); $objectPathString = $this->imagePath($this->ContentObjectAttributeData, $contentVersion, true); eZMimeType::changeBaseName($mimeData, $objectName); eZMimeType::changeDirectoryPath($mimeData, $objectPathString); if (!file_exists($mimeData['dirpath'])) { eZDir::mkdir($mimeData['dirpath'], false, true); } eZFileHandler::copy($filename, $mimeData['url']); return $this->initialize($mimeData, $originalFilename, $imageAltText); }