Your IP : 216.73.216.79


Current Path : /var/www/html/sprm/backend/models/
Upload File :
Current File : /var/www/html/sprm/backend/models/ContentArticle.php

<?php

namespace backend\models;

use Yii;
use asinfotrack\yii2\audittrail\behaviors\AuditTrailBehavior;

/**
 * This is the model class for table "content_article".
 *
 * @property int $content_article_id
 * @property string $content_article_title_my
 * @property string $content_article_title_en
 * @property string $content_article_category
 * @property string $content_article_subcategory
 * @property string $content_article_content_my
 * @property string $content_article_content_en
 * @property int $content_article_status
 * @property string $created_at
 * @property string $created_by
 * @property string $updated_at
 * @property string $updated_by
 */
class ContentArticle extends \common\models\Dermaga {

    private $roleCat = ['PUB' => ['IN', 'PB', 'PBI', 'MACA']];
    public $articleEn;
    public $articleMy;
     public $articleCh;

    /**
     * @inheritdoc
     */
    public static function tableName() {
        return 'content_article';
    }

    public function behaviors() {
        return [
            'audittrail' => [
                'class' => AuditTrailBehavior::className(),
                // some of the optional configurations
                'ignoredAttributes' => ['created_at', 'updated_at'],
                'consoleUserId' => 1,
                'attributeOutput' => [
                    'desktop_id' => function ($value) {
                        $model = Desktop::findOne($value);
                        return sprintf('%s %s', $model->manufacturer, $model->device_name);
                    },
                    'last_checked' => 'datetime',
                ],
            ],
        ];
    }

