%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/BaseGallery.php |
<?php
namespace humhub\modules\gallery\models;
use \humhub\modules\content\components\ContentActiveRecord;
use \humhub\modules\file\models\File;
use humhub\modules\gallery\permissions\WriteAccess;
use \humhub\modules\user\models\User;
use humhub\modules\gallery\Module;
use \Yii;
/**
* This is the abstract model class for table "gallery_gallery".
*
* @property integer $id
* @property string $title
* @property string $description
* @property integer $sort_order
* @property integer $thumb_file_id
* @property integer $type
*
* @package humhub.modules.gallery.models
* @since 1.0
* @author Sebastian Stumpf
*/
class BaseGallery extends ContentActiveRecord
{
/**
* @inheritdoc
*/
public $streamChannel = null;
/**
* @inheritdoc
*/
public $managePermission = WriteAccess::class;
/**
* @inheritdoc
*/
public static function tableName()
{
return 'gallery_gallery';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
['title', 'required'],
['title', 'string', 'max' => 255],
['description', 'string', 'max' => 1000],
[['thumb_file_id', 'type'], 'safe'],
[['sort_order'], 'integer'],
[['sort_order'], 'default', 'value' => 0]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'title' => Yii::t('GalleryModule.base', 'Title'),
'description' => Yii::t('GalleryModule.base', 'Description')
];
}
public function getCreator()
{
return User::findOne(['id' => $this->content->created_by]);
}
public function getEditor()
{
return User::findOne(['id' => $this->content->updated_by]);
}
/**
* @inheritdoc
*/
public function getContentName()
{
return Yii::t('GalleryModule.base', "Gallery");
}
public function getTitle() {
return $this->title;
}
public function getUrl() {
return null;
}
public function getCreatedAt() {
return $this->content->created_at;
}
/**
* @inheritdoc
*/
public function getContentDescription()
{
return $this->title;
}
protected function getDefaultPreviewImageUrl()
{
$path = Yii::$app->getModule('gallery')->getAssetsUrl();
$path = $path . '/file-picture-o.svg';
return $path;
}
public function getMetaData()
{
return [
'creator' => '', // not in use $this->entryObject->getCreator()
'title' => $this->getTitle(),
'wallUrl' => '',
'deleteUrl' => '',
'editUrl' => '',
'downloadUrl' => '',
'fileUrl' => $this->getUrl(),
'thumbnailUrl' => $this->getPreviewImageUrl(),
'contentContainer' => '',
'writeAccess' => $this->content->container->can(WriteAccess::class),
'contentObject' => $this,
'footerOverwrite' => false,
'alwaysShowHeading' => true,
'imagePadding' => ''
];
}
public static function findOne($condition)
{
if(static::class !== BaseGallery::class) {
$condition = $condition ? $condition : [];
$condition['type'] = isset($condition['type']) ? $condition['type'] : static::class;
return parent::findOne($condition);
}
return parent::findOne($condition);
}
public static function findAll($condition)
{
if(static::class !== BaseGallery::class) {
$condition = $condition ? $condition : [];
$condition['type'] = isset($condition['type']) ? $condition['type'] : static::class;
return parent::findAll($condition);
}
return parent::findAll($condition);
}
/**
* @inheritdoc
*/
public function beforeSave($insert)
{
if($insert) {
$this->type = static::class;
}
return parent::beforeSave($insert);
}
public function getPreviewImageUrl()
{
return $this->getDefaultPreviewImageUrl();
}
protected function getPreviewImageUrlFromThumbFileId()
{
// search for file by given thumbnail id
if ($this->thumb_file_id !== null) {
$file = File::findOne($this->thumb_file_id);
// set thumb image id not found
if ($file !== null) {
return SquarePreviewImage::getSquarePreviewImageUrlFromFile($file);
} else {
// save with id null if no thumbfile not found
$this->thumb_file_id = null;
$this->save();
}
}
return null;
}
public function getPageSize()
{
return Yii::$app->getModule('gallery')->galleryMaxImages;
}
}