getObjectFromSql('select * from announcements where id = ? LIMIT 1', [$id]); } return $cache[$key]; } /** * Get the most recent x Announcements * * @param int $limit (default 1) * @return Announcement */ public function getObjectListByLatestDate($limit = 1) { if (!isInt($limit)) { return [new Announcement(0)]; } $announcements = $this->getObjectListFromSql('select * from announcements where start_date < NOW() and (end_date is null OR end_date > NOW()) order by id desc limit ' . $limit, []); return count($announcements) > 0 ? $announcements : [new Announcement(0)]; } /** * Returns an object based on the provided sql * * @param string $sql * @param array $arg * @return StandardItem */ public function getObjectFromSql($sql, $arg) { $pdo = PDOMysqlConnection::getInstance(); $stmt = $pdo->prepareAndExec($sql, $arg); if ($record = $stmt->fetch(PDO::FETCH_ASSOC)) { return $this->_getObjectFromRecord($record); } // No object found, return empty object return new Announcement(0); } /** * Returns an array of object based on the provided sql * * @param string $sql * @param array $arg * @return array */ public function getObjectListFromSql($sql, $arg, $index = null) { $pdo = PDOMysqlConnection::getInstance(); $stmt = $pdo->prepareAndExec($sql, $arg); $records = $stmt->fetchAll(PDO::FETCH_ASSOC); if (is_array($records) && !empty($records)) { return $this->_getObjectListFromRecords($records, $index); } // No object found, return empty array return []; } }