Open Journal Systems  3.3.0
ReviewFormResponseDAO.inc.php
1 <?php
2 
18 import ('lib.pkp.classes.reviewForm.ReviewFormResponse');
19 
20 class ReviewFormResponseDAO extends DAO {
21 
28  function &getReviewFormResponse($reviewId, $reviewFormElementId) {
29  $sql = 'SELECT * FROM review_form_responses WHERE review_id = ? AND review_form_element_id = ?';
30  $params = array($reviewId, $reviewFormElementId);
31  $result = $this->retrieve($sql, $params);
32 
33  $returner = null;
34  if ($result->RecordCount() != 0) {
35  $returner =& $this->_returnReviewFormResponseFromRow($result->GetRowAssoc(false));
36  }
37 
38  $result->Close();
39  return $returner;
40  }
41 
46  function newDataObject() {
47  return new ReviewFormResponse();
48  }
49 
56  $responseValue = $this->convertFromDB($row['response_value'], $row['response_type']);
57  $reviewFormResponse = $this->newDataObject();
58 
59  $reviewFormResponse->setReviewId($row['review_id']);
60  $reviewFormResponse->setReviewFormElementId($row['review_form_element_id']);
61  $reviewFormResponse->setValue($responseValue);
62  $reviewFormResponse->setResponseType($row['response_type']);
63 
64  HookRegistry::call('ReviewFormResponseDAO::_returnReviewFormResponseFromRow', array(&$reviewFormResponse, &$row));
65 
66  return $reviewFormResponse;
67  }
68 
73  function insertObject(&$reviewFormResponse) {
74  $responseValue = $this->convertToDB($reviewFormResponse->getValue(), $reviewFormResponse->getResponseType());
75  $this->update(
76  'INSERT INTO review_form_responses
77  (review_form_element_id, review_id, response_type, response_value)
78  VALUES
79  (?, ?, ?, ?)',
80  array(
81  $reviewFormResponse->getReviewFormElementId(),
82  $reviewFormResponse->getReviewId(),
83  $reviewFormResponse->getResponseType(),
84  $responseValue
85  )
86  );
87  }
88 
93  function updateObject(&$reviewFormResponse) {
94  $responseValue = $this->convertToDB($reviewFormResponse->getValue(), $reviewFormResponse->getResponseType());
95  $returner = $this->update(
96  'UPDATE review_form_responses
97  SET
98  response_type = ?,
99  response_value = ?
100  WHERE review_form_element_id = ? AND review_id = ?',
101  array(
102  $reviewFormResponse->getResponseType(),
103  $responseValue,
104  $reviewFormResponse->getReviewFormElementId(),
105  $reviewFormResponse->getReviewId()
106  )
107  );
108 
109  return $returner;
110  }
111 
116  function deleteObject(&$reviewFormResponse) {
117  return $this->deleteById($reviewFormResponse->getReviewId(), $reviewFormResponse->getReviewFormElementId());
118  }
119 
125  function deleteById($reviewId, $reviewFormElementId) {
126  return $this->update(
127  'DELETE FROM review_form_responses WHERE review_id = ? AND review_form_element_id = ?',
128  array($reviewId, $reviewFormElementId)
129  );
130  }
131 
136  function deleteByReviewId($reviewId) {
137  return $this->update(
138  'DELETE FROM review_form_responses WHERE review_id = ?',
139  $reviewId
140  );
141  }
142 
147  function deleteByReviewFormElementId($reviewFormElementId) {
148  return $this->update(
149  'DELETE FROM review_form_responses WHERE review_form_element_id = ?',
150  $reviewFormElementId
151  );
152  }
153 
159  function &getReviewReviewFormResponseValues($reviewId) {
160  $returner = array();
161 
162  $result = $this->retrieveRange(
163  'SELECT * FROM review_form_responses WHERE review_id = ?',
164  (int) $reviewId
165  );
166 
167  while (!$result->EOF) {
168  $row = $result->GetRowAssoc(false);
169  $reviewFormResponse =& $this->_returnReviewFormResponseFromRow($row);
170  $returner[$reviewFormResponse->getReviewFormElementId()] = $reviewFormResponse->getValue();
171  $result->MoveNext();
172  }
173 
174  $result->Close();
175  return $returner;
176  }
177 
184  function reviewFormResponseExists($reviewId, $reviewFormElementId = null) {
185  $sql = 'SELECT COUNT(*) FROM review_form_responses WHERE review_id = ?';
186  $params = array($reviewId);
187  if ($reviewFormElementId !== null) {
188  $sql .= ' AND review_form_element_id = ?';
189  $params[] = $reviewFormElementId;
190  }
191  $result = $this->retrieve($sql, $params);
192 
193  $returner = isset($result->fields[0]) && $result->fields[0] > 0 ? true : false;
194 
195  $result->Close();
196  return $returner;
197  }
198 }
199 
200 
DAO\retrieveRange
& retrieveRange($sql, $params=false, $dbResultRange=null, $callHooks=true)
Definition: DAO.inc.php:176
ReviewFormResponseDAO\deleteById
deleteById($reviewId, $reviewFormElementId)
Definition: ReviewFormResponseDAO.inc.php:125
DAO\convertToDB
convertToDB($value, &$type)
Definition: DAO.inc.php:401
ReviewFormResponseDAO
Operations for retrieving and modifying ReviewFormResponse objects.
Definition: ReviewFormResponseDAO.inc.php:20
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
ReviewFormResponseDAO\newDataObject
newDataObject()
Definition: ReviewFormResponseDAO.inc.php:46
DAO\convertFromDB
convertFromDB($value, $type)
Definition: DAO.inc.php:341
ReviewFormResponseDAO\reviewFormResponseExists
reviewFormResponseExists($reviewId, $reviewFormElementId=null)
Definition: ReviewFormResponseDAO.inc.php:184
ReviewFormResponseDAO\updateObject
updateObject(&$reviewFormResponse)
Definition: ReviewFormResponseDAO.inc.php:93
ReviewFormResponseDAO\getReviewReviewFormResponseValues
& getReviewReviewFormResponseValues($reviewId)
Definition: ReviewFormResponseDAO.inc.php:159
ReviewFormResponseDAO\deleteByReviewFormElementId
deleteByReviewFormElementId($reviewFormElementId)
Definition: ReviewFormResponseDAO.inc.php:147
ReviewFormResponseDAO\getReviewFormResponse
& getReviewFormResponse($reviewId, $reviewFormElementId)
Definition: ReviewFormResponseDAO.inc.php:28
ReviewFormResponse
Basic class describing a review form response.
Definition: ReviewFormResponse.inc.php:18
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
ReviewFormResponseDAO\deleteByReviewId
deleteByReviewId($reviewId)
Definition: ReviewFormResponseDAO.inc.php:136
ReviewFormResponseDAO\deleteObject
deleteObject(&$reviewFormResponse)
Definition: ReviewFormResponseDAO.inc.php:116
ReviewFormResponseDAO\insertObject
insertObject(&$reviewFormResponse)
Definition: ReviewFormResponseDAO.inc.php:73
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31
ReviewFormResponseDAO\_returnReviewFormResponseFromRow
& _returnReviewFormResponseFromRow($row)
Definition: ReviewFormResponseDAO.inc.php:55