Esempio n. 1
0
 public function media_link_edit()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, 'admin.cms.media-link', true, '/cms/media-link');
     // check
     $id = Converter::int('id');
     $moduleMedia = \Rebond\Cms\ModuleMedia\Data::loadById($id, true);
     $form = new \Rebond\Cms\ModuleMedia\Form($moduleMedia);
     // action
     if (isset($_POST['save'])) {
         Auth::isAdminAuthorized($this->signedUser, 'admin.cms.media-link.edit', true, '/cms/media-link-edit?id=' . $id);
         if ($form->setFromPost()->validate()->isValid()) {
             $moduleMedia->save();
             Session::adminSuccess('saved', '/cms/media_link');
         } else {
             Session::set('adminError', $form->getValidation()->getMessage());
         }
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Template(Template::MODULE, ['cms', 'moduleMedia']);
     $tplMain->set('item', $form);
     // layout
     if (Auth::isAdminAuthorized($this->signedUser, 'admin.cms.media-link.edit', false)) {
         $this->tplLayout->set('column1', $tplMain->render('editor'));
     } else {
         $this->tplLayout->set('column1', $tplMain->render('view'));
     }
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-1-col'));
     return $this->tplMaster->render('tpl-default');
 }
Esempio n. 2
0
 public function in_use()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, 'admin.media.image', true, '/media');
     $id = Converter::int('id');
     if (!isset($id)) {
         return $this->index();
     }
     // find app modules that use medium
     $items = [];
     $moduleMedium = \Rebond\Cms\ModuleMedia\Data::loadAll();
     if ($moduleMedium) {
         foreach ($moduleMedium as $moduleMedia) {
             $module = \Rebond\Cms\Module\Data::loadById($moduleMedia->getModuleId());
             if (isset($module)) {
                 $appData = '\\Rebond\\App\\' . $module->getTitle() . '\\Data';
                 $options = [];
                 $options['where'][] = [$moduleMedia->getField() . ' = ?', $id];
                 $options['where'][] = ['content.version NOT IN (?)', [VersionType::DELETED, VersionType::OLD]];
                 $items = array_merge($items, $appData::loadAll($options));
             }
         }
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Template(Template::SITE, ['admin', 'media']);
     $tplMain->set('items', $items);
     // layout
     $this->tplLayout->set('column1', $tplMain->render('in-use'));
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-1-col'));
     return $this->tplMaster->render('tpl-default');
 }
Esempio n. 3
0
 public function deleteMedia()
 {
     if (!$this->hasPrivilege('admin.media.edit')) {
         return $this->noPrivilege('admin.media.edit');
     }
     $json = [];
     $json['result'] = ResultType::ERROR;
     // check
     $id = Converter::int('id', 'post', 0);
     // get media
     $media = \Rebond\Core\Media\Data::loadById($id);
     if (!isset($media)) {
         $json['message'] = Lang::lang('itemNotFound', [$id]);
         return json_encode($json);
     }
     $count = 0;
     // find app modules that use medium
     $moduleMedium = \Rebond\Cms\ModuleMedia\Data::loadAll();
     if ($moduleMedium) {
         foreach ($moduleMedium as $moduleMedia) {
             $module = \Rebond\Cms\Module\Data::loadById($moduleMedia->getModuleId());
             if (isset($module)) {
                 $appData = '\\Rebond\\App\\' . $module->getTitle() . '\\Data';
                 // count
                 $options = [];
                 $options['where'][] = [$moduleMedia->getField() . ' = ?', $id];
                 $options['where'][] = ['content.version NOT IN (?)', [VersionType::DELETED, VersionType::OLD]];
                 $num = $appData::count($options);
                 $count += $num;
             }
         }
     }
     if ($count > 0) {
         $json['message'] = 'media cannot not been deleted because it is used by <a href="/media/in-use?id=' . $id . '">' . $count . ' item(s)</a>.';
         return json_encode($json);
     }
     $r = \Rebond\Core\Media\Data::deleteById($media->getId());
     if ($r == ResultType::ERROR) {
         $json['message'] = 'media could not be deleted';
         return json_encode($json);
     }
     \Rebond\Util\File::deleteAllMedia($media->getPath(), $media->getUpload());
     $json['result'] = ResultType::SUCCESS;
     $json['message'] = 'media deleted';
     return json_encode($json);
 }