Esempio n. 1
0
 public function index()
 {
     $mfile = new Model_File($this->config);
     if (isset($_GET["filename"])) {
         $filename = $_GET["filename"];
         $data = $mfile->getMD5FromName($filename);
         if (count($data) > 0) {
             $fn = $data[0]["md5"];
             $file = $this->registry["rootPublic"] . $this->registry["path"]["upload"] . $fn;
             if (file_exists($file)) {
                 $filename = str_replace(" ", "_", $filename);
                 header("Content-Type: application/octet-stream");
                 header("Accept-Ranges: bytes");
                 header("Content-Length: " . filesize($file));
                 header("Content-Disposition: attachment; filename=" . $filename);
                 readfile($file);
             } else {
                 echo $this->view->render("fileNotExist", array());
             }
         } else {
             echo $this->view->render("fileNotExist", array());
         }
     } else {
         echo $this->view->render("fileNotExist", array());
     }
     exit;
 }
Esempio n. 2
0
 public function index()
 {
     $this->view->setTitle("Sydorenkovd Filemanager");
     $file = new Model_File();
     $file->showTree(0);
     if (isset($_GET["id"])) {
         $fm =& $_SESSION["fm"];
         if ($_GET["id"] == "0") {
             $fm["dir"] = 0;
             $fm["dirname"] = "/";
         } else {
             if (is_numeric($_GET["id"])) {
                 $fm["dir"] = $_GET["id"];
                 $dirname = $file->getNameFromDir($_GET["id"]);
                 $fm["dirname"] = $dirname[0]["name"];
             } else {
                 $fm["dir"] = 0;
                 $fm["dirname"] = "/";
             }
         }
     }
     $this->view->setLeftContent($this->view->render("block_left", array("tree" => $file->getTree())));
     $this->view->setBottom($this->view->render("block_bottom", array()));
     $this->view->index(array("session_name" => session_name(), "session_id" => session_id(), "maxUploadSize" => $this->registry["fm"]["maxUploadSize"]));
 }
Esempio n. 3
0
File: Fm.php Progetto: rosko/workapp
 public function index()
 {
     $this->view->setTitle("Файловый менеджер");
     $file = new Model_File($this->config);
     $file->showTree(0);
     if (isset($_GET["id"])) {
         $fm =& $_SESSION["fm"];
         if ($_GET["id"] == "0") {
             $fm["dir"] = 0;
             $fm["dirname"] = "/";
         } else {
             if (is_numeric($_GET["id"])) {
                 $fm["dir"] = $_GET["id"];
                 $dirname = $file->getNameFromDir($_GET["id"]);
                 $fm["dirname"] = $dirname[0]["name"];
             } else {
                 $fm["dir"] = 0;
                 $fm["dirname"] = "/";
             }
         }
     }
     $this->view->setLeftContent($this->view->render("block_left", array("tree" => $file->getTree())));
     $this->view->setAdvBottomPanel($this->view->render("block_bottom", array()));
     $this->view->index(array("session_name" => session_name(), "session_id" => session_id(), "maxUploadSize" => $this->config["fm"]["maxUploadSize"]));
     $this->view->showPage();
 }
Esempio n. 4
0
 function createdir($param)
 {
     $mfile = new Model_File($this->config);
     $mfile->createDir($param[0], $param[1]);
     $did = $mfile->getDid();
     $mfile->addDirRight($did, '{"frall":"2"}');
     return $did;
 }
