예제 #1
0
function add_mosaic_file_of_collection($nid, $upload_src_dir, $file_name_for_adding_mosaic)
{
    $targets = get_store_of_collection($nid);
    $archive = drupal_realpath($targets[0]);
    $archive0 = drupal_realpath($targets[1]);
    // 檢查檔案是否存在
    if (!has_file_in_archive0($nid, $file_name_for_adding_mosaic)) {
        // archive0 內有檔的話,archive 一定有檔
        if (!file_exists($archive . '/' . $file_name_for_adding_mosaic)) {
            throw new Exception("add_mosaic_file_of_collection(): file {$file_name_for_adding_mosaic} does not exist.");
        }
    }
    if (!is_mosaic_file_in_archive($nid, $file_name_for_adding_mosaic)) {
        // 1) 把 archive 內的非馬賽克移到 archive0 內
        rename($archive . '/' . $file_name_for_adding_mosaic, $archive0 . '/' . $file_name_for_adding_mosaic);
        // 2) 把 upload 內的檔案移到 archive 內
        if (!is_dir($upload_src_dir) || !($src_dir_handler = opendir($upload_src_dir))) {
            throw new Exception("update_archive_file_of_collection(): no upload directory: {$upload_src_dir} .");
        }
        // 此迴圈應只會執行三次,有兩次是 . 和 .. 這兩個目錄,另一個是上傳檔
        while (($fname = readdir($src_dir_handler)) !== false) {
            if (is_dir($fname)) {
                continue;
            }
            // ignore sub directory
            $the_new_file = $upload_src_dir . '/' . $fname;
            rename($the_new_file, $archive . '/' . $file_name_for_adding_mosaic);
        }
        rmdir($upload_src_dir);
        // delete containing directory.
        _coll_make_public($nid, true);
        // defined at coll/coll.inc
        //delete_thumbnail_of_collection($nid, '200_300');
        delete_all_thumbnail_of_collection($nid);
    } else {
        // 已經有馬賽克檔
        //throw new Exception("add_mosaic_file_of_collection():");
        drupal_set_message('此檔已經存在馬賽克檔,已直接進行更新。');
        update_archive_file_of_collection($nid, $upload_src_dir, $file_name_for_adding_mosaic, false);
    }
}
예제 #2
0
파일: mconvert2.php 프로젝트: 318io/318-io
      [1] => array(
                'collection_id' => '10002',
                'repository_id' => 'A10000002',
                'store'         => '010',
                'files'         => array('10002_001.tif', '10002_002.tif', ...)
            ),
      ...
   );
*/
$argv = drush_get_arguments();
$ticket = $argv[2];
if (empty($ticket)) {
    mylog('empty ticket', 'mconvert-bug.txt');
    exit(0);
}
$archives = variable_get("archives_for_convert_{$ticket}", array());
if (empty($archives)) {
    mylog('empty archives', 'mconvert-bug.txt');
    variable_del("archives_for_convert_{$ticket}");
    exit(0);
}
variable_del("archives_for_convert_{$ticket}");
foreach ($archives as $archive) {
    //$store         = $archive['store'];
    $collection_id = $archive['collection_id'];
    //$files         = $archive['files'];
    //mylog($collection_id, 'bbb.txt');
    _coll_make_public($collection_id, false);
    // defined at coll/coll.inc, call dt::ogg2webm defined at dt/dt.class.inc
    // use avconv -i in.ogv -s 480x360 -bt 700k -ab 128k -f webm -y out.webm
}