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;