News.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace manager\models;
  3. use Yii;
  4. use app\forks\galleryManager\GalleryBehavior;
  5. use yii\helpers\ArrayHelper;
  6. class News extends \app\models\News
  7. {
  8. public function rules()
  9. {
  10. return ArrayHelper::merge(parent::rules(),[
  11. [['meta_title'], 'titleLimit'],
  12. ]);
  13. }
  14. public function titleLimit($attr){
  15. if($this->dt_cr>'2023-01-04 00:00:00' && mb_strlen($this->meta_title)>80){
  16. // $this->addError($attr,'Заголовок у новостей после третьего января 2023 максимум 80 символов');
  17. }
  18. }
  19. /*
  20. public function behaviors()
  21. {
  22. return [
  23. 'galleryBehavior' => [
  24. 'class' => GalleryBehavior::className(),
  25. 'type' => 'product',
  26. 'extension' => 'webp',
  27. 'directory' => Yii::getAlias('@webroot') . '/images/product/gallery',
  28. 'url' => Yii::getAlias('@web') . '/images/product/gallery',
  29. 'versions' => [
  30. 'small' => function ($img) {
  31. return $img
  32. ->copy()
  33. ->thumbnail(new \Imagine\Image\Box(200, 200));
  34. },
  35. 'medium' => function ($img) {
  36. $dstSize = $img->getSize();
  37. $maxWidth = 800;
  38. if ($dstSize->getWidth() > $maxWidth) {
  39. $dstSize = $dstSize->widen($maxWidth);
  40. }
  41. return $img
  42. ->copy()
  43. ->resize($dstSize);
  44. },
  45. ]
  46. ]
  47. ];
  48. }
  49. */
  50. /**
  51. * @return \yii\db\ActiveQuery
  52. */
  53. public function getGalleries()
  54. {
  55. return $this->hasMany(Gallery::class,['post_id'=>'id']);
  56. }
  57. public function save($runValidation = true, $attributeNames = null)
  58. {
  59. return parent::save($runValidation, $attributeNames);
  60. }
  61. }