CMS  Version 3.9
questionnaire_view.inc
Go to the documentation of this file.
1 <?php
16 {
17  var $mgr;
18  var $form;
20 
22  {
23  $this->mgr = $mgr;
24 
25  $this->form = new AutoForm($mgr->item);
26  $this->form->readOnlyForm = true;
27 
28  $this->questionnaireView = new QuestionnairePreview($mgr);
29  }
30 
31  function writeScript()
32  {
33  $script .= $this->form->writeScript();
34  $script .= $this->questionnaireView->writeScript();
35 
36  return $script;
37  }
38 
39  function drawView()
40  {
41  $this->form->drawForm();
42  echo "<p><label>Survey Questions</label></p>\n";
43  $this->questionnaireView->drawView();
44  }
45 }
46 
47 
49 {
50  var $forms;
51  var $sendMgr;
52  var $response;
53 
65  {
66  $this->sendMgr = $sendMgr;
67 
68  $this->response = $this->sendMgr->getSampleResponse();
69 
70  $this->forms["Introduction"] = $this->buildIntroForm();
71 
72  $this->forms["Email"] = $this->buildRecipientForm();
73 
74  $this->forms["Sample Email"] = $this->buildSampleEmailForm();
75 
76  $confirmationForm = $this->buildConfirmationForm();
77  if($confirmationForm)
78  {
79  $this->forms["Confirmation"] = $confirmationForm;
80  }
81 
82  $this->questionnaireView = new QuestionnairePreview($this->sendMgr->getCreateManager());
83  }
84 
85  function buildIntroForm()
86  {
87  $item = clone $this->sendMgr->item;
88  $pk = $item->getPrimaryKey();
89  $id = $item->$pk;
90  $item->filter = new InclusionFilter("title", "introduction", "start_date", "end_date");
91 
92  if(!$item->start_date)
93  {
94  $item->fields["start_date"] = String;
95  $item->start_date = "N/A";
96  }
97  if(!$item->end_date)
98  {
99  $item->fields["end_date"] = String;
100  $item->end_date = "Not specified";
101  }
102 
103  $form = new AutoForm($item);
104 
105  $form->readOnlyForm = true;
106  $identifier = $this->sendMgr->getQuestionnaireFormIdentifier();
107  $form->data->set("edit_link", "<a href='$identifier?$pk={$id}'>(edit)</a>");
108 
109  return $form;
110  }
111 
113  {
114  $item = clone $this->sendMgr->item;
115  $pk = $item->getPrimaryKey();
116  $id = $item->$pk;
117  $item->filter = new InclusionFilter("recipients", "additional_recipients", "cc_recipients", "sender_email");
118 
119  $item->sender_email = $this->sendMgr->getSenderEmail();
120 
121  if(!$item->recipients)
122  {
123  $item->recipients = "No recipients have been specified.";
124  }
125  else
126  {
127  $count = count(explode(",", $item->recipients));
128  $item->fields["recipients"] = HTML;
129  $label = ($count > 1) ? "recipients have" : "recipient has";
130  $item->recipients = "$count survey $label been specified. <a class='button' href='#' onclick=\"questionnaireSendMgr.showRecipientsDialog(); return false\">View</a>\n";
131  }
132 
133  if($item->additional_recipients)
134  {
135  $count = count(explode(",", $item->additional_recipients));
136  $item->fields["additional_recipients"] = HTML;
137  $label = ($count > 1) ? "recipients have" : "recipient has";
138  $item->additional_recipients = "$count additional survey $label been specified. <a class='button' href='#' onclick=\"questionnaireSendMgr.showAdditionalRecipientsDialog(); return false\">View</a>\n";
139  }
140 
141  if($item->cc_recipients)
142  {
143  $item->cc_recipients = implode(", ", explode(",", $item->cc_recipients));
144  }
145  else
146  {
147  $item->cc_recipients = "None";
148  }
149 
150  if(!$item->subject)
151  {
152  $item->subject = " ";
153  }
154 
155  if(!$item->message)
156  {
157  $item->message = " ";
158  }
159  $form = new AutoForm($item);
160  $form->readOnlyForm = true;
161 
162  $form->getRenderer("recipients")->colspan = 1;
163  $form->getRenderer("cc_recipients")->colspan = 1;
164  $form->getRenderer("additional_recipients")->colspan = 1;
165 
166  $identifier = $this->sendMgr->getEmailForm();
167  $form->data->set("edit_link", "<a href='{$identifier}?$pk={$id}'>(edit)</a>");
168 
169  return $form;
170  }
171 
173  {
174  $item = clone $this->sendMgr->item;
175  $pk = $item->getPrimaryKey();
176  $id = $item->$pk;
177  $item->fields["message"] = HTML;
178 
179  $item->message = $this->sendMgr->getMessage();
180 
181  $response_class = $this->sendMgr->getResponseClass();
182  trace("**********item message {$item->message}", 3);
183  $mergeMgr = new MergeCodeManager($this->response, $item->message, $response_class);
184  $item->message = $mergeMgr->searchAndReplace($item->message);
185 
186  $item->sender_email = $this->sendMgr->getSenderEmail();
187 
188  if(!$item->subject) $item->subject = " ";
189  $item->recipients = $this->response->email;
190  $item->filter = new InclusionFilter("sender_email", "recipients", "subject", "message");
191  $form = new AutoForm($item);
192  $form->alias("recipients", "To:", "sender_email", "From:", "subject", "Subject:", "message", "Body:");
193  $form->readOnlyForm = true;
194 
195  $form->getRenderer("recipients")->colspan = 1;
196  $form->getRenderer("message")->colspan = 1;
197 
198  $form->labelCSS = "label_email";
199  $form->formCSS = "email_preview";
200  $form->valueCSS = "value_email";
201 
202  return $form;
203  }
204 
206  {
207  $item = clone $this->sendMgr->item;
208 
209  if(!$item->hasField("confirmation_message")) return null;
210  $pk = $item->getPrimaryKey();
211  $id = $item->$pk;
212  $item->filter = new InclusionFilter("confirmation_message");
213 
214  if($item->confirmation_message)
215  {
216  $response_class = $this->sendMgr->getResponseClass();
217  $mergeMgr = new MergeCodeManager($this->response, $item->confirmation_message, $response_class);
218  $item->confirmation_message = $mergeMgr->searchAndReplace($item->confirmation_message);
219  }
220 
221  $form = new AutoForm($item);
222 
223  if(!$form->data->get("confirmation_message"))
224  {
225  $form->data->set("confirmation_message", $this->sendMgr->formatDefaultConfirmationMessage());
226  $form->alias("confirmation_message", "Confirmation Message (default)");
227  }
228 
229  $form->readOnlyForm = true;
230  $form->getRenderer("confirmation_message")->hideLabel = true;
231  $identifier = $this->sendMgr->getConfirmationPage();
232  $form->data->set("edit_link", "<a href='$identifier?{$pk}={$id}'>(edit)</a>");
233 
234  return $form;
235  }
236 
237  function writeScript()
238  {
239  $script = $this->questionnaireView->writeScript();
240 
241  foreach($this->forms as $title => $form)
242  {
243  $script .= $form->writeScript();
244  }
245 
246  return $script;
247  }
248 
249  function drawView()
250  {
251  echo "<div class='questionnaire_preview'>\n";
252  $form = $this->forms["Introduction"];
253  echo "<fieldset>\n";
254  echo "<legend>Introduction&nbsp;{$form->data->edit_link}</legend>\n";
255  $form->drawForm();
256  echo "</fieldset>\n";
257 
258  $form = $this->forms["Email"];
259  echo "<fieldset>\n";
260  echo "<legend>Email&nbsp;{$form->data->edit_link}</legend>\n";
261  $this->sendMgr->writeSendValidationMsg();
262  $form->drawForm();
263  echo "</fieldset>\n";
264 
265  $form = $this->forms["Sample Email"];
266  echo "<fieldset>\n";
267  echo "<legend>Sample Email</legend>\n";
268  $form->drawForm();
269  echo "</fieldset>\n";
270 
271  $this->drawQuestionnaire();
272 
273  $form = $this->forms["Confirmation"];
274  echo "<fieldset>\n";
275  echo "<legend>Confirmation Message for Respondents&nbsp;{$form->data->edit_link}</legend>\n";
276  $form->drawForm();
277  echo "</fieldset>\n";
278  echo "</div>\n";
279  }
280 
281 
282  function drawQuestionnaire()
283  {
284  $item = $this->sendMgr->item;
285  $pk = $item->getPrimaryKey();
286  $id = $item->$pk;
287  $identifier = $this->sendMgr->getQuestionListIdentifier();
288 
289  echo "<fieldset>\n";
290  echo "<legend>Survey Questions&nbsp;<a href='{$identifier}?{$pk}={$id}'>(edit)</a></legend>\n";
291  $this->sendMgr->writeQuestionnaireValidationMsg();
292  $this->questionnaireView->drawView();
293  echo "</fieldset>\n";
294  }
295 } // end QuestionnaireSendView
296 
297 ?>
__construct($sendMgr)
Create a view of the questionnaire/survey in groups: Intro Email Recipients Sample Email Questionnair...
Draw a view of the questionnaire from action handler from the dashboard.
$form
obj of class AutoForm
$mgr
obj of class that extends AbstractQuestionnaireCreateManager
$identifier
Definition: rss.inc:37