Esempio n. 5
0
 /**
  * Get additional content data selected
  * 
  * @param $result = Query result
  */
 public static function post_find($result)
 {
     if ($result !== null) {
         if (is_array($result)) {
             foreach ($result as $item) {
                 // It will first check if we already have result in temporary result,
                 // and only execute query if we dont. That way we dont have duplicate queries
                 // Get content images
                 $item->get_images = static::lazy_load(function () use($item) {
                     return Model_Image::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'images');
                 // Get content files
                 $item->get_files = static::lazy_load(function () use($item) {
                     return Model_File::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'files');
                 // Get content videos
                 $item->get_videos = static::lazy_load(function () use($item) {
                     return Model_Video::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'videos');
             }
         }
     }
     // return the result
     return $result;
 }
Esempio n. 6
0
 public function before_delete(\Orm\Model $obj)
 {
     // delete profile image.
     if (conf('upload.types.img.types.m.save_as_album_image') && $obj->file_name && ($file = \Model_File::get4name($obj->file_name))) {
         $file->delete();
     }
 }
Esempio n. 7
0
 public function before_delete(\Orm\Model $obj)
 {
     // カバー写真の確認 & 削除
     if (!($album = \Album\Model_Album::find($obj->album_id))) {
         throw new \FuelException('Invalid album id.');
     }
     if ($album->cover_album_image_id == $obj->id) {
         $album->cover_album_image_id = null;
         $album->save();
     }
     // プロフィール写真の確認 & 削除
     if ($album->foreign_table == 'member') {
         if ($album->member->file_name == $obj->file_name) {
             $album->member->file_name = null;
             $album->member->save();
         }
         // timeline 投稿の削除
         if (is_enabled('timeline')) {
             \Timeline\Model_Timeline::delete4foreign_table_and_foreign_ids('album_image', $obj->id);
         }
     }
     if (is_enabled('timeline')) {
         // timeline_child_data の削除
         \Timeline\Model_TimelineChildData::delete4foreign_table_and_foreign_ids('album_image', $obj->id);
         // timeline view cache の削除
         if (is_enabled('note') && \Config::get('timeline.articles.cache.is_use') && $obj->album->foreign_table == 'note') {
             \Timeline\Site_Model::delete_note_view_cache4album_image_id($obj->id);
         }
     }
     // file 削除
     if ($file = \Model_File::get4name($obj->file_name)) {
         $file->delete();
     }
 }
Esempio n. 8
0
 public static function save_profile_image(Model_Member $member, $file_path = null)
 {
     if (conf('upload.types.img.types.m.save_as_album_image')) {
         $album_id = \Album\Model_Album::get_id_for_foreign_table($member->id, 'member');
         list($album_image, $file) = \Album\Model_AlbumImage::save_with_relations($album_id, $member, conf('public_flag.maxRange'), $file_path, 'album_image_profile');
         $member->file_name = $album_image->file_name;
         $member->save();
     } else {
         if ($member->file_name) {
             Model_File::delete_with_timeline($member->file_name);
         }
         $options = Site_Upload::get_uploader_options($member->id);
         $uploadhandler = new Site_Uploader($options);
         $file = $uploadhandler->save($file_path);
         if (!empty($file->error)) {
             throw new FuelException($file->error);
         }
         $member->file_name = $file->name;
         $member->save();
         // timeline 投稿
         if (is_enabled('timeline')) {
             \Timeline\Site_Model::save_timeline($member->id, conf('public_flag.maxRange'), 'profile_image', $file->id, $member->updated_at);
         }
     }
     return $file;
 }
Esempio n. 9
0
 public function get_file()
 {
     if (empty($this->file_id)) {
         return 'nw';
     }
     return \Model_File::get_name($this->file_id);
 }
Esempio n. 10
0
 public static function recalculate_filesize_total($member_id = 0)
 {
     $filesize_total = Model_File::calc_filesize_total($member_id);
     $member = self::find($member_id);
     $member->filesize_total = $filesize_total;
     $member->save();
     return $filesize_total;
 }
Esempio n. 11
0
 protected function setUp()
 {
     if (!($this->files = \Model_File::find('all'))) {
         \Util_Develop::output_test_info(__FILE__, __LINE__);
         $this->markTestSkipped('No data.');
     }
     $this->is_save_db = conf('upload.storageType') == 'db';
 }
Esempio n. 12
0
File: files.php Progetto: xXLXx/ddc
 public function action_delete($id = null)
 {
     if ($file = Model_File::find($id)) {
         $file->delete();
         Session::set_flash('success', e('Deleted file #' . $id));
     } else {
         Session::set_flash('error', e('Could not delete file #' . $id));
     }
     Response::redirect('site/files');
 }
Esempio n. 13
0
 protected static function get_location(\Album\Model_AlbumImage $obj)
 {
     if (!($file = \Model_File::get4name($obj->file_name))) {
         return false;
     }
     if (!$file->exif) {
         return false;
     }
     $exif = unserialize($file->exif);
     return \Util_Exif::get_location($exif);
 }
Esempio n. 14
0
 function performImport()
 {
     parent::performImport();
     $this->createThumbnails();
     // Now that the origninal is imported, lets generate thumbnails
     /*
     		$this->performImport();
     		$this->update();
     		$this->afterImport();
     */
     return $this;
 }
 /**
  * Create an alternative as_array method
  * create a sizes array with src key
  * @return type
  */
 public function as_array()
 {
     $array = parent::as_array();
     if (isset($this->file) && isset($this->sizes)) {
         $sizes = array();
         foreach ($this->sizes as $size => $data) {
             $data['src'] = $this->src($size);
             $sizes[$size] = $data;
         }
         $array['sizes'] = $sizes;
     }
     return $array;
 }
Esempio n. 16
0
 protected function delete_stored_file(\Orm\Model $obj)
 {
     if (conf('upload.storageType') == 'normal') {
         return;
     }
     if ($this->_is_tmp && \Model_File::get4name($obj->name)) {
         return;
     }
     if (conf('upload.storageType') == 'S3') {
         return \Site_S3::delete($obj->name, 'img') && \Site_S3::delete($obj->name, 'file');
     }
     if (!($file_bin = \Model_FileBin::get4name($obj->name))) {
         return;
     }
     return $file_bin->delete();
 }
Esempio n. 17
0
File: File.php Progetto: pancke/yyaf
 public function moveAction()
 {
     $oStorage = new File_Storage();
     $sHost = $this->getParam('host');
     $iCnt = Model_File::query('SELECT COUNT(*) FROM t_file', 'one');
     for ($i = 0; $i < $iCnt; $i += 200) {
         $aList = Model_File::query("SELECT * FROM t_file LIMIT {$i},200");
         foreach ($aList as $aRow) {
             $sFileKey = $aRow['sKey'] . '.' . $aRow['sExt'];
             $sUrl = $sHost . '/view/' . $sFileKey;
             $sContent = file_get_contents($sUrl);
             $sDestFile = $oStorage->directSaveFile($aRow['sKey'], $sContent);
             echo "{$sUrl} => {$sDestFile}\n";
         }
     }
 }
Esempio n. 18
0
 public static function get_album_image_display_name(Model_AlbumImage $album_image, $default = '', $is_accept_hash_filename = false)
 {
     if (isset($album_image->name) && strlen($album_image->name)) {
         return $album_image->name;
     }
     if (!\Config::get('album.isDisplayOriginalFileName')) {
         return $default;
     }
     $file = \Model_File::get4name($album_image->file_name);
     if ($file && isset($file->original_filename) && strlen($file->original_filename)) {
         return $file->original_filename;
     }
     if ($is_accept_hash_filename) {
         return $album_image->file_name;
     }
     return term('album_image');
 }
Esempio n. 19
0
 public function test_check_real_file_info()
 {
     $raw_file_dir_path = conf('upload.types.img.raw_file_path');
     if (!file_exists($raw_file_dir_path) || !($file_paths = Util_file::get_file_recursive($raw_file_dir_path))) {
         \Util_Develop::output_test_info(__FILE__, __LINE__);
         $this->markTestSkipped('No data.');
     }
     foreach ($file_paths as $file_path) {
         $file_info = File::file_info($file_path);
         $file_name = \Site_Upload::get_filename_from_file_path($file_path);
         $file = Model_File::get4name($file_name);
         // file に対応する Model_File が存在する
         $this->assertNotEmpty($file);
         // path の確認
         $this->assertEquals(trim(\Site_Upload::get_filepath_prefix_from_filename($file_name), '/'), Util_file::get_path_partial($file_info['dirname'], 2));
         // type の確認
         $this->assertEquals($file->type, $file_info['mimetype']);
         // size の確認
         $this->assertEquals($file->filesize, $file_info['size']);
     }
 }
Esempio n. 20
0
 public function get_file_objects_from_related_model($model_objs, $image_names_posted = array())
 {
     $files = array();
     if (!$model_objs) {
         return $files;
     }
     $key = Util_Array::get_first_key($model_objs);
     $table = $model_objs[$key]->table();
     $need_member_id_tables = array('album_image');
     if (in_array($table, $need_member_id_tables) && !$this->options['member_id']) {
         throw new \FuelException('Need member_id.');
     }
     $file_cate = $model_objs[$key]->get_image_prefix();
     $cache_size = conf('upload.types.img.types.' . $file_cate . '.sizes.thumbnail');
     foreach ($model_objs as $model_obj) {
         $file_name = $this->remove_filename_prefix($model_obj->file_name);
         if (!($file = $this->get_file_object($file_name))) {
             continue;
         }
         $file_obj = Model_File::get4name($model_obj->file_name);
         $file->is_tmp = false;
         $file->name_prefix = $this->options['filename_prefix'];
         $file->id = (int) $model_obj->id;
         $file->original_name = $file_obj->original_filename;
         $file->thumbnail_uri = Site_Upload::get_uploaded_file_path($model_obj->file_name, $cache_size, 'img', false, true);
         $file->description = $model_obj->name;
         if (isset($image_names_posted[$model_obj->id]) && strlen($image_names_posted[$model_obj->id])) {
             $file->description = $image_names_posted[$model_obj->id];
         }
         if (!empty($this->options['accept_sizes'])) {
             $file->accept_sizes = $this->options['accept_sizes'];
         }
         $files[] = $file;
     }
     return $files;
 }
Esempio n. 21
0
 /**
  * Get additional content data selected
  * 
  * @param $result = Query result
  */
 public static function post_find($result)
 {
     if ($result !== null) {
         if (is_array($result)) {
             foreach ($result as $item) {
                 // It will first check if we already have result in temporary result,
                 // and only execute query if we dont. That way we dont have duplicate queries
                 // Get content images
                 $item->get_images = static::lazy_load(function () use($item) {
                     return Model_Image::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'images');
                 // Get content files
                 $item->get_files = static::lazy_load(function () use($item) {
                     return Model_File::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'files');
                 // Get content videos
                 $item->get_videos = static::lazy_load(function () use($item) {
                     return Model_Video::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'videos');
                 // Get content children
                 $item->get_children = static::lazy_load(function () use($item) {
                     return Model_Casestudy::find(array('where' => array('parent_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'children');
                 // Get content accordions
                 $item->get_accordions = static::lazy_load(function () use($item) {
                     return Model_Accordion::find(array('where' => array('parent_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'accordions');
                 // Get content children
                 $item->get_seo = static::lazy_load(function () use($item) {
                     return Model_Seo::find_one_by_content_id($item->id);
                 }, $item->id, 'seo', 'object');
                 // Get related products
                 $item->get_related_products = static::lazy_load(function () use($item) {
                     $related = Model_Application_To_Related::find(function ($query) use($item) {
                         return $query->where('application_id', $item->id);
                     }, 'related_id');
                     if (!empty($related)) {
                         $related = '(' . implode(',', array_keys($related)) . ')';
                         return \Product\Model_Product::find(function ($query) use($related, $item) {
                             $query->where('id', 'IN', \DB::expr($related));
                             $query->where('id', '<>', $item->id);
                             $query->order_by('sort', 'asc');
                             return $query;
                         }, 'id');
                     }
                     return array();
                 }, $item->id, 'related_products');
                 // Get hotspot images
                 $item->get_hotspot = static::lazy_load(function () use($item) {
                     $return = new \stdClass();
                     $return->images = Model_Application_Image::find_by_application_id($item->id);
                     return $return;
                 }, $item->id, 'hotspot', 'object');
             }
         }
     }
     // return the result
     return $result;
 }
Esempio n. 22
0
 public static function get_timeline_images($type, $foreign_id, $timeline_id = null, $access_from = null, $is_detail = false)
 {
     // defaults
     $images = array();
     $images['file_cate'] = 'ai';
     $images['size'] = 'N_M';
     $images['column_count'] = 3;
     switch ($type) {
         case \Config::get('timeline.types.album_image_profile'):
             $images['list'] = array();
             if ($list = \Album\Model_AlbumImage::check_authority($foreign_id)) {
                 $images['list'][] = $list;
                 $images['column_count'] = 2;
             }
             break;
         case \Config::get('timeline.types.profile_image'):
             $images['list'] = array();
             if ($list = \Model_File::find($foreign_id)) {
                 $images['list'][] = $list;
                 $images['file_cate'] = 'm';
                 $images['size'] = 'LL';
                 $images['column_count'] = 2;
             }
             break;
         case \Config::get('timeline.types.note'):
             list($images['list'], $images['count_all']) = \Note\Model_NoteAlbumImage::get_album_image4note_id($foreign_id, $is_detail ? 0 : \Config::get('timeline.articles.thumbnail.limit.default'), array('id' => 'asc'), true);
             $images['parent_page_uri'] = 'note/' . $foreign_id;
             break;
         case \Config::get('timeline.types.thread'):
             list($images['list'], $images['count_all']) = \Thread\Model_ThreadImage::get4thread_id($foreign_id, 3, true);
             $images['file_cate'] = 't';
             $images['size'] = 'M';
             $images['column_count'] = 3;
             $images['parent_page_uri'] = 'thread/' . $foreign_id;
             break;
         case \Config::get('timeline.types.album'):
         case \Config::get('timeline.types.album_image'):
             $images['list'] = array();
             $images['count'] = 0;
             if ($album_image_ids = Model_TimelineChildData::get_foreign_ids4timeline_id($timeline_id)) {
                 list($images['list'], $images['count']) = \Album\Model_AlbumImage::get_list_and_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('id', 'in', $album_image_ids))), $is_detail ? 0 : 'limit' => \Config::get('timeline.articles.thumbnail.limit.default'), 'order_by' => array('created_at' => 'asc')));
             }
             $images['count_all'] = \Album\Model_AlbumImage::get_list_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('album_id', $foreign_id)))));
             $images['parent_page_uri'] = 'album/' . $foreign_id;
             break;
         case \Config::get('timeline.types.album_image_timeline'):
             list($images['list'], $images['count']) = \Album\Model_AlbumImage::get_list_and_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('id', 'in', Model_TimelineChildData::get_foreign_ids4timeline_id($timeline_id)))), $is_detail ? 0 : 'limit' => \Config::get('timeline.articles.thumbnail.limit.album_image_timeline'), 'order_by' => array('created_at' => 'asc')));
             $images['count_all'] = $images['count'];
             $images['parent_page_uri'] = 'timeline/' . $timeline_id;
             break;
         default:
             break;
     }
     return $images;
 }
Esempio n. 23
0
 /**
  * Delete content file
  * 
  * @param $file_id		= File ID
  * @param $content_id	= Content ID
  */
 public function action_delete_file($file_id = false, $content_id = false)
 {
     if ($file_id && $content_id) {
         $files = Model_File::find(array('where' => array('content_id' => $content_id), 'order_by' => array('sort' => 'asc')), 'id');
         if ($files) {
             if (isset($files[$file_id])) {
                 $file = $files[$file_id];
                 // If there is only one image and image is required
                 if (count($files) == 1) {
                     if (\Config::get('details.file.required', false)) {
                         \Messages::error('You can\'t delete all files. Please add new file in order to delete this one.');
                     } else {
                         // Reset sort fields
                         \DB::update(Model_File::get_protected('_table_name'))->value('sort', \DB::expr('sort - 1'))->where('sort', '>', $file->sort)->execute();
                         // Delete file
                         $this->delete_file($file->file);
                         $file->delete();
                         \Messages::success('File was successfully deleted.');
                     }
                 } else {
                     // Dont use cover option for files
                     if (FALSE && $file->cover == 1) {
                         \Messages::error('You can\'t delete cover file. Set different file as cover in order to delete this one.');
                     } else {
                         // Reset sort fields
                         \DB::update(Model_File::get_protected('_table_name'))->value('sort', \DB::expr('sort - 1'))->where('sort', '>', $file->sort)->execute();
                         // Delete file
                         $this->delete_file($file->file);
                         $file->delete();
                         // Set another file as cover if cover is deleted
                         if ($file->cover == 1) {
                             $files = Model_File::find(array('where' => array('content_id' => $content_id), 'order_by' => array('sort' => 'asc')));
                             $files[0]->cover = 1;
                             $files[0]->save();
                         }
                         \Messages::success('File was successfully deleted.');
                     }
                 }
             } else {
                 \Messages::error('File you are trying to delete don\'t exists. Check your url and try again.');
             }
         } else {
             \Messages::error('File you are trying to delete don\'t exists. Check your url and try again.');
         }
     }
     \Response::redirect(\Input::referrer(\Uri::create('admin/application/list')));
 }
Esempio n. 24
0
<?php

if ($list) {
    $file_cate = !empty($file_cate) ? $file_cate : 'nw';
    $file_uri_base = conf('upload.types.file.tmp.root_path.raw_dir');
    if (!empty($title)) {
        ?>
<h4><?php 
        echo $title;
        ?>
</h4>
<?php 
    }
    ?>
<ul>
<?php 
    foreach ($list as $file) {
        $file_obj = \Model_File::get4name($file->file_name);
        $file_uri = Site_Upload::get_uploaded_file_path($file_obj->name, 'raw', 'file', false, true);
        ?>
	<li><?php 
        echo anchor($file_uri, $file->name ?: $file_obj->original_filename);
        ?>
</li>
<?php 
    }
    ?>
</ul>
<?php 
}
Esempio n. 25
0
 private static function get_album_filesize_total($album_id)
 {
     $album_images = Model_AlbumImage::get4album_id($album_id);
     $size = 0;
     foreach ($album_images as $album_image) {
         $file = \Model_File::get4name($album_image->file_name);
         $size += $file->filesize;
     }
     return $size;
 }
Esempio n. 26
0
 /**
  * Try delete related thumb file before deleting file entity itself
  *
  * @return void
  */
 function beforeDelete()
 {
     parent::beforeDelete();
     $this->ref('thumb_file_id')->tryDelete();
 }
Esempio n. 27
0
 /**
  *
  * @param
  *            $p_sKey
  * @return array
  */
 public function getFileInfo($p_sKey)
 {
     $mReturn = [];
     $aFileInfo = Model_File::getFileByKey($p_sKey);
     if (!empty($aFileInfo)) {
         $aFileMeta = Model_FileMeta::getFileMetaByKey($p_sKey);
         $mReturn = array_merge($aFileInfo, $aFileMeta);
     }
     return $mReturn;
 }
Esempio n. 28
0
 public static function save_images($file_tmps, $parent_id, $parent_id_field, $related_table, $public_flag = null, $type = 'img')
 {
     if (!in_array($type, array('img', 'file'))) {
         throw new InvalidArgumentException('Parameter type is invalid.');
     }
     $moved_files = array();
     $related_table_ids = array();
     if (!$file_tmps) {
         return array($moved_files, $related_table_ids);
     }
     $model = Site_Model::get_model_name($related_table);
     $related_table_obj = $model::forge();
     if (!($file_cate = $related_table_obj->get_image_prefix())) {
         throw new \InvalidArgumentException('Parameter $related_table is invalid.');
     }
     $new_filepath_prefix = Site_Upload::get_filepath_prefix($file_cate, $parent_id);
     $new_filename_prefix = Site_Upload::convert_filepath2filename($new_filepath_prefix);
     $is_save_storage = conf('upload.storageType') != 'normal';
     if (!$is_save_storage) {
         $new_file_dir = Site_Upload::get_uploaded_path('raw', 'img', true, false, $new_filepath_prefix);
         if (!Site_Upload::check_and_make_uploaded_dir($new_file_dir, conf('upload.check_and_make_dir_level'), conf('upload.mkdir_mode'))) {
             throw newFuelException('Failed to make save dirs.');
         }
     }
     foreach ($file_tmps as $id => $file_tmp) {
         $old_file_path = Site_Upload::get_uploaded_file_path($file_tmp->name, 'raw', 'img', true);
         $moved_files[$file_tmp->id] = array('from' => $old_file_path);
         if (!$is_save_storage) {
             $new_file_path = $new_file_dir . $file_tmp->name;
             Util_file::move($old_file_path, $new_file_path);
             $moved_files[$file_tmp->id]['to'] = $new_file_path;
             $moved_files[$file_tmp->id]['filepath_prefix'] = $new_filepath_prefix;
         }
         if ($type == 'img') {
             $moved_files[$file_tmp->id]['from_thumbnail'] = Site_Upload::get_uploaded_file_path($file_tmp->name, 'thumbnail', 'img', true);
         }
         $file = Model_File::move_from_file_tmp($file_tmp, $new_filename_prefix, $type);
         $related_table_obj = $model::forge();
         $related_table_obj->{$parent_id_field} = $parent_id;
         $related_table_obj->file_name = $file->name;
         $related_table_obj->name = $file_tmp->description;
         $related_table_obj->shot_at = !empty($file->shot_at) ? $file->shot_at : date('Y-m-d H:i:s');
         if (!is_null($public_flag)) {
             $related_table_obj->public_flag = $public_flag;
         }
         $related_table_obj->save();
         $related_table_ids[] = $related_table_obj->id;
     }
     return array($moved_files, $related_table_ids);
 }
Esempio n. 29
0
 /**
  * 
  * @return boolean
  */
 public function save()
 {
     $result = parent::save();
     $this->rebuild_blocks();
     return $result;
 }
Esempio n. 30
0
 public static function delete_album_image_multiple4ids($album_image_ids = array(), $with_delete_timeline = false)
 {
     if (!is_array($album_image_ids)) {
         $album_image_ids = (array) $album_image_ids;
     }
     $delete_target_notice_cache_member_ids = array();
     $delete_target_timeline_ids = array();
     $writable_connection = \MyOrm\Model::connection(true);
     \DBUtil::set_connection($writable_connection);
     \DB::start_transaction();
     foreach ($album_image_ids as $album_image_id) {
         if (is_enabled('notice')) {
             \Notice\Site_NoOrmModel::delete_member_watch_content_multiple4foreign_data('album_image', $album_image_id);
             $notice_ids = \Notice\Site_NoOrmModel::get_notice_ids4foreign_data('album_image', $album_image_id);
             $delete_target_notice_cache_member_ids += \Notice\Site_NoOrmModel::get_notice_status_member_ids4notice_ids($notice_ids);
             \Notice\Site_NoOrmModel::delete_notice_multiple4ids($notice_ids);
         }
         if (is_enabled('timeline') && $with_delete_timeline) {
             $delete_target_timeline_ids += \timeline\site_noormmodel::delete_timeline_multiple4foreign_data('album_image', $album_image_id);
         }
     }
     $file_names = \Util_Orm::conv_col2array(Model_AlbumImage::get4ids($album_image_ids), 'file_name');
     \DB::delete('album_image')->where('id', 'in', $album_image_ids)->execute();
     \DB::commit_transaction();
     \DBUtil::set_connection(null);
     \DB::start_transaction();
     if ($files = \Model_File::get4names($file_names)) {
         foreach ($files as $file) {
             $file->delete();
         }
     }
     \DB::commit_transaction();
     // delete caches
     if ($delete_target_notice_cache_member_ids) {
         foreach ($delete_target_notice_cache_member_ids as $member_id) {
             \Notice\Site_Util::delete_unread_count_cache($member_id);
         }
     }
     if ($delete_target_timeline_ids) {
         foreach ($delete_target_timeline_ids as $timeline_id) {
             \Timeline\Site_Util::delete_cache($timeline_id);
         }
     }
 }