00001 <?php
00002
00016 import('classes.publicationFormat.PublicationDate');
00017
00018 class PublicationDateDAO extends DAO {
00022 function PublicationDateDAO() {
00023 parent::DAO();
00024 }
00025
00032 function &getById($publicationDateId, $monographId = null){
00033 $sqlParams = array((int) $publicationDateId);
00034 if ($monographId) {
00035 $sqlParams[] = (int) $monographId;
00036 }
00037
00038 $result =& $this->retrieve(
00039 'SELECT p.*
00040 FROM publication_dates p
00041 JOIN publication_formats pf ON (p.publication_format_id = pf.publication_format_id)
00042 WHERE p.publication_date_id = ?
00043 ' . ($monographId?' AND pf.monograph_id = ?':''),
00044 $sqlParams
00045 );
00046
00047 $returner = null;
00048 if ($result->RecordCount() != 0) {
00049 $returner =& $this->_fromRow($result->GetRowAssoc(false));
00050 }
00051 $result->Close();
00052 return $returner;
00053 }
00054
00060 function &getByPublicationFormatId($publicationFormatId) {
00061 $result =& $this->retrieveRange(
00062 'SELECT * FROM publication_dates WHERE publication_format_id = ?',
00063 (int) $publicationFormatId
00064 );
00065
00066 $returner = new DAOResultFactory($result, $this, '_fromRow');
00067 return $returner;
00068 }
00069
00074 function newDataObject() {
00075 return new PublicationDate();
00076 }
00077
00084 function &_fromRow(&$row, $callHooks = true) {
00085 $publicationDate = $this->newDataObject();
00086 $publicationDate->setId($row['publication_date_id']);
00087 $publicationDate->setRole($row['role']);
00088 $publicationDate->setDateFormat($row['date_format']);
00089 $publicationDate->setDate($row['date']);
00090 $publicationDate->setPublicationFormatId($row['publication_format_id']);
00091
00092 if ($callHooks) HookRegistry::call('PublicationDateDAO::_fromRow', array(&$publicationDate, &$row));
00093
00094 return $publicationDate;
00095 }
00096
00101 function insertObject(&$publicationDate) {
00102 $this->update(
00103 'INSERT INTO publication_dates
00104 (publication_format_id, role, date_format, date)
00105 VALUES
00106 (?, ?, ?, ?)',
00107 array(
00108 (int) $publicationDate->getPublicationFormatId(),
00109 $publicationDate->getRole(),
00110 $publicationDate->getDateFormat(),
00111 $publicationDate->getDate()
00112 )
00113 );
00114
00115 $publicationDate->setId($this->getInsertPublicationDateId());
00116 return $publicationDate->getId();
00117 }
00118
00123 function updateObject(&$publicationDate) {
00124 $this->update(
00125 'UPDATE publication_dates
00126 SET role = ?, date_format =?, date = ?
00127 WHERE publication_date_id = ?',
00128 array(
00129 $publicationDate->getRole(),
00130 $publicationDate->getDateFormat(),
00131 $publicationDate->getDate(),
00132 (int) $publicationDate->getId()
00133 )
00134 );
00135 }
00136
00141 function deleteObject($publicationDate) {
00142 return $this->deleteById($publicationDate->getId());
00143 }
00144
00149 function deleteById($entryId) {
00150 return $this->update(
00151 'DELETE FROM publication_dates WHERE publication_date_id = ?', array((int) $entryId)
00152 );
00153 }
00154
00159 function getInsertPublicationDateId() {
00160 return $this->getInsertId('publication_dates', 'publication_date_id');
00161 }
00162 }
00163
00164 ?>