public function save($write = true, $thumbnail = true) { if (empty($this->file_directory)) { if ($this->folder_id) { $folder = new Folder($_POST['folder_id']); if ($folder->id) { $this->setDirectory($folder->getFullDirectory()); } else { return PHPWS_Error::get(FC_MISSING_FOLDER, 'filecabinet', 'PHPWS_Multimedia::save'); } } else { return PHPWS_Error::get(FC_DIRECTORY_NOT_SET, 'filecabinet', 'PHPWS_Multimedia::save'); } } if ($write) { $result = $this->write(); if (PHPWS_Error::isError($result)) { return $result; } } if (!$this->width || !$this->height) { $this->loadDimensions(); } if ($thumbnail) { if ($this->isVideo()) { $this->makeVideoThumbnail(); } else { $this->makeAudioThumbnail(); } } if (empty($this->title)) { $this->title = $this->file_name; } $db = new PHPWS_DB('multimedia'); $result = $db->saveObject($this); return $result; }
public function save($no_dupes = true, $write = true, $thumbnail = true) { if (empty($this->file_directory)) { if ($this->folder_id) { $folder = new Folder($_POST['folder_id']); if ($folder->id) { $this->setDirectory($folder->getFullDirectory()); } else { return PHPWS_Error::get(FC_MISSING_FOLDER, 'filecabinet', 'PHPWS_Image::save'); } } else { return PHPWS_Error::get(FC_DIRECTORY_NOT_SET, 'filecabinet', 'PHPWS_Image::save'); } } if (!$this->folder_id) { return PHPWS_Error::get(FC_MISSING_FOLDER, 'filecabinet', 'PHPWS_Image::save'); } if (!is_writable($this->file_directory)) { return PHPWS_Error::get(FC_BAD_DIRECTORY, 'filecabinet', 'PHPWS_Image::save', $this->file_directory); } if (empty($this->alt)) { if (empty($this->title)) { $this->loadTitleFromFilename(); } $this->alt = $this->title; } if ($write) { $result = $this->write(); if (PHPWS_Error::isError($result)) { return $result; } } if ($thumbnail) { $this->makeThumbnail(); } $db = new PHPWS_DB('images'); if ((bool) $no_dupes && empty($this->id)) { $db->addWhere('file_name', $this->file_name); $db->addWhere('folder_id', $this->folder_id); $db->addColumn('id'); $result = $db->select('one'); if (PHPWS_Error::isError($result)) { return $result; } elseif (isset($result) && is_numeric($result)) { $this->id = $result; return TRUE; } $db->reset(); } return $db->saveObject($this); }
public function classifyIntoFolder($folder_id, $files) { if (empty($files)) { return; } $folder = new Folder($folder_id); if (!$folder->id) { return; } $classify_dir = $this->getClassifyDir(); if (empty($classify_dir)) { return; } switch ($folder->ftype) { case IMAGE_FOLDER: $type = 'image'; PHPWS_Core::initModClass('filecabinet', 'Image.php'); $class_name = 'PHPWS_Image'; break; case DOCUMENT_FOLDER: $type = 'document'; PHPWS_Core::initModClass('filecabinet', 'Document.php'); $class_name = 'PHPWS_Document'; break; case MULTIMEDIA_FOLDER: $type = 'media'; PHPWS_Core::initModClass('filecabinet', 'Multimedia.php'); $class_name = 'PHPWS_Multimedia'; break; } $allowed_types = $this->getAllowedTypes($type); foreach ($files as $filename) { $path = $classify_dir . $filename; $ext = PHPWS_File::getFileExtension($filename); if ($this->fileTypeAllowed($path, $type) && PHPWS_File::checkMimeType($path) && in_array($ext, $allowed_types)) { $file_obj = new $class_name(); $file_obj->folder_id = $folder->id; $file_obj->setFilename($filename); $file_obj->setTitle(str_replace(".{$ext}", '', $filename)); $file_obj->setDirectory($folder->getFullDirectory()); $folder_directory = $file_obj->getPath(); if (!@rename($path, $folder_directory)) { PHPWS_Error::log(FC_FILE_MOVE, 'filecabinet', 'Cabinet::classifyIntoFolder', $folder_directory); continue; } $file_obj->file_type = PHPWS_File::getMimeType($file_obj->getPath()); $file_obj->loadFileSize(); if ($folder->ftype == IMAGE_FOLDER) { $file_obj->loadDimensions(); $file_obj->save(true, false); } else { $file_obj->save(false); } } } }
public function save($write = true) { if (empty($this->file_directory)) { if ($this->folder_id) { $folder = new Folder($_POST['folder_id']); if ($folder->id) { $this->setDirectory($folder->getFullDirectory()); } else { return PHPWS_Error::get(FC_MISSING_FOLDER, 'filecabinet', 'PHPWS_Document::save'); } } else { return PHPWS_Error::get(FC_DIRECTORY_NOT_SET, 'filecabinet', 'PHPWS_Document::save'); } } if (!is_writable($this->file_directory)) { return PHPWS_Error::get(FC_BAD_DIRECTORY, 'filecabinet', 'PHPWS_Document::save', $this->file_directory); } if (empty($this->title)) { $this->loadTitleFromFilename(); } if ($write) { $result = $this->write(false); if (PHPWS_Error::isError($result)) { return $result; } } $db = new PHPWS_DB('documents'); return $db->saveObject($this); }