%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/gallery/controllers/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/gallery/controllers/MediaController.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2015 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\gallery\controllers;
use humhub\modules\gallery\helpers\Url;
use \humhub\modules\gallery\models\Media;
use \Yii;
use yii\web\ForbiddenHttpException;
use \yii\web\HttpException;
use yii\web\NotFoundHttpException;
/**
* Description of a Media Controller for the gallery module.
*
* @package humhub.modules.gallery.controllers
* @since 1.0
* @author Sebastian Stumpf
*/
class MediaController extends CustomGalleryController
{
public function actionEdit($id = null, $fromWall = false)
{
$media = Media::find()->contentContainer($this->contentContainer)->where(['gallery_media.id' => $id])->one();
if (!$media) {
throw new HttpException(404);
}
if(!$media->content->canEdit()) {
throw new ForbiddenHttpException();
}
if ($media->load(Yii::$app->request->post()) && $media->save()) {
if ($fromWall) {
return $this->asJson(['success' => true]);
}
$this->view->saved();
return $this->htmlRedirect(Url::toCustomGallery($this->contentContainer, $media->gallery_id));
}
return $this->renderPartial('modal_media_edit', [
'gid' => $media->gallery_id,
'media' => $media,
'contentContainer' => $this->contentContainer,
'fromWall' => $fromWall
]);
}
public function actionDelete($id = null, $fromWall = false)
{
$this->forcePostRequest();
$media = Media::findOne(['id' => $id]);
if(!$media) {
throw new NotFoundHttpException();
}
if(!$media->content->canEdit()) {
throw new ForbiddenHttpException();
}
if($media->delete()) {
$this->view->success(Yii::t('GalleryModule.base', 'Deleted'));
} else {
$this->view->error(Yii::t('GalleryModule.base', 'Item could not be deleted!'));
}
return !$fromWall
? $this->htmlRedirect(Url::toCustomGallery($this->contentContainer, $media->gallery_id))
: $this->asJson([
'success' => false
]);
}
}