    /**
     * @inheritdoc
     */
    public function rules() {
        return [
            [['content_article_title_my', 'content_article_category', 'content_article_content_my', 'content_article_status'], 'required'],
            [['content_article_content_my', 'content_article_content_en', 'content_article_url', 'content_article_date', 'content_article_location','content_article_location_en'], 'string'],
            [['content_article_status', 'content_article_check', 'content_article_gallery', 'content_article_video', 'content_article_sorting', 'content_article_hit_counter', 'featured', 'content_article_highlight'], 'integer'],
            [['created_at', 'updated_at', 'content_article_publish_date', 'content_article_end_date', 'content_article_file_my', 'content_article_file_en',
            'content_article_title_ch', 'content_article_content_ch', 'content_article_tag_ch', 'content_article_file_ch','content_article_location_ch'], 'safe'],
            [['content_article_title_my', 'content_article_title_en'], 'string', 'max' => 300],
            [['content_article_url'], 'string', 'max' => 500],
            [['content_article_portal_category', 'content_article_tag_my', 'content_article_tag_en'], 'string', 'max' => 10],
            [['content_article_category', 'content_article_subcategory'], 'string', 'max' => 100],
            [['created_by', 'updated_by'], 'string', 'max' => 50],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels() {
        return [
            'content_article_id' => Yii::t('app', 'Article ID'),
            'content_article_title_my' => Yii::t('app', 'Tajuk'),
            'content_article_title_en' => Yii::t('app', 'Tajuk (EN)'),
            'content_article_title_ch' => Yii::t('app', 'Tajuk (CH)'),
            'content_article_date' => Yii::t('app', 'Tarikh'),
            'content_article_location' => Yii::t('app', 'Lokasi'),
            'content_article_location_en' => Yii::t('app', 'Lokasi (EN)'),
            'content_article_location_ch' => Yii::t('app', 'Lokasi (CH)'),
            'content_article_category' => Yii::t('app', 'Kategori'),
            'content_article_subcategory' => Yii::t('app', 'Subkategori'),
            'content_article_content_my' => Yii::t('app', 'Kandungan'),
            'content_article_content_en' => Yii::t('app', 'Kandungan (EN)'),
            'content_article_content_ch' => Yii::t('app', 'Kandungan (CH)'),
            'content_article_url' => Yii::t('app', 'URL'),
            'content_article_file_my' => Yii::t('app', 'File'),
            'content_article_file_en' => Yii::t('app', 'File (EN)'),
            'content_article_file_ch' => Yii::t('app', 'File (CH)'),
            'content_article_sorting' => Yii::t('app', 'Susunan'),
            'content_article_hit_counter' => Yii::t('app', 'Bilangan klik'),
            'content_article_publish_date' => Yii::t('app', 'Tarikh Penerbitan'),
            'content_article_end_date' => Yii::t('app', 'tarikh Tamat'),
            'content_article_status' => Yii::t('app', 'Status'),
            'content_article_check' => Yii::t('app', 'Semakan'),
            'content_article_gallery' => Yii::t('app', 'Galeri'),
            'content_article_video' => Yii::t('app', 'Video'),
            'content_article_image' => Yii::t('app', 'Gambar Artikel'),
            'content_article_portal_category' => Yii::t('app', 'Pilihan Portal'),
            'content_article_tag_my' => Yii::t('app', 'Tag'),
            'content_article_tag_en' => Yii::t('app', 'Tag (EN)'),
            'content_article_tag_ch' => Yii::t('app', 'Tag (CH)'),
            'featured' => Yii::t('app', 'Paparan Utama'),
            'content_article_highlight' => Yii::t('app', 'Jenis Berita'),
            'created_at' => Yii::t('app', 'Created At'),
            'created_by' => Yii::t('app', 'Created By'),
            'updated_at' => Yii::t('app', 'Updated At'),
            'updated_by' => Yii::t('app', 'Updated By'),
        ];
    }

    public function retCategory() {

        $role = Yii::$app->user->identity->roles;

        $ref = \backend\models\Ref::find()->where(['Cat' => 'ATYPE'])->all();
        $refArr = [];
        $rolecat = $this->roleCat['PUB'];


        /* if ($role[0] != 'ADM1N') {
          foreach ($ref as $rkey => $rval) {
          if(in_array($rval->code,$rolecat)){
          $refArr[$rval->code] = $rval->descr;

          }
          }
          }else{ */
        array_walk($ref, function($v) use (&$refArr) {
            $refArr[$v->code] = $v->descr;
        });
        //}
        return $refArr;
    }

    public function retSubcategory($parent) {
        $ref = \backend\models\Ref::find()->where(['Cat' => 'STYPE', 'param1' => $parent])->all();
        $refArr = [];
        array_walk($ref, function($v) use (&$refArr) {
            $refArr[$v->code] = $v->descr;
        });

        return $refArr;
    }

    public function upload() {
        if ($this->validate()) {
            if ($this->validate()) {

                switch($this->content_article_category){
                    case 'NW':
                        $link = 'uploads/berita/';
                        break;
                    case 'KYMD':
                        $link = 'uploads/media/';
                        break;
                    case 'AKT':
                        $link = 'uploads/aktiviti/';
                        break;
                    default:
                        $link = 'uploads/';
                        break;
                }

                if (!empty($this->content_article_image)) {
                    $this->content_article_image->saveAs($link . $this->content_article_image->baseName . date('dmyhi') . '.' . $this->content_article_image->extension);
                    /* rewrite url path for uniquenes */
                    $this->content_article_image = $this->content_article_image->baseName . date('dmyhi') . '.' . $this->content_article_image->extension;
                }

                if (!empty($this->content_article_file_my)) {
                    $this->content_article_file_my->saveAs('uploads/media/pdf/' . $this->content_article_file_my->baseName . date('dmyhi') . '.' . $this->content_article_file_my->extension);
                    /* rewrite url path for uniquenes */
                    $this->content_article_file_my = $this->content_article_file_my->baseName . date('dmyhi') . '.' . $this->content_article_file_my->extension;
                }

                if (!empty($this->content_article_file_en)) {
                    $this->content_article_file_en->saveAs('uploads/media/pdf/' . $this->content_article_file_en->baseName . date('dmyhi') . '.' . $this->content_article_file_en->extension);
                    /* rewrite url path for uniquenes */
                    $this->content_article_file_en = $this->content_article_file_en->baseName . date('dmyhi') . '.' . $this->content_article_file_en->extension;
                }
                
                if (!empty($this->content_article_file_ch)) {
                    $this->content_article_file_ch->saveAs('uploads/media/pdf/' . $this->content_article_file_ch->baseName . date('dmyhi') . '.' . $this->content_article_file_ch->extension);
                    /* rewrite url path for uniquenes */
                    $this->content_article_file_ch = $this->content_article_file_ch->baseName . date('dmyhi') . '.' . $this->content_article_file_ch->extension;
                }

                return true;
            } else {
                return false;
            }
            return true;
        } else {
            return false;
        }
    }

    public function retCatFrmCode($code) {
        $ref = \backend\models\Ref::find()->where(['Cat' => 'ATYPE', 'code' => $code])->one();
        return $ref;
    }

    public function retSubcatFrmParent($code) {
        $ref = \backend\models\Ref::find()->where(['Cat' => 'STYPE', 'code' => $code])->one();
        return $ref;
    }

    public function retRolecat() {
        return $this->roleCat;
    }

}