Articles.php 3.03 KB
<?php

namespace backend\models;

use Yii;

/**
 * This is the model class for table "{{%articles}}".
 *
 * @property integer $id
 * @property string $name
 * @property integer $work_type
 * @property string $translit
 * @property string $title
 * @property string $body
 * @property string $image
 * @property string $meta_title
 * @property string $description
 * @property string $h1
 * @property string $seo_text
 * @property string $gallery
 * @property string $type
 * @property string $date
 */
class Articles extends \yii\db\ActiveRecord
{

    public $file;
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%articles}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['name','body'], 'required'],
            [['work_type'], 'integer'],
            [['file'], 'file'],
            [['body', 'seo_text','gallery'], 'string'],
            [['name', 'h1', 'image', 'type','date'], 'string', 'max' => 255],
            [['translit', 'title', 'meta_title', 'description'], 'string', 'max' => 250]
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'name' => 'Название',
            'work_type' => 'Вид работ',
            'translit' => 'Translit',
            'title' => 'Title',
            'body' => 'Body',
            'meta_title' => 'Meta Title',
            'description' => 'Description',
            'h1' => 'H1',
            'seo_text' => 'Seo Text',
        ];
    }

    public function behaviors()
    {
        return [
            'slug' => [
                'class' => 'common\behaviors\Slug',
                'in_attribute' => 'name',
                'out_attribute' => 'translit',
                'translit' => true
            ]
        ];
    }

    public function getGallery(){
        if($this->gallery){
            $array = explode(",", $this->gallery);
            array_pop($array);
            return $array;
        } else {
            return array();
        }

    }


    public function shortenString( $str, $length = 200 )
    {
        if( strlen($str) > $length )
        {
            $str = wordwrap( $str, $length, '||BR||', false );
            $str = mb_substr( $str, 0, mb_strpos( $str, '||BR||', 0, 'UTF-8' ), 'UTF-8' );
            $str .= '...';
        }

        return $str;
    }
    function minImg($dir, $width, $height=null){
        if($width=='original'){
            $preg = '/\/(.[^\/]*)$/';
            preg_match('/\.(.[^.]*)$/', $dir, $type);
            $row = preg_replace( $preg, '/original.'.$type[1],  $dir);
        } else {
            $preg = '/\/(.[^\/]*)$/';
            preg_match('/\.(.[^.]*)$/', $dir, $type);
            $row =  preg_replace( $preg, '/'.$width.'X'.$height.'.'.$type[1],  $dir);
        }
        return $row;
//        if(file_exists($_SERVER['DOCUMENT_ROOT'].$row)){
//            return $row;
//        } else {
//            return "/storage/no-image.png";
//        }

    }
}