コード例 #1
0
 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]);
コード例 #2
0
    }
}
// *************************************** 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);
コード例 #3
0
ファイル: class.oomedia.inc.php プロジェクト: eaCe/redaxo4
 /**
  * @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;
 }
コード例 #4
0
/**
 * 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;
}
コード例 #5
0
 /**
  * @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;
 }