123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- namespace manager\models;
- use Yii;
- use app\forks\galleryManager\GalleryBehavior;
- use yii\helpers\ArrayHelper;
- class News extends \app\models\News
- {
- public function rules()
- {
- return ArrayHelper::merge(parent::rules(),[
- [['meta_title'], 'titleLimit'],
- ]);
- }
- public function titleLimit($attr){
- if($this->dt_cr>'2023-01-04 00:00:00' && mb_strlen($this->meta_title)>80){
- // $this->addError($attr,'Заголовок у новостей после третьего января 2023 максимум 80 символов');
- }
- }
- public function behaviors()
- {
- return [
- 'galleryBehavior' => [
- 'class' => GalleryBehavior::className(),
- 'type' => 'product',
- 'extension' => 'webp',
- 'directory' => Yii::getAlias('@webroot') . '/images/product/gallery',
- 'url' => Yii::getAlias('@web') . '/images/product/gallery',
- 'versions' => [
- 'small' => function ($img) {
- /** @var \Imagine\Image\ImageInterface $img */
- return $img
- ->copy()
- ->thumbnail(new \Imagine\Image\Box(200, 200));
- },
- 'medium' => function ($img) {
- /** @var \Imagine\Image\ImageInterface $img */
- $dstSize = $img->getSize();
- $maxWidth = 800;
- if ($dstSize->getWidth() > $maxWidth) {
- $dstSize = $dstSize->widen($maxWidth);
- }
- return $img
- ->copy()
- ->resize($dstSize);
- },
- ]
- ]
- ];
- }
- /**
- * @return \yii\db\ActiveQuery
- */
- public function getGalleries()
- {
- return $this->hasMany(Gallery::class,['post_id'=>'id']);
- }
- public function save($runValidation = true, $attributeNames = null)
- {
- return parent::save($runValidation, $attributeNames);
- }
- }
|