| Current Path : /var/www/html/sprm/backend/models/ |
| 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;
}
}