CMS  Version 3.9
questionnaire_manager.inc
Go to the documentation of this file.
1 <?php
7 Fakoli::using("questionnaire");
8 Fakoli::usingFile("/cms/components/questionnaire/abstract_questionnaire_manager.inc");
9 Fakoli::usingFile("/cms/components/questionnaire/abstract_questionnaire_dashboard_manager.inc");
10 Fakoli::usingFile("/cms/components/questionnaire/abstract_questionnaire_create_manager.inc");
11 Fakoli::usingFile("/cms/components/questionnaire/abstract_questionnaire_send_manager.inc");
12 Fakoli::usingFile("/cms/components/questionnaire/abstract_questionnaire_response_manager.inc");
13 Fakoli::usingFile("/cms/components/questionnaire/abstract_questionnaire_results_manager.inc");
14 
15 class QuestionnaireDashboardManager extends AbstractQuestionnaireDashboardManager
16 {
18  {
19  $this->item = $item; // can be empty instance
20  }
21 
22  function getComponentName()
23  {
24  return "questionnaire";
25  }
26 
27  function getCreateManager($item)
28  {
29  return new QuestionnaireCreateManager($item);
30  }
31 
32  function getResultsManager($item)
33  {
34  return new QuestionnaireResultsManager($item);
35  }
36 
38  {
39  return "questionnaire_form";
40  }
41 
42  function getSendManager($item)
43  {
44  return null;
45  }
46 
47 }
48 
49 /*
50  * Description: provides the more generic questionnaire
51  * classes with the specifics of the questionnaire datamodels and
52  * page identifiers. For example, lets the QuestionSet
53  * class know the identifier name of the question form.
54  *
55  * @author Janice Gallant for Sonjara, Inc.
56  *
57  * 10/13/2010
58  */
59 class QuestionnaireCreateManager extends AbstractQuestionnaireCreateManager
60 {
65  {
66  $this->item = $questionnaire;
67  }
68 
69  function getQuestionClass()
70  {
71  return Question;
72  }
73 
74  function getComponentName()
75  {
76  return "questionnaire";
77  }
78 
79  function getXrefClass()
80  {
81  return null;
82  }
83 
84  // The class that stores the answers
85  function getAnswerClass()
86  {
87  return "QuestionnaireAnswer";
88  }
89 
90  static function getTabs($key = "")
91  {
92  $formTitle = "Create a Questionnaire";
93 
94  if($key)
95  {
96  $questionnaire = new Questionnaire($key);
97  $formTitle = ($questionnaire->isEditable()) ? "Edit Questionnaire" : "Questionnaire Details";
98  }
99 
100  $images[0] = "<img src='/fakoli/images/tab_create_survey.png' style='display: inline-block;vertical-align: middle; border: none'/>&nbsp;";
101  $images[1] = "<img src='/fakoli/images/tab_view_results.png' style='display: inline-block;vertical-align: middle; border: none'/>&nbsp;";
102 
103  $tabs = array(
104  $images[0] . $formTitle => array(
105  "Introduction" => "questionnaire_form",
106  "Questions" => "questionnaire_questions",
107  "Preview Questionnaire" => "questionnaire_preview"
108  ),
109 
110  $images[1] . "View Results" => array(
111  "Questionnaire Responses" => "questionnaire_responses",
112  "Graphical Data" => "questionnaire_graphs",
113  "Tabular View" => "questionnaire_data_table",
114  "Spreadsheet View" => "questionnaire_spreadsheet"
115  ),
116  );
117 
118  $qs = ($key) ? "questionnaire_id=$key" : "";
119  $tabBar = new TwoLevelTabBar($tabs, $qs);
120 
121  return $tabBar;
122  }
123 
124 }
125 
126 /*
127  * @response - object of DataItem class that links
128  * the set of user's responses.
129  */
130 class QuestionnaireResponseManager extends AbstractQuestionnaireResponseManager
131 {
132  var $item;
133 
135  {
136  $this->item = $response;
137  }
138 
139  function getComponentName()
140  {
141  return "questionnaire";
142  }
143 
144  function getQuestionClass()
145  {
146  return Question;
147  }
148 
149 
150  function getXrefClass()
151  {
152  return null;
153  }
154 
155  // The class that stores the answers
156  function getAnswerClass()
157  {
158  return "QuestionnaireAnswer";
159  }
160 
165  {
167  echo $response->format("<h2>{Questionnaire.title}</h2>");
168  echo "<p><label>Respondent: </label>". $this->getRespondent() . "</p>\n";
169  echo $response->format("<p><label>Date Submitted: </label>{date_submitted:F d, Y}</p>\n");
170  }
171 
173  {
175  return $mgr->formatResponseLink();
176  }
177 
178 }
179 
180 
181 /*
182  * Handle getting total results/response counts for one survey for
183  * display of results.
184  */
185 class QuestionnaireResultsManager extends AbstractQuestionnaireResultsManager
186 {
188  {
189  $this->item = $questionnaire;
190  }
191 
192  function getComponentName()
193  {
194  return "questionnaire";
195  }
196 
197  function getQuestionClass()
198  {
199  return Question;
200  }
201 
207  function Responses($constraint = "")
208  {
209  return $this->item->Responses();
210  }
211 
212  function getAnswerClass()
213  {
214  return "QuestionnaireAnswer";
215  }
216 
217  function getResponseClass()
218  {
219  return "QuestionnaireResponse";
220  }
221 
223  {
225  }
226 
227  function getXrefClass()
228  {
229  return null;
230  }
231 
236  {
237  return "Respondent";
238  }
239 
240  function getRecipientCount()
241  {
242  return 0;
243  }
244 }?>
$constraint
$tabs
$images
Definition: images.inc:46
static using()
Import the datamodels, views and manifest for the specified component(s).
Definition: core.inc:116
static usingFile()
Uses the specified framework file(s) from the framework directory.
Definition: core.inc:369
QuestionnaireCreateManager($questionnaire)
Creates a new QuestionnaireCreateManager object.
drawResponseViewHeading()
Called by questionnaire_response_view action handler.
getRespondentColumnHeading()
For spreadsheet view.
Responses($constraint="")
Called by Spreadsheeet View.
if(! $questionnaire_id) $questionnaire
if(! $user) if(! $response_id) $response