CMS  Version 3.9
Survey Class Reference
+ Inheritance diagram for Survey:
+ Collaboration diagram for Survey:

Public Member Functions

 User ()
 
 Author ()
 
 SurveyQuestionXrefs ($constraint="ORDER BY sort_order")
 
 Questions ($constraint="ORDER BY sort_order")
 
 Responses ($constraint="")
 
 Answers ($constraint="")
 
 getTitle ()
 
 isEditable ()
 
 isSent ()
 
 isOpen ()
 
 setDefaults ()
 Set the initial default values in the item e.g., user_id = user->user_id status = xx. More...
 
 isClosed ()
 
 isAuthor ()
 
 setStatus ($status)
 
 getRecipientCount ()
 Called by SurveyResultsManager. More...
 
 getResponseCount ()
 Called by SurveyResultsManager. More...
 
 getNonResponders ()
 Called by SurveyResultsManager. More...
 
 allowDelete ()
 
 Survey ()
 
- Public Member Functions inherited from AbstractQuestionnaire
 AbstractQuestionnaire ()
 
 Questions ()
 
 Answers ()
 

Public Attributes

 $fields
 
 $relations
 
 $fieldAliases
 

Static Public Attributes

static $statusTypes
 

Detailed Description

Definition at line 52 of file survey.inc.

Member Function Documentation

◆ allowDelete()

Survey::allowDelete ( )

Reimplemented from AbstractQuestionnaire.

Definition at line 281 of file survey.inc.

