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