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

89 lines
3.9 KiB
PHP

<?php
use app\models\Articles;
use app\services\Formatter;
use app\services\ViewReg;
$data = [];
if (!empty($_GET['id'])) {
$lg = \Yii::$app->language;
$condition = [];
//$condition['is_active'] = 1;
$condition['id'] = $_GET['id'];
$articles = Articles::find()->where($condition);
$article = $articles->one();
$favorite = false;
$user = \app\services\Auth::getUserByToken();
if ($user) {
$favoriteExists = \app\models\UserFavorites::find()->where(['user_id' => $user->id, 'table' => 'articles', 'fid' => $_GET['id']])->exists();
if ($favoriteExists)
$favorite = true;
}
if ($article && $article->article) {
$model = new \stdClass();
$model->title = $lg == 'en' ? $article->title_en ?? $article->title : $article->title;
$model->text = strip_tags($article->article->text());
$model->type = 'articles';
$model->images = $article->article->images('16:11');
$model->img = $article->article->image('16:11') ?? \Yii::$app->params['portal'] . '/_public/images/empty-169.png';
$model->isFavorite = $favorite;
if ($article->art_table == 'campaigns') {
$model->date = $article->campaigns->getFormattedDates();
$model->location = $lg == 'en' ? $article->campaigns->ts_en_location : $article->campaigns->location;
}
if ($article->art_table == 'events') {
$model->date = $article->events->getFormattedDates();
$model->dates = explode(',', $article->events->event_dates);
if ($article->events->type == 'booking') {
$model->bookingAvailable = $article->events->isBookingAvailable();
$model->event_id = $article->events->id;
$slug = Formatter::cyrillicTrans($article->article->title());
$model->booking_url = Yii::$app->params['portal'] . '/' . $lg . '/sabitia/' . Formatter::encodeId($article->id) . "-$slug/?booking=true&webview_mode=true";
if (!empty($_GET['tickets'])) {
$tickets = \app\models\OrderBooking::find()->where(['event_id' => $article->events->id])->all();
$ticketGroups = [];
$all_tickets_count = 0;
$all_validated = 0;
foreach ($tickets as $ticketGroup) {
if(empty($ticketGroups[$ticketGroup->ticket_id])) {
$ticketGroups[$ticketGroup->ticket_id] = [
'count' => $ticketGroup->tickets_count,
'name' => $lg == 'en' ? $ticketGroup->name_en : $ticketGroup->name_bg,
'validated_count' => $ticketGroup->validated_count
];
} else {
$ticketGroups[$ticketGroup->ticket_id]['count'] += $ticketGroup->tickets_count;
$ticketGroups[$ticketGroup->ticket_id]['validated_count'] += $ticketGroup->validated_count;
}
}
foreach ($ticketGroups as $group) {
$all_tickets_count += $group['count'];
$all_validated += $group['validated_count'];
}
$model->tickets = array_values($ticketGroups);
$model->total_tickets = $all_tickets_count;
$model->total_validated = $all_validated;
}
}
$model->location = $lg == 'en' ? $article->events->ts_en_location : $article->events->location;
}
if ($article->art_table == 'news') {
$model->date = date('d.m.Y', strtotime($article->publish_date));
}
$model->id = $article->id;
$data[] = $model;
}
}
header('Content-type: application/json');
echo json_encode(['data' => $data]);
exit;