function importAnnouncements() { assert($this->xml->name == 'announcements'); $journal = $this->journal; $announcementTypeDAO =& DAORegistry::getDAO('AnnouncementTypeDAO'); $announcementDAO =& DAORegistry::getDAO('AnnouncementDAO'); $this->nextElement(); while ($this->xml->name == 'announcementType') { $announcementTypeXML = $this->getCurrentElementAsDom(); $announcementType = new AnnouncementType(); $announcementType->setAssocType(ASSOC_TYPE_JOURNAL); $announcementType->setAssocId($this->journal->getId()); $announcementTypeDAO->insertAnnouncementType($announcementType); $this->restoreDataObjectSettings($announcementTypeDAO, $announcementTypeXML->settings, 'announcement_type_settings', 'type_id', $announcementType->getId()); foreach ($announcementTypeXML->announcement as $announcementXML) { $announcement = new Announcement(); $announcement->setAssocType(ASSOC_TYPE_JOURNAL); $announcement->setAssocId($this->journal->getId()); $announcement->setTypeId($announcementType->getId()); $announcement->setDateExpire((string) $announcementXML->dateExpire); $announcement->setDatePosted((string) $announcementXML->datePosted); $announcementDAO->insertAnnouncement($announcement); $this->restoreDataObjectSettings($announcementDAO, $announcementXML->settings, 'announcement_settings', 'announcement_id', $announcement->getId()); } $this->nextElement(); } }
/** * Internal function to return an AnnouncementType object from a row. * @param $row array * @return AnnouncementType */ function &_returnAnnouncementTypeFromRow(&$row) { $announcementType = new AnnouncementType(); $announcementType->setId($row['type_id']); $announcementType->setAssocType($row['assoc_type']); $announcementType->setAssocId($row['assoc_id']); $this->getDataObjectSettings('announcement_type_settings', 'type_id', $row['type_id'], $announcementType); return $announcementType; }