foreach ($db_files as $db_file) { $file_filesize = filesize($REX['MEDIAFOLDER'] . '/' . $db_file['filename']); if ($db_file['filesize'] != $file_filesize) { $file_sql = rex_sql::factory(); // $file_sql->debugsql = 1; $file_sql->setTable($REX['TABLE_PREFIX'] . 'file'); $file_sql->setWhere('filename="' . mysql_real_escape_string($db_file['filename']) . '"'); $file_sql->setValue('filesize', $file_filesize); if ($db_file['width'] > 0) { if ($size = @getimagesize($REX['MEDIAFOLDER'] . '/' . $db_file['filename'])) { $file_sql->setValue('width', $size[0]); $file_sql->setValue('height', $size[1]); } } $file_sql->update(); rex_deleteCacheMedia($db_file['filename']); } } if (rex_post('save', 'boolean') && rex_post('sync_files', 'boolean')) { $sync_files = rex_post('sync_files', 'array'); $ftitle = rex_post('ftitle', 'string'); if ($diff_count > 0) { $info = array(); foreach ($sync_files as $file) { // hier mit is_int, wg kompatibilität zu PHP < 4.2.0 if (!is_int($key = array_search($file, $diff_files))) { continue; } $sync_result = rex_mediapool_syncFile($file, $rex_file_category, $ftitle, '', '', false, false); if ($sync_result['ok'] == 1) { unset($diff_files[$key]);
} } // *************************************** EXTRA FUNCTIONS if ($PERMALL && $media_method == 'updatecat_selectedmedia') { $selectedmedia = rex_post('selectedmedia', 'array'); if (isset($selectedmedia[0]) && $selectedmedia[0] != '') { foreach ($selectedmedia as $file_name) { $db = rex_sql::factory(); // $db->debugsql = true; $db->setTable($REX['TABLE_PREFIX'] . 'file'); $db->setWhere('filename="' . $file_name . '"'); $db->setValue('category_id', $rex_file_category); $db->addGlobalUpdateFields(); if ($db->update()) { $info = $I18N->msg('pool_selectedmedia_moved'); rex_deleteCacheMedia($file_name); } else { $warning = $I18N->msg('pool_selectedmedia_error'); } } } else { $warning = $I18N->msg('pool_selectedmedia_error'); } } if ($PERMALL && $media_method == 'delete_selectedmedia') { $selectedmedia = rex_post("selectedmedia", "array"); if (count($selectedmedia) != 0) { $warning = array(); $info = array(); foreach ($selectedmedia as $file_name) { $media = OOMedia::getMediaByFileName($file_name);
/** * @access public * @return Returns <code>true</code> on success or <code>false</code> on error */ function delete($filename = null) { global $REX; if ($filename != null) { $OOMed = self::getMediaByFileName($filename); if ($OOMed) { return $OOMed->delete(); } } else { $qry = 'DELETE FROM ' . $this->_getTableName() . ' WHERE file_id = ' . $this->getId() . ' LIMIT 1'; $sql = rex_sql::factory(); $sql->setQuery($qry); if ($this->fileExists()) { unlink($REX['MEDIAFOLDER'] . DIRECTORY_SEPARATOR . $this->getFileName()); } require_once $REX['INCLUDE_PATH'] . '/functions/function_rex_generate.inc.php'; rex_deleteCacheMedia($this->getFileName()); // ----- EXTENSION POINT rex_register_extension_point('MEDIA_DELETED', '', array('file_id' => $this->getId(), 'filename' => $this->getFileName())); return $sql->getError(); } return false; }
/** * Holt ein upgeloadetes File und legt es in den Medienpool * Dabei wird kontrolliert ob das File schon vorhanden ist und es * wird eventuell angepasst, weiterhin werden die Fileinformationen übergeben * * @param $FILE * @param $rex_file_category * @param $FILEINFOS * @param $userlogin */ function rex_mediapool_updateMedia($FILE, &$FILEINFOS, $userlogin = null) { global $REX, $I18N; $RETURN = array(); $FILESQL = rex_sql::factory(); // $FILESQL->debugsql = 1; $FILESQL->setTable($REX['TABLE_PREFIX'] . 'file'); $FILESQL->setWhere('file_id=' . $FILEINFOS["file_id"]); $FILESQL->setValue('title', $FILEINFOS["title"]); $FILESQL->setValue('category_id', $FILEINFOS["rex_file_category"]); $msg = ''; $updated = false; if ($_FILES['file_new']['name'] != '' && $_FILES['file_new']['name'] != 'none') { $ffilename = $_FILES['file_new']['tmp_name']; $ffiletype = $_FILES['file_new']['type']; $ffilesize = $_FILES['file_new']['size']; if ($ffiletype == $FILEINFOS["filetype"] || OOMedia::compareImageTypes($ffiletype, $FILEINFOS["filetype"])) { if (move_uploaded_file($ffilename, $REX['MEDIAFOLDER'] . '/' . $FILEINFOS["filename"]) || copy($ffilename, $REX['MEDIAFOLDER'] . '/' . $FILEINFOS["filename"])) { $RETURN["msg"] = $I18N->msg('pool_file_changed'); $FILEINFOS["filetype"] = $ffiletype; $FILEINFOS["filesize"] = $ffilesize; $FILESQL->setValue('filetype', $FILEINFOS["filetype"]); // $FILESQL->setValue('originalname',$ffilename); $FILESQL->setValue('filesize', $FILEINFOS["filesize"]); if ($size = @getimagesize($REX['MEDIAFOLDER'] . '/' . $FILEINFOS["filename"])) { $FILESQL->setValue('width', $size[0]); $FILESQL->setValue('height', $size[1]); } @chmod($REX['MEDIAFOLDER'] . '/' . $FILEINFOS["filename"], $REX['FILEPERM']); $updated = true; } else { $RETURN["msg"] = $I18N->msg('pool_file_upload_error'); } } else { $RETURN["msg"] = $I18N->msg('pool_file_upload_errortype'); } } // Aus BC gruenden hier mit int 1/0 $RETURN["ok"] = $updated ? 1 : 0; if (!isset($RETURN["msg"])) { $RETURN["msg"] = $I18N->msg('pool_file_infos_updated'); $RETURN["ok"] = 1; } if ($RETURN['ok'] == 1) { $RETURN["filename"] = $FILEINFOS["filename"]; $RETURN["filetype"] = $FILEINFOS["filetype"]; $RETURN["file_id"] = $FILEINFOS["file_id"]; } $FILESQL->addGlobalUpdateFields(); $FILESQL->update(); rex_deleteCacheMedia($FILEINFOS["filename"]); /* $RETURN['title'] = $FILEINFOS['title']; $RETURN['type'] = $FILETYPE; $RETURN['msg'] = $message; // Aus BC gruenden hier mit int 1/0 $RETURN['ok'] = $success ? 1 : 0; $RETURN['filename'] = $NFILENAME; $RETURN['old_filename'] = $FILENAME; */ return $RETURN; }
/** * @access public * @return Returns <code>true</code> on success or <code>false</code> on error */ function delete($filename = null) { global $REX; if ($filename != null) { $OOMed = OOMedia::getMediaByFileName($filename); if ($OOMed) { return $OOMed->delete(); } } else { $qry = 'DELETE FROM ' . $this->_getTableName() . ' WHERE file_id = ' . $this->getId() . ' LIMIT 1'; $sql = rex_sql::factory(); $sql->setQuery($qry); if ($this->fileExists()) { unlink($REX['MEDIAFOLDER'] . DIRECTORY_SEPARATOR . $this->getFileName()); } rex_deleteCacheMedia($this->getFileName()); return $sql->getError(); } return false; }