/** * @param int $limit * @return self[] */ public static function getForExport($limit = 3) { $db = MySQL::getInstance(); $eventsArray = null; $query = "SELECT an.*, u.`email`, uf.`value` AS `nickname`, aloc.`locationData`,\n\t\t\t\tIF(`fromEventDate`='0000-00-00', `eventDate`, `fromEventDate`) AS `sortDate`,\n\t\t\t\tDATE_FORMAT( CURRENT_TIMESTAMP, '%Y-%m-%d 00:00:00' ) as `curStamp`\n \t\tFROM `announcements` an\n \t\t\tLEFT JOIN `users` AS `u` ON u.`id`=an.`user`\n \t\t\tLEFT JOIN `users_fields` AS `uf` ON uf.`id`=an.`user` AND uf.`name`='nickname'\n \t\t\tLEFT JOIN `anouncements_locations` AS `aloc` ON an.`location`=aloc.`id`\n \t\tWHERE an.`exported`=0 AND an.`visible`=1 AND an.`beginDate`<=NOW()\n \t\tORDER BY eventDate>=curStamp DESC,\n \t\t\tIF(eventDate>=curStamp,sortDate,''), sortDate DESC, priority DESC LIMIT " . intval($limit); $res = $db->fetch($query); if (!empty($res)) { // массивчик id'шников $idArray = []; foreach ($res as $k => $data) { $idArray[] = $data['id']; } $addData = Additionals::getByIdArray($idArray); foreach ($res as $k => $data) { $Event = new self(); if (!empty($addData) && isset($addData[$data['id']]) && !empty($addData[$data['id']])) { foreach ($addData[$data['id']] as $tmpaddData) { $data['additionalData'][] = $tmpaddData; } } if (isset($data['locationData']) && $data['locationData'] != '') { $data['locationData'] = unserialize($data['locationData']); } $Event->setObject($data); $eventsArray[$data['id']] = $Event; } } return $eventsArray; }