public function read() { global $ilDB; $this->news = array(); $types = array(); $data = array(); $query = 'SELECT * FROM payment_news WHERE 1 = 1 '; if ($this->isPublicSection()) { $query .= "AND visibility = %s "; $types[] = 'text'; $data[] = 'public'; } if ($this->getArchiveDate() !== null && $this->getArchiveDate() > 0) { switch ($this->getMode()) { case self::TYPE_NEWS: $query .= "AND creation_date >= %s "; $types[] = 'timestamp'; $data[] = date('Y-m-d H:i:s', $this->getArchiveDate()); break; case self::TYPE_ARCHIVE: $query .= "AND creation_date < %s "; $types[] = 'timestamp'; $data[] = date('Y-m-d H:i:s', $this->getArchiveDate()); break; } } $query .= 'ORDER BY update_date DESC '; $result = $ilDB->queryF($query, $types, $data); while ($record = $ilDB->fetchAssoc($result)) { $oNewsItem = new ilShopNewsItem(); $oNewsItem->setId($record['news_id']); $oNewsItem->setCreationDate($record['creation_date']); $oNewsItem->setUpdateDate($record['update_date']); $oNewsItem->setTitle($record['news_title']); $oNewsItem->setContent($record['news_content']); $oNewsItem->setVisibility($record['visibility']); $oNewsItem->setUserId($record['user_id']); $this->news[] = $oNewsItem; } return $this; }