282  {
283  if(!$this->survey_id)
284  return true;
285 
286  return ($this->status != "open") ? true : false;
287  }
$progress status
$table column("Redirect From", "<a href='redirect_form?redirect_id={redirect_id}'>{redirect_from}</a>", true, "width: 30%") -> column("Redirect To", "<a href='{redirect_to}' target='_blank'>{redirect_to}</a>", true, "width: 30%") ->column("Last Modified", "{last_modified}", true, "width: 20%; text-align: center") ->column("Override", "{ override true
Definition: redirects.inc:9

◆ Answers()

Survey::Answers (   $constraint = "")

Definition at line 130 of file survey.inc.

131  {
132  $query = "WHERE response_id IN (SELECT response_id FROM survey_response WHERE status = 'submitted' AND survey_id=:survey_id AND include_in_results=true)";
133  if($constraint)
134  {
135  $query .= preg_replace("/WHERE/i", " AND", $constraint);
136  }
137 
138  if($constraint)
139  {
140  $constraint = preg_replace("/WHERE/i", " AND", $constraint);
141  $constraint = preg_replace("/ question_id/", " survey_question_id", $constraint);
142  $query .= $constraint;
143  }
144 
145  trace("Email survey answers constraint ". $query, 3);
146  return Query::create(SurveyAnswer, $query)
147  ->bind(":survey_id", $this->survey_id)
148  ->execute();
149 
150  $answers = query(SurveyAnswer, $query);
151  return $answers;
152  }
$constraint
$answers

◆ Author()

Survey::Author ( )

Definition at line 108 of file survey.inc.

109  {
110  return $this->User();
111  }
User()
Definition: survey.inc:95

◆ getNonResponders()

Survey::getNonResponders ( )

Called by SurveyResultsManager.

Returns
array of SurveyResponse objects

Definition at line 272 of file survey.inc.

273  {
274  $nonResponders = Query::create(SurveyResponse, "WHERE survey_id=:survey_id AND status != 'submitted' AND include_in_results=true")
275  ->bind(":survey_id", $this->survey_id)
276  ->execute();
277 
278  return $nonResponders;
279  }

◆ getRecipientCount()

Survey::getRecipientCount ( )

Called by SurveyResultsManager.

Returns
Number

Definition at line 242 of file survey.inc.

243  {
244  $count = Query::create(SurveyResponse, "WHERE survey_id=:survey_id AND include_in_results=true")
245  ->bind(":survey_id", $this->survey_id)
246  ->executeValue("COUNT(1)");
247 
248  return $count;
249  }

◆ getResponseCount()

Survey::getResponseCount ( )

Called by SurveyResultsManager.

for survey aggregation

Returns
Number

Definition at line 258 of file survey.inc.

259  {
260  $count = Query::create(SurveyResponse, "WHERE status = 'submitted' AND survey_id=:survey_id AND include_in_results=true")
261  ->bind(":survey_id", $this->survey_id)
262  ->executeValue("COUNT(1)");
263 
264  return $count;
265  }

◆ getTitle()

Survey::getTitle ( )

Definition at line 154 of file survey.inc.

155  {
157  $title .= ($this->start_date > 0) ? " &ndash; " . $this->format("{start_date:F d, Y}") : "";
158 
159  return $title;
160  }

◆ isAuthor()

Survey::isAuthor ( )

Reimplemented from AbstractQuestionnaire.

Definition at line 203 of file survey.inc.

204  {
205  global $user;
206  return (checkRole("admin,data") || $this->site_user_id == $user->site_user_id) ? true : false;
207 
208  }
global $user

◆ isClosed()

Survey::isClosed ( )

Definition at line 189 of file survey.inc.

190  {
191  if($this->status == "open" AND $this->end_date > 0)
192  {
193  $today = date("Y-m-d");
194  if($this->end_date < $today)
195  {
196  $this->setStatus("closed");
197  }
198  }
199 
200  return ($this->status == "closed") ? true : false;
201  }
setStatus($status)
Definition: survey.inc:210

◆ isEditable()

Survey::isEditable ( )

Reimplemented from AbstractQuestionnaire.

Definition at line 162 of file survey.inc.

163  {
164  if(!$this->survey_id)
165  return true;
166 
167  return ($this->isAuthor() AND $this->status == "not sent") ? true : false;
168  }
isAuthor()
Definition: survey.inc:203

◆ isOpen()

Survey::isOpen ( )

Definition at line 175 of file survey.inc.

176  {
177  return ($this->status == "open") ? true : false;
178  }

◆ isSent()

Survey::isSent ( )

Definition at line 170 of file survey.inc.

171  {
172  return ($this->status == "not sent") ? false : true;
173  }
return false

◆ Questions()

Survey::Questions (   $constraint = "ORDER BY sort_order")

Definition at line 118 of file survey.inc.

119  {
120  if($this->survey_id)
121  return $this->crossReference(SurveyQuestion, SurveyQuestionXref, $constraint);
122  }

◆ Responses()

Survey::Responses (   $constraint = "")

Definition at line 124 of file survey.inc.

125  {
126  return $this->getRelatedList(SurveyResponse);
127  }

◆ setDefaults()

Survey::setDefaults ( )

Set the initial default values in the item e.g., user_id = user->user_id status = xx.

Used by questionnaire clone and can be used on the first form page.

Reimplemented from AbstractQuestionnaire.

Definition at line 180 of file survey.inc.

181  {
182  global $user;
183 
184  $this->status = "not sent";
185  $this->user_id = $user->user_id;
186  }
$feedback user_id
Definition: save.inc:14

◆ setStatus()

Survey::setStatus (   $status)

Definition at line 210 of file survey.inc.

211  {
212  $today = date("Y-m-d"); // today's date
213 
214  if($status == "open")
215  {
216  $this->filter = new InclusionFilter("start_date", "end_date", "status");
217 
218  if($this->start_date > 0)
219  {
220  if($this->end_date > 0) // reopening
221  $this->end_date = 0;
222  }
223  else // opening for the first time
224  $this->start_date = $today;
225 
226  }
227  elseif($status == "closed")
228  {
229  $this->filter = new InclusionFilter("end_date", "status");
230  $this->end_date = $today;
231  }
232 
233  $this->status = $status;
234  $this->save();
235  }
$table filter

◆ Survey()

Survey::Survey ( )

Definition at line 289 of file survey.inc.

290  {
291  $this->table = "survey";
292  $this->primary_key = "survey_id";
293  $this->answer_class = SurveyAnswer;
294 
295  $this->pretty_class_name = "Survey";
296 
297  $this->DataItem(func_get_args());
298  }

◆ SurveyQuestionXrefs()

Survey::SurveyQuestionXrefs (   $constraint = "ORDER BY sort_order")

Definition at line 113 of file survey.inc.

114  {
115  return $this->getRelatedList(SurveyQuestionXref, "survey_id", $constraint);
116  }

◆ User()

Survey::User ( )

Definition at line 95 of file survey.inc.

96  {
97  $mgr = new UserManager();
98  $class = $mgr->getUserClass();
99  $l_user = new $class();
100  $pk = $l_user->getPrimaryKey();
101 
102  $authors = Query::create($class, "WHERE $pk =:user_id")
103  ->bind(":user_id", $this->user_id)
104  ->execute();
105  return (count($authors) > 0) ? $authors[0] : null;
106  }
Provides the interface to the user model for the application.

Member Data Documentation

◆ $fieldAliases

Survey::$fieldAliases
Initial value:
= array(
"cc_recipients" => "CC Recipients",
)

Definition at line 82 of file survey.inc.

◆ $fields

Survey::$fields
Initial value:
= array(
"survey_id" => Number,
"title" => String,
"introduction" => Text,
"start_date" => Date,
"end_date" => Date,
"instructions" => HTML,
"user_id" => Number,
"sender_email" => String,
"recipients" => Text,
"cc_recipients" => Text,
"additional_recipients" => Text,
"allow_anonymous_responses" => Boolean,
"show_preview_before_submitting" => Boolean,
"message" => Text,
"confirmation_message" => HTML,
"status" => String,
"deleted" => Boolean
)

Definition at line 54 of file survey.inc.

◆ $relations

Survey::$relations
Initial value:
= array(
"Responses" => SurveyResponse,
"Questions" => SurveyQuestion,
"SurveyQuestionXrefs" => SurveyQuestionXref,
"User" => "",
"Author" => "",
)

Definition at line 74 of file survey.inc.

◆ $statusTypes

Survey::$statusTypes
static
Initial value:
= array(
"not sent" => "Not Sent",
"open" => "Open",
"closed" => "Closed"
)

Definition at line 86 of file survey.inc.


The documentation for this class was generated from the following file: