Beispiel #1
0
 /**
  * @inheritDoc IElementType::saveElement()
  *
  * @param BaseElementModel $element
  * @param array            $params
  *
  * @return bool
  */
 public function saveElement(BaseElementModel $element, $params)
 {
     // Is the filename changing?
     if (!empty($params['filename']) && $params['filename'] != $element->filename) {
         // Validate the content before we do anything drastic
         if (!craft()->content->validateContent($element)) {
             return false;
         }
         $oldFilename = $element->filename;
         $newFilename = $params['filename'];
         // Rename the file
         $response = craft()->assets->renameFile($element, $newFilename);
         // Did it work?
         if ($response->isConflict()) {
             $element->addError('filename', $response->getDataItem('prompt')->message);
             return false;
         }
         if ($response->isError()) {
             $element->addError('filename', $response->errorMessage);
             return false;
         }
     } else {
         $newFilename = null;
     }
     $success = parent::saveElement($element, $params);
     if (!$success && $newFilename) {
         // Better rename it back
         craft()->assets->renameFile($element, $oldFilename);
     }
     return $success;
 }