CMS  Version 3.9
QuestionnaireSendView Class Reference

Public Member Functions

 __construct ($sendMgr)
 Create a view of the questionnaire/survey in groups: Intro Email Recipients Sample Email Questionnaire Confirmation. More...
 
 buildIntroForm ()
 
 buildRecipientForm ()
 
 buildSampleEmailForm ()
 
 buildConfirmationForm ()
 
 writeScript ()
 
 drawView ()
 
 drawQuestionnaire ()
 

Public Attributes

 $forms
 
 $sendMgr
 
 $response
 

Detailed Description

Definition at line 48 of file questionnaire_view.inc.

Constructor & Destructor Documentation

◆ __construct()

QuestionnaireSendView::__construct (   $sendMgr)

Create a view of the questionnaire/survey in groups: Intro Email Recipients Sample Email Questionnaire Confirmation.

Parameters
instanceof child class of AbstractQuestionnaireSendManager $sendMgr

Definition at line 64 of file questionnaire_view.inc.

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  }

Member Function Documentation

◆ buildConfirmationForm()

QuestionnaireSendView::buildConfirmationForm ( )

Definition at line 205 of file questionnaire_view.inc.

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  }
$identifier
Definition: rss.inc:37

◆ buildIntroForm()

QuestionnaireSendView::buildIntroForm ( )

Definition at line 85 of file questionnaire_view.inc.

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  }

◆ buildRecipientForm()

QuestionnaireSendView::buildRecipientForm ( )

Definition at line 112 of file questionnaire_view.inc.

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  }

◆ buildSampleEmailForm()

QuestionnaireSendView::buildSampleEmailForm ( )

Definition at line 172 of file questionnaire_view.inc.

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  }

◆ drawQuestionnaire()

QuestionnaireSendView::drawQuestionnaire ( )

Definition at line 282 of file questionnaire_view.inc.

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  }

◆ drawView()

QuestionnaireSendView::drawView ( )

Definition at line 249 of file questionnaire_view.inc.

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  }

◆ writeScript()

QuestionnaireSendView::writeScript ( )

Definition at line 237 of file questionnaire_view.inc.

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  }

Member Data Documentation

◆ $forms

QuestionnaireSendView::$forms

Definition at line 50 of file questionnaire_view.inc.

◆ $response

QuestionnaireSendView::$response

Definition at line 52 of file questionnaire_view.inc.

◆ $sendMgr

QuestionnaireSendView::$sendMgr

Definition at line 51 of file questionnaire_view.inc.


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