- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
public function getEventList($dataWhere = '', $dataOrder = '', $limit = 10, $offset = 10, $archive = false, $leftJoin = false)
{
global $dbh;
$inequality = $archive ? ' < ' : ' >= ';
$eventPopularityElement = ginst('EventPopularity');
$eventPopularityElement->init();
$availableTicketsCounterElement = ginst('EventAvailableTicketsCounter');
$availableTicketsCounterElement->init();
$events['events'] = $dbh->getAssoc("
SELECT SQL_CALC_FOUND_ROWS
`ce`.`event_id` AS `cid`, `ce`.`event_id`, `ce`.`poster_ext`,
`ce`.`poster1_ext`, `cef`.`slider_ext`,
IFNULL(`tec2`.`title`, `tec1`.`title`) AS event_title,
`te`.`alias`, `te`.`url`,
`ter`.`meta_name` AS rubric_meta_name,
`ce`.`id`, `te`.`date_event`, `te`.date_event_end,
`te`.`venue_id`, `tv`.`alias` AS `venue_alias`,
IFNULL(`vc2`.`title`, `vc1`.`title`) AS `venue_title`,
IFNULL(`vc2`.`address`, `vc1`.`address`) AS `address`,
IFNULL(`cc2`.`name`, `cc1`.`name`) AS `city_name`,
IFNULL(`cc2`.`name2`, `cc1`.`name2`) AS `name2`,
`c`.`alias` AS `city_alias`,
IFNULL(`country_content2`.`name`, `country_content1`.`name`) AS `country_name`,
IFNULL(`cep`.`rating`, 0) AS `rating`,
IFNULL(`catc`.`tickets_count`, 0) AS `tickets_count`
FROM `c_event` AS `ce`
LEFT JOIN `c_event_feutured` AS `cef` ON `cef`.`event_id` = `ce`.`id`
INNER JOIN `t_event` AS `te` ON `te`.`id` = `ce`.`event_id`
LEFT JOIN `t_event_content` AS `tec1`
ON (`tec1`.`id`, `tec1`.`language_id`) = ROW(`te`.`id`, 1)
LEFT JOIN `t_event_content` AS `tec2`
ON (`tec2`.`id`, `tec2`.`language_id`) = ROW(`te`.`id`, ?)
LEFT JOIN `t_venue` AS `tv` ON `tv`.`id` = `te`.`venue_id`
LEFT JOIN `t_venue_content` AS `vc1` ON (`vc1`.`id`, `vc1`.`language_id`) = ROW(`tv`.`id`, 1)
LEFT JOIN `t_venue_content` AS `vc2` ON (`vc2`.`id`, `vc2`.`language_id`) = ROW(`tv`.`id`, ?)
LEFT JOIN `t_city` AS `c` ON `c`.`id` = `tv`.`city_id`
LEFT JOIN `t_city_content` AS `cc1` ON (`cc1`.`id`, `cc1`.`language_id`) = ROW(`c`.`id`, 1)
LEFT JOIN `t_city_content` AS `cc2` ON (`cc2`.`id`, `cc2`.`language_id`) = ROW(`c`.`id`, ?)
LEFT JOIN `t_country_content` AS `country_content1` ON (`country_content1`.`id`, `country_content1`.`language_id`) = ROW(`tv`.`country_id`, 1)
LEFT JOIN `t_country_content` AS `country_content2` ON (`country_content2`.`id`, `country_content2`.`language_id`) = ROW(`tv`.`country_id`, ?)
LEFT JOIN `t_rubric_events` AS `tre` ON `tre`.`event_id` = `te`.`id`
LEFT JOIN `t_event_rubric` AS `ter` ON `ter`.`id` = `tre`.`rubric_id`
LEFT JOIN `".$eventPopularityElement->tableName."` AS `cep` ON `cep`.`c_event_id` = `ce`.`id`
LEFT JOIN `".$availableTicketsCounterElement->tableName."` AS `catc` ON `catc`.`c_event_id` = `ce`.`id`
{$leftJoin}
WHERE `te`.`date_event_end` {$inequality} NOW()
AND `te`.`active` = 1 AND `te`.`is_main` = 1
{$dataWhere}
GROUP BY ce.event_id
{$dataOrder}
LIMIT {$limit}, {$offset}
", false, array($GLOBALS['lng']['id'], $GLOBALS['lng']['id'], $GLOBALS['lng']['id'], $GLOBALS['lng']['id']));
$events['count'] = $dbh->getOne("SELECT FOUND_ROWS()");
$ticketPrices = ginst('TicketType')->getMinMaxPrices(array_keys($events['events']));
$rubrics = ginst('Rubric')->getEventsRubric(array_keys($events['events']));
foreach ($events['events'] as $eventId => $event) {
$events['events'][$eventId] =
(array)$events['events'][$eventId] +
(array)$rubrics[$eventId] +
(array)$ticketPrices[$eventId];
if (file_exists(DOC_ROOT . 'dynamic/event/thumb_' . sprintf("%06d", $event['id']) . '_original.' . $event['poster_ext'])) {
$events['events'][$eventId]['thumb_name'] = '/dynamic/event/thumb_' . sprintf("%06d", $event['id']) . '_original.' . $event['poster_ext'];
} else {
$events['events'][$eventId]['thumb_name'] = '/static/img/no-thumbnail.jpg';
}
}
return $events;
}
Вот что бывает, когда решаешь, что проект вполне обойдется без ОРМки.