Files
Admin Nasledstvo ac168868ee Initial import
2026-05-01 20:52:04 +03:00

109 lines
4.5 KiB
PHP

<?php
use app\models\Expositions;
use app\models\register\Collections;
use app\models\RegisterObjects;
use app\models\UserFavorites;
use app\models\Articles;
header('Content-type: application/json');
$user = \app\services\Auth::getUserByToken();
if($user) {
$lg = Yii::$app->language;
$per_page = 10;
if (!empty($_GET['type'])) {
$page = $_GET['page'] ?? 1;
$fav = UserFavorites::find()->where(['user_id' => $user->id, 'table' => $_GET['type']])->all();
$ids = [];
foreach ($fav as $f)
$ids[] = $f->fid;
switch ($_GET['type']):
case 'collections':
$data = [];
$models = Collections::find()->where(['IN', 'id', $ids]);
$count = $models->count();
$models = $models->offset($per_page * $page - $per_page)->limit($per_page);
foreach ($models->all() as $dbModel) {
$model = new \stdClass();
$model->title = $lg == 'en' ? $dbModel->name_en ?? $dbModel->name : $dbModel->name;
$model->type = 'collections';
$model->path = '/tabs/search/collection';
$model->img = $dbModel->getImg(\Yii::$app->params['portal'] . '/_public/images/empty-169.png');
$model->id = $dbModel->id;
$data[] = $model;
}
echo json_encode(['data' => $data, 'lastPage' => ceil($count / $per_page), 'count' => $count]);
exit;
case 'expositions':
$data = [];
$models = Expositions::find()->where(['IN', 'id', $ids]);
$count = $models->count();
$models = $models->offset($per_page * $page - $per_page)->limit($per_page);
foreach ($models->all() as $dbModel) {
$model = new \stdClass();
$model->title = $lg == 'en' ? $dbModel->ts_en_name ?? $dbModel->name : $dbModel->name;
$model->type = 'expositions';
$model->path = '/tabs/search/exposition';
$model->img = $dbModel->getImg();
$model->id = $dbModel->id;
$data[] = $model;
}
echo json_encode(['data' => $data, 'lastPage' => ceil($count / $per_page), 'count' => $count]);
exit;
case 'register_objects':
$data = [];
$models = RegisterObjects::find()->where(['lib_type' => 1])->andWhere(['IN', 'id', $ids]);
$count = $models->count();
$models = $models->offset($per_page * $page - $per_page)->limit($per_page);
foreach ($models->all() as $dbModel) {
$model = new \stdClass();
$model->title = $lg == 'en' ? $dbModel->ts_en_name ?? $dbModel->name : $dbModel->name;
$model->type = 'register_objects';
$model->path = '/tabs/search/object';
$model->img = $dbModel->getImg(\Yii::$app->params['portal'] . '/_public/images/empty-169.png');
$model->id = $dbModel->id;
$data[] = $model;
}
echo json_encode(['data' => $data, 'lastPage' => ceil($count / $per_page), 'count' => $count]);
exit;
case 'articles':
$data = [];
$models = Articles::find()->andWhere(['IN', 'id', $ids]);
$count = $models->count();
$models = $models->offset($per_page * $page - $per_page)->limit($per_page);
foreach ($models->all() as $dbModel) {
$model = new \stdClass();
$model->title = $lg == 'en' ? $dbModel->title_en ?? $dbModel->title : $dbModel->title;
$model->type = $dbModel->art_table;
$model->path = '/tabs/articles/' . $dbModel->art_table;
$model->img = ($dbModel->getArticle()->image('16:11') ? $dbModel->getArticle()->image('16:11') : \Yii::$app->params['portal'] . '/_public/images/empty-169.png');
$model->id = $dbModel->id;
$data[] = $model;
}
echo json_encode(['data' => $data, 'lastPage' => ceil($count / $per_page), 'count' => $count]);
exit;
endswitch;
}
}
echo json_encode(['error' => 1, 'message' => 'Permission denied']);
exit;
/* @var $this \yii\web\View */