| Current Path : /var/www/html/dosm/backend/controllers/ |
| Current File : /var/www/html/dosm/backend/controllers/ContentPublicationController.php |
<?php
namespace backend\controllers;
use Yii;
use backend\models\PublicationDocument;
use backend\models\PublicationDocumentTranslation;
use backend\models\PublicationDocumentSearch;
use backend\models\PublicationVersion;
use backend\models\PublicationVersionSearch;
use backend\models\PublicationChapter;
use backend\models\PublicationChapterSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\web\UploadedFile;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\filters\AccessControl;
class ContentPublicationController extends Controller {
/**
* {@inheritdoc}
*/
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
];
}
/**
* Lists all PublicationDocument models.
* @return mixed
*/
public function actionIndex() {
$searchModel = new PublicationDocumentSearch();
// $searchModel->document_category = 'annual_report';
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
public function actionView($id) {
return $this->render('view', [
'model' => $this->findModel($id),
]);
}
public function actionCreate() {
$model = new PublicationDocument();
$model->created_at = date("Y-m-d H:i:s");
$model->created_by = Yii::$app->user->identity->id;
$model->updated_at = date("Y-m-d H:i:s");
$model->updated_by = Yii::$app->user->identity->id;
$model->document_language = 'English';
$model->document_code = (new \yii\db\Query)->select(new \yii\db\Expression('UUID()'))->scalar();
if ($model->load(Yii::$app->request->post())) {
$model->document_image = UploadedFile::getInstance($model, 'document_image');
if (!empty($model->document_image)) {
$document_image = 'uploads/publications/img_' . date("YmdHis") . '.' . $model->document_image->extension;
if ($model->document_image->saveAs('../' . $document_image))
$model->document_image = $document_image;
}
if (!empty($model->document_portal))
$model->document_portal = json_encode($model->document_portal);
if ($model->save()) {
$modeltranslation = new PublicationDocumentTranslation();
$modeltranslation->document_translation_parent_id = $model->document_id;
$modeltranslation->document_translation_title = $model->document_title;
$modeltranslation->document_translation_language = $model->document_language;
$modeltranslation->document_translation_main = 1;
$modeltranslation->created_at = date("Y-m-d H:i:s");
$modeltranslation->created_by = Yii::$app->user->identity->id;
$modeltranslation->updated_at = date("Y-m-d H:i:s");
$modeltranslation->updated_by = Yii::$app->user->identity->id;
$modeltranslation->save();
return $this->redirect(['index']);
}
}
return $this->render('create', [
'model' => $model,
]);
}
public function actionUpdate($id) {
$model = $this->findModel($id);
$original_meta_img = $model->meta_img;
$model->updated_at = date("Y-m-d H:i:s");
$model->updated_by = Yii::$app->user->identity->id;
$original_thumbnail = $model->document_image;
if (!empty($model->document_portal))
$model->document_portal = json_decode($model->document_portal);
$translation_id = '';
if (($modeltranslation = PublicationDocumentTranslation::findOne(['document_translation_parent_id' => $model->document_id, 'document_translation_main' => 1])) !== null) {
$translation_id = $modeltranslation->document_translation_id;
$model->document_title = $modeltranslation->document_translation_title;
$model->document_language = $modeltranslation->document_translation_language;
}
if ($model->load(Yii::$app->request->post())) {
$model->document_image = UploadedFile::getInstance($model, 'document_image');
if (!empty($model->document_image)) {
$document_image = 'uploads/publications/img_' . date("YmdHis") . '.' . $model->document_image->extension;
if ($model->document_image->saveAs('../' . $document_image))
$model->document_image = $document_image;
} else
$model->document_image = $original_thumbnail;
if (!empty($model->document_portal))
$model->document_portal = json_encode($model->document_portal);
if ($model->save()) {
if (($modeltranslation = PublicationDocumentTranslation::findOne($translation_id)) !== null) {
$modeltranslation->document_translation_title = $model->document_title;
$modeltranslation->document_translation_language = $model->document_language;
$modeltranslation->updated_at = date("Y-m-d H:i:s");
$modeltranslation->updated_by = Yii::$app->user->identity->id;
$modeltranslation->save();
}
//insert new translation
if (isset($_POST['newtranslation']) && !empty($_POST['newtranslation'])) {
foreach ($_POST['newtranslation'] as $newno) {
$modeltranslationnew = new PublicationDocumentTranslation();
$modeltranslationnew->document_translation_parent_id = $model->document_id;
$modeltranslationnew->document_translation_title = $_POST['new_title_' . $newno];
$modeltranslationnew->document_translation_language = $_POST['new_language_' . $newno];
$modeltranslationnew->document_translation_main = 0;
$modeltranslationnew->created_at = date("Y-m-d H:i:s");
$modeltranslationnew->created_by = Yii::$app->user->identity->id;
$modeltranslationnew->updated_at = date("Y-m-d H:i:s");
$modeltranslationnew->updated_by = Yii::$app->user->identity->id;
$modeltranslationnew->save();
}
}
//update translation
if (isset($_POST['oldtranslation']) && !empty($_POST['oldtranslation'])) {
foreach ($_POST['oldtranslation'] as $oldtranslation) {
if (($modeltranslationupdate = PublicationDocumentTranslation::findOne($oldtranslation)) !== null) {
$modeltranslationupdate->document_translation_title = $_POST['old_title_' . $oldtranslation];
$modeltranslationupdate->document_translation_language = $_POST['old_language_' . $oldtranslation];
$modeltranslationupdate->updated_at = date("Y-m-d H:i:s");
$modeltranslationupdate->updated_by = Yii::$app->user->identity->id;
$modeltranslationupdate->save();
}
}
}
return $this->redirect(['index']);
}
}
return $this->render('update', ['model' => $model,]);
}
public function actionAddtranslation($id) {
$modeltranslation = new PublicationDocumentTranslation();
$modeltranslation->document_translation_parent_id = $id;
$modeltranslation->document_translation_main = 0;
$modeltranslation->created_at = date("Y-m-d H:i:s");
$modeltranslation->created_by = Yii::$app->user->identity->id;
$modeltranslation->updated_at = date("Y-m-d H:i:s");
$modeltranslation->updated_by = Yii::$app->user->identity->id;
if ($modeltranslation->save(false))
return $this->redirect(['update', 'id' => $id]);
}
public function actionDeletetranslation($id) {
if (($model = PublicationDocumentTranslation::findOne($id)) !== null) {
$model->delete();
}
}
public function actionSetmain($id) {
//set all document_main = 0
PublicationDocument::updateAll(['document_main' => 0]);
//set selected id document_main = 1
if (($model = PublicationDocument::findOne($id)) !== null) {
$model->document_main = 1;
$model->save(false);
}
return $this->redirect(['index']);
}
public function actionSorting($data = '') {
$count = 0;
$data_arr = explode(',', $data);
if (!empty($data_arr)) {
foreach ($data_arr as $slider_id) {
$model = PublicationDocument::findOne($slider_id);
if (!empty($model)) {
$count++;
$model->document_sorting = $count;
$model->save(false);
}
}
}
return $data;
}
protected function findModel($id) {
if (($model = PublicationDocument::findOne($id)) !== null) {
return $model;
}
throw new NotFoundHttpException(M::t('app', 'PageNotExist'));
}
public function actionVersion_index($document_id = '') {
$searchModel = new PublicationVersionSearch();
$searchModel->document_id = $document_id;
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('version_index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'document_id' => $document_id,
]);
}
public function actionCreate_version($document_id = '') {
$model = new PublicationVersion();
$model->created_at = date("Y-m-d H:i:s");
$model->created_by = Yii::$app->user->identity->id;
$model->updated_at = date("Y-m-d H:i:s");
$model->updated_by = Yii::$app->user->identity->id;
$model->approval_status = 'appStatus02';
$model->document_id = $document_id;
if ($model->load(Yii::$app->request->post())) {
$model->version_img = UploadedFile::getInstance($model, 'version_img');
if (!empty($model->version_img)) {
$version_img = 'uploads/publications/version_' . date("YmdHis") . '.' . $model->version_img->extension;
if ($model->version_img->saveAs('../' . $version_img))
$model->version_img = $version_img;
}
if ($model->save()) {
return $this->redirect(['version_index', 'document_id' => $document_id]);
}
}
return $this->render('create_version', [
'model' => $model,
'document_id' => $document_id,
]);
}
public function actionUpdate_version($id, $document_id = '') {
$model = PublicationVersion::findOne($id);
$model->updated_at = date("Y-m-d H:i:s");
$model->updated_by = Yii::$app->user->identity->id;
$model->document_id = $document_id;
if ($model->load(Yii::$app->request->post())) {
if ($model->save()) {
return $this->redirect(['version_index', 'document_id' => $document_id]);
}
}
return $this->render('update_version', [
'model' => $model,
]);
}
public function actionDelete($id) {
$model = PublicationVersion::findOne($id);
$document_id = $model->document_id;
$model->delete();
return $this->redirect(['version_index', 'document_id' => $document_id]);
}
public function actionChapter_index($version_id = '') {
$searchModel = new PublicationChapterSearch();
$searchModel->version_id = $version_id;
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('chapter_index', [
'document_id' => $version_id,
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
public function actionCreate_chapter($version_id) {
$model = new PublicationChapter();
$model->version_id = $version_id;
$model->created_at = date("Y-m-d H:i:s");
$model->created_by = Yii::$app->user->identity->id;
$model->updated_at = date("Y-m-d H:i:s");
$model->updated_by = Yii::$app->user->identity->id;
if ($model->load(Yii::$app->request->post())) {
$model->chapter_ebook1 = UploadedFile::getInstance($model, 'chapter_ebook1');
if (!empty($model->chapter_ebook1)) {
$chapter_ebook1 = 'uploads/publications/' . date("YmdHis") . '.' . $model->chapter_ebook1->extension;
if ($model->chapter_ebook1->saveAs('../' . $chapter_ebook1))
$model->chapter_ebook1 = $chapter_ebook1;
}
$model->chapter_ebook2 = UploadedFile::getInstance($model, 'chapter_ebook2');
if (!empty($model->chapter_ebook2)) {
$chapter_ebook2 = 'uploads/publications/' . date("YmdHis") . '.' . $model->chapter_ebook2->extension;
if ($model->chapter_ebook2->saveAs('../' . $chapter_ebook2))
$model->chapter_ebook2 = $chapter_ebook2;
}
if ($model->save())
return $this->redirect(['chapter_index', 'version_id' => $version_id]);
}
return $this->render('create_chapter', ['model' => $model]);
}
public function actionUpdate_chapter($chapter_id) {
$model = PublicationChapter::findOne($chapter_id);
;
$original_chapter_ebook1 = $model->chapter_ebook1;
$original_chapter_ebook2 = $model->chapter_ebook2;
$model->updated_at = date("Y-m-d H:i:s");
$model->updated_by = Yii::$app->user->identity->id;
if ($model->load(Yii::$app->request->post())) {
$model->chapter_ebook1 = UploadedFile::getInstance($model, 'chapter_ebook1');
if (!empty($model->chapter_ebook1)) {
$chapter_ebook1 = 'uploads/publications/' . date("YmdHis") . '.' . $model->chapter_ebook1->extension;
if ($model->chapter_ebook1->saveAs('../' . $chapter_ebook1))
$model->chapter_ebook1 = $chapter_ebook1;
} else {
$model->chapter_ebook1 = $original_chapter_ebook1;
}
$model->chapter_ebook2 = UploadedFile::getInstance($model, 'chapter_ebook2');
if (!empty($model->chapter_ebook2)) {
$chapter_ebook2 = 'uploads/publications/' . date("YmdHis") . '.' . $model->chapter_ebook2->extension;
if ($model->chapter_ebook2->saveAs('../' . $chapter_ebook2))
$model->chapter_ebook2 = $chapter_ebook2;
} else {
$model->chapter_ebook2 = $original_chapter_ebook2;
}
if ($model->save())
return $this->redirect(['chapter_index', 'version_id' => $model->version_id]);
}
return $this->render('update_chapter', ['model' => $model,]);
}
public function actionDelete_chapter($chapter_id) {
$model = PublicationChapter::find()->where(['chapter_id' => $chapter_id])->one();
$model->delete();
return $this->redirect(['chapter_index', 'version_id' => $model->version_id]);
}
public function actionDelete_index($id) {
if (($model = PublicationDocument::findOne($id)) !== null) {
$model->delete();
return $this->redirect(['index']);
}
}
}