CMS  Version 3.9
QuestionnaireSpreadsheetView Class Reference

Public Member Functions

 QuestionnaireSpreadsheetView ($mgr)
 
 getSpreadsheetResponses ($responses, $questionnaireAnswers, $qPk)
 
 buildTable ($spreadsheetResponses, $questions)
 
 writeScript ()
 
 drawView ()
 

Public Attributes

 $mgr
 
 $table
 
 $spreadsheetResponses
 

Detailed Description

Definition at line 35 of file questionnaire_spreadsheet_view.inc.

Member Function Documentation

◆ buildTable()

QuestionnaireSpreadsheetView::buildTable (   $spreadsheetResponses,
  $questions 
)

Definition at line 109 of file questionnaire_spreadsheet_view.inc.

110  {
111  $table = new DataListView($spreadsheetResponses, "questionnaireSpreadsheet");
112  $table->column($this->mgr->getRespondentColumnHeading(), $this->mgr->getRespondentColumnFormat(), true, "width: 40px");
113 
114  $this->mgr->addRespondentAdditionalColumns($table);
115 
116  if(count($questions) > 0)
117  {
118  $idx = 1;
119  foreach($questions as $question)
120  {
121  $title = ($question->question_name) ? ellipsis(stripHTML($question->question_name), 80) : ellipsis(stripHTML($question->question), 80);
122  $table->column("{$title}", "{answer_$idx}", false, "width: 120px");
123  $idx++;
124  }
125  }
126 
127  $width = (120 * $idx )+ 40;
128 
129  $table->emptyMessage = "There are no responses to this questionnaire.";
130  $table->sortable = true;
131  $table->paginate = false;
132  $table->dragColumnReorder = true;
133  $table->filter = false;
134  $table->cssStyle = "width: {$width}px; font-size: 10px; white-space: normal;";
135  $table->excelFile = "questionnaireSpreadsheet.xls";
136 
137  return $table;
138  }
$width
Definition: cover.inc:37
$question

◆ drawView()

QuestionnaireSpreadsheetView::drawView ( )

Definition at line 145 of file questionnaire_spreadsheet_view.inc.

146  {
147  $this->table->drawView();
148  }

◆ getSpreadsheetResponses()

QuestionnaireSpreadsheetView::getSpreadsheetResponses (   $responses,
  $questionnaireAnswers,
  $qPk 
)

Definition at line 55 of file questionnaire_spreadsheet_view.inc.

56  {
57  if(count($responses) == 0)
58  {
59  return;
60  }
61 
62  $pk = $responses[0]->primary_key;
63  $answers = reindexList($questionnaireAnswers, $pk);
64  $responseManager = $this->mgr->getResponseManager($responses[0]);
65 
66  $view = new QuestionnaireForm($responseManager);
67 
68  /*
69  * Reuse the same view obj for each response, replacing only the response
70  * obj and the set of answers, not re-retrieving the question set.
71  */
72  foreach($responses as $response)
73  {
74  // Don't reinstantiate the responseManager,
75  // just give it the new obj.
76  $responseManager->item = $response;
77  $responseAnswers = $answers[$response->$pk];
78  if(!is_array($responseAnswers))
79  $responseAnswers = array($responseAnswers);
80  $view->answers = reindexList($responseAnswers, $qPk);
81 
82  $idx = 1;
83  $spreadsheetResponse = new SpreadsheetResponse();
84 
85  $fields = $spreadsheetResponse->getFields();
86  $values = array();
87 
88  $values["name"] = $responseManager->getRespondent();
89  $fields[$pk] = Number;
90  $values[$pk] = $response->$pk;
91 
92  foreach($view->questions as $question)
93  {
94  $fields["answer_{$idx}"] = String;
95  $values["answer_{$idx}"] = $question->getSpreadSheetAnswer();
96  $idx++;
97  }
98  $spreadsheetResponse->fields = $fields;
99 
100  // Assign each field its value.
101  foreach($spreadsheetResponse->fields as $name => $type)
102  $spreadsheetResponse->$name = $values[$name];
103 
104  $spreadsheetResponses[] = $spreadsheetResponse;
105  }
106  return $spreadsheetResponses;
107  }
$view
Definition: help.inc:42
$name
Definition: upload.inc:54
Dummy datamodel for building SpreadsheetView.
$answers
if(! $user) if(! $response_id) $response

◆ QuestionnaireSpreadsheetView()

QuestionnaireSpreadsheetView::QuestionnaireSpreadsheetView (   $mgr)

Definition at line 41 of file questionnaire_spreadsheet_view.inc.

42  {
43  $this->mgr = $mgr;
44  $this->spreadsheetResponses = $this->getSpreadsheetResponses($mgr->Responses(), $mgr->getAnswers(), $mgr->getQuestionKey());
45  $this->table = $this->buildTable($this->spreadsheetResponses, $mgr->getQuestions());
46  }
getSpreadsheetResponses($responses, $questionnaireAnswers, $qPk)
buildTable($spreadsheetResponses, $questions)

◆ writeScript()

QuestionnaireSpreadsheetView::writeScript ( )

Definition at line 140 of file questionnaire_spreadsheet_view.inc.

141  {
142  return $this->table->writeScript();
143  }

Member Data Documentation

◆ $mgr

QuestionnaireSpreadsheetView::$mgr

Definition at line 37 of file questionnaire_spreadsheet_view.inc.

◆ $spreadsheetResponses

QuestionnaireSpreadsheetView::$spreadsheetResponses

Definition at line 39 of file questionnaire_spreadsheet_view.inc.

◆ $table

QuestionnaireSpreadsheetView::$table

Definition at line 38 of file questionnaire_spreadsheet_view.inc.


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