コード例 #1
0
 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);
 }