• Main Page
  • Modules
  • Classes
  • Files
  • File List

classes/publicationFormat/PublicationDateDAO.inc.php

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 ?>

Generated on Mon Sep 17 2012 13:58:55 for Open Monograph Press by  doxygen 1.7.1