Your IP : 216.73.216.79


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

<?php

namespace backend\models;

use Yii;
use yii\behaviors\TimestampBehavior;
use yii\behaviors\BlameableBehavior;
use yii\db\Expression;
use yii\db\ActiveRecord;
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']];

    /**
     * @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'], 'string'],
            [['content_article_status', 'content_article_gallery', 'content_article_video', 'content_article_sorting', 'content_article_hit_counter', 'featured'], 'integer'],
            [['created_at', 'updated_at', 'content_article_publish_date', 'content_article_end_date', 'content_author', 'content_publisher', 'content_volume', 'content_source', 'content_summary', 'content_attachment','content_article_image'], 'safe'],
            [['content_article_title_my', 'content_article_title_en'], 'string', 'max' => 300],
            [['content_article_url'], 'string', 'max' => 500],
            [['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', 'ID'),
            'content_article_title_my' => Yii::t('app', 'Title'),
            'content_article_title_en' => Yii::t('app', 'Title'),
            'content_article_date' => Yii::t('app', 'Date'),
            'content_article_location' => Yii::t('app', 'Location'),
            'content_article_category' => Yii::t('app', 'Category'),
            'content_article_subcategory' => Yii::t('app', 'Subcategory'),
            'content_article_content_my' => Yii::t('app', 'Content'),
            'content_article_content_en' => Yii::t('app', 'Content (EN'),
            'content_article_url' => Yii::t('app', 'Social Media Links'),
            'content_article_sorting' => Yii::t('app', 'Sort'),
            'content_article_hit_counter' => Yii::t('app', 'Hit Count'),
            'content_article_publish_date' => Yii::t('app', 'Date Publish'),
            'content_article_end_date' => Yii::t('app', 'Date End'),
            'content_article_status' => Yii::t('app', 'Status'),
            'content_article_gallery' => Yii::t('app', 'Gallery'),
            'content_article_video' => Yii::t('app', 'Video'),
            'content_article_image' => Yii::t('app', 'Photo Article'),
            'featured' => Yii::t('app', 'Featured'),
            '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'),
            'content_author' => Yii::t('app', 'Author'),
            'content_publisher' => Yii::t('app', 'Publisher'),
            'content_volume' => Yii::t('app', 'No. Volume'),
            'content_source' => Yii::t('app', 'Source'),
            'content_summary' => Yii::t('app', 'Summary'),
            'content_attachment' => Yii::t('app', 'Attachment'),
        ];
    }

    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()) {

                if ($this->content_article_image != NULL) {
                    $this->content_article_image->saveAs('uploads/' . $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;
                }
                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;
    }

}