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

classes/press/SeriesEditorsDAO.inc.php

00001 <?php
00002 
00016 class SeriesEditorsDAO extends DAO {
00020    function SeriesEditorsDAO() {
00021       parent::DAO();
00022    }
00023 
00032    function insertEditor($pressId, $seriesId, $userId, $canReview, $canEdit) {
00033       return $this->update(
00034          'INSERT INTO series_editors
00035             (press_id, series_id, user_id, can_review, can_edit)
00036             VALUES
00037             (?, ?, ?, ?, ?)',
00038          array(
00039             $pressId,
00040             $seriesId,
00041             $userId,
00042             $canReview ? 1 : 0,
00043             $canEdit ? 1 : 0
00044          )
00045       );
00046    }
00047 
00054    function deleteEditor($pressId, $seriesId, $userId) {
00055       return $this->update(
00056          'DELETE FROM series_editors WHERE press_id = ? AND series_id = ? AND user_id = ?',
00057          array(
00058             $pressId,
00059             $seriesId,
00060             $userId
00061          )
00062       );
00063    }
00064 
00071    function &getEditorsBySeriesId($seriesId, $pressId) {
00072       $users = array();
00073 
00074       $userDao =& DAORegistry::getDAO('UserDAO');
00075 
00076       $result =& $this->retrieve(
00077          'SELECT u.*, e.can_review AS can_review, e.can_edit AS can_edit FROM users AS u, series_editors AS e WHERE u.user_id = e.user_id AND e.press_id = ? AND e.series_id = ? ORDER BY last_name, first_name',
00078          array($pressId, $seriesId)
00079       );
00080 
00081       while (!$result->EOF) {
00082          $row = $result->GetRowAssoc(false);
00083          $users[] = array(
00084             'user' => $userDao->_returnUserFromRow($row),
00085             'canReview' => $row['can_review'],
00086             'canEdit' => $row['can_edit']
00087          );
00088          $result->MoveNext();
00089       }
00090 
00091       $result->Close();
00092       unset($result);
00093 
00094       return $users;
00095    }
00096 
00103    function &getEditorsNotInSeries($pressId, $seriesId) {
00104       $users = array();
00105 
00106       $userDao =& DAORegistry::getDAO('UserDAO');
00107 
00108       $result =& $this->retrieve(
00109          'SELECT  u.*
00110          FROM  users u
00111             JOIN user_user_groups uug ON (u.user_id = uug.user_id)
00112             JOIN user_groups ug ON (uug.user_group_id = ug.user_group_id AND ug.role_id = ? AND ug.context_id = ?)
00113             LEFT JOIN series_editors e ON (e.user_id = u.user_id AND e.press_id = ug.context_id AND e.series_id = ?)
00114          WHERE e.series_id IS NULL
00115          ORDER BY last_name, first_name',
00116          array(ROLE_ID_SERIES_EDITOR, (int) $pressId, (int) $seriesId)
00117       );
00118 
00119       while (!$result->EOF) {
00120          $users[] =& $userDao->_returnUserFromRow($result->GetRowAssoc(false));
00121          $result->MoveNext();
00122       }
00123 
00124       $result->Close();
00125       unset($result);
00126 
00127       return $users;
00128    }
00129 
00135    function deleteEditorsBySeriesId($seriesId, $pressId = null) {
00136       if (isset($pressId)) return $this->update(
00137          'DELETE FROM series_editors WHERE press_id = ? AND series_id = ?',
00138          array($pressId, $seriesId)
00139       );
00140       else return $this->update(
00141          'DELETE FROM series_editors WHERE series_id = ?',
00142          $seriesId
00143       );
00144    }
00145 
00150    function deleteEditorsByPressId($pressId) {
00151       return $this->update(
00152          'DELETE FROM series_editors WHERE press_id = ?', $pressId
00153       );
00154    }
00155 
00162    function deleteEditorsByUserId($userId, $pressId  = null, $seriesId = null) {
00163       return $this->update(
00164          'DELETE FROM series_editors WHERE user_id = ?' . (isset($pressId) ? ' AND press_id = ?' : '') . (isset($seriesId) ? ' AND series_id = ?' : ''),
00165          isset($pressId) && isset($seriesId) ? array($userId, $pressId, $seriesId)
00166          : (isset($pressId) ? array($userId, $pressId)
00167          : (isset($seriesId) ? array($userId, $seriesId) : $userId))
00168       );
00169    }
00170 
00178    function editorExists($pressId, $seriesId, $userId) {
00179       $result =& $this->retrieve(
00180          'SELECT COUNT(*) FROM series_editors WHERE press_id = ? AND series_id = ? AND user_id = ?', array($pressId, $seriesId, $userId)
00181       );
00182       $returner = isset($result->fields[0]) && $result->fields[0] == 1 ? true : false;
00183 
00184       $result->Close();
00185       unset($result);
00186 
00187       return $returner;
00188    }
00189 }
00190 
00191 ?>

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