diff --git a/module/file/model.php b/module/file/model.php index cd0961c12f..d16b4586b7 100755 --- a/module/file/model.php +++ b/module/file/model.php @@ -66,6 +66,30 @@ class fileModel extends model return $files; } + /** + * Delete files by object. + * + * @param string $objectType + * @param int $objectID + * @access public + * @return bool + */ + public function deleteByObject($objectType, $objectID) + { + $files = $this->dao->select('*')->from(TABLE_FILE) + ->where('objectType')->eq($objectType) + ->andWhere('objectID')->in($objectID) + ->andWhere('deleted')->eq('0') + ->fetchAll('id'); + + foreach($files as $file) + { + $this->dao->update(TABLE_FILE)->set('deleted')->eq(1)->where('id')->eq($file->id)->exec(); + } + + return true; + } + /** * Get info of a file. * @@ -261,10 +285,11 @@ class fileModel extends model * get uploaded file from zui.uploader. * * @param string $htmlTagName + * @param string $name * @access public * @return array */ - public function getUploadFile($htmlTagName = 'file') + public function getUploadFile($htmlTagName = 'file', $name = '') { if(!isset($_FILES[$htmlTagName]) || empty($_FILES[$htmlTagName]['name'])) return; @@ -275,7 +300,7 @@ class fileModel extends model extract($_FILES[$htmlTagName]); if(!validater::checkFileName($name)) return array(); - if($this->post->name) $name = $this->post->name; + if(empty($name) && $this->post->name) $name = $this->post->name; $file = array(); $file['id'] = 0; diff --git a/module/screen/control.php b/module/screen/control.php index 47d54848b0..77f1114836 100644 --- a/module/screen/control.php +++ b/module/screen/control.php @@ -23,8 +23,12 @@ class screen extends control $dimensionID = $this->loadModel('dimension')->setSwitcherMenu($dimensionID); $this->checkShowGuide(); + $screens = $this->screen->getList($dimensionID); + $screens = $this->screen->getThumbnail($screens); + $screens = $this->screen->removeScheme($screens); + $this->view->title = $this->lang->screen->common; - $this->view->screens = $this->screen->getList($dimensionID); + $this->view->screens = $screens; $this->view->dimension = $dimensionID; $this->display(); } diff --git a/module/screen/model.php b/module/screen/model.php index f835bc1a79..1e69c3c6c8 100644 --- a/module/screen/model.php +++ b/module/screen/model.php @@ -51,11 +51,48 @@ class screenModel extends model { $hasUsageReport = $this->config->edition !== 'open'; - return $this->dao->select('*')->from(TABLE_SCREEN) + $screens = $this->dao->select('*')->from(TABLE_SCREEN) ->where('dimension')->eq($dimensionID) ->andWhere('deleted')->eq('0') ->beginIF(!$hasUsageReport)->andWhere('id')->ne(1001)->fi() ->fetchAll('id'); + + return $screens; + } + + /** + * Get screen thumbnail. + * + * @param array $screens + * @access public + * @return array + */ + public function getThumbnail($screens) + { + foreach($screens as $screen) + { + $images = $this->loadModel('file')->getByObject('screen', $screen->id); + if(empty($images)) continue; + + $image = end($images); + $screen->cover = helper::createLink('file', 'read', "fileID={$image->id}", 'png'); + } + + return $screens; + } + + /** + * Remove scheme field of screen. + * + * @param array $screens + * @access public + * @return array + */ + public function removeScheme($screens) + { + foreach($screens as $screen) unset($screen->scheme); + + return $screens; } /**