%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/gallery/models/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/gallery/models/CustomGallery.php |
<?php namespace humhub\modules\gallery\models; use humhub\modules\content\components\ActiveQueryContent; use humhub\modules\content\components\ContentContainerActiveRecord; use humhub\modules\content\models\Content; use humhub\modules\space\models\Space; use Yii; use humhub\modules\gallery\helpers\Url; /** * This is the model class for a custom gallery. * * @package humhub.modules.gallery.models * @since 1.0 * @author Sebastian Stumpf */ class CustomGallery extends BaseGallery { public function getWallUrl() { return Url::to(['/content/perma', 'id' => $this->content->id], true); } public function getUrl() { return Url::toCustomGallery($this->content->container, $this->id); } public function isPublic() { return $this->content->isPublic(); } public function getPreviewImageUrl() { // get preview image from a set thumbfile $path = $this->getPreviewImageUrlFromThumbFileId(); if ($path !== null) { return $path; } // get preview image from the file list $media = $this->mediaListQuery() ->orderBy([ 'sort_order' => SORT_ASC ]) ->one(); if ($media != null && !empty($media->getSquarePreviewImageUrl())) { return $media->getSquarePreviewImageUrl(); } // return default image if gallery is empty return $this->getDefaultPreviewImageUrl(); } public function afterDelete() { foreach ($this->getMediaList() as $media) { $media->delete(); } return parent::afterDelete(); } public function getItemId() { if($this->id != null) { return 'custom-gallery_' . $this->id; } return null; } /** * @return ActiveQueryContent */ public function mediaListQuery() { return Media::find()->where(['gallery_id' => $this->id])->orderBy('id DESC'); } public function getMetaData() { $result = parent::getMetaData(); $result['deleteUrl'] = Url::toDeleteCustomGallery($this->content->container, $this->id); $result['editUrl'] = Url::toEditCustomGallery( $this->content->container, $this->id); $result['imagePadding'] = $this->isEmpty(); return $result; } public static function findLatest(ContentContainerActiveRecord $contentContainer) { return self::find()->contentContainer($contentContainer)->orderBy('id DESC')->one(); } public function getMediaList($max = null) { return $this->mediaListQuery()->contentContainer($this->content->container)->readable()->limit($max)->all(); } public function isEmpty() { return $this->mediaListQuery()->one() === null; } }