コード例 #1
0
ファイル: announcement.php プロジェクト: difra-org/difra
 /**
  * @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;
 }