/**
  * Constructor for the view.
  *
  * @param $id the view id
  * @param $results array of SRF_Filtered_Item containing the query results
  * @param type $params array of parameter values given as key-value-pairs
  */
 public function __construct($id, &$results, &$params, SRFFiltered &$queryPrinter)
 {
     global $wgParser;
     parent::__construct($id, $results, $params, $queryPrinter);
     // find the hash for the printout containing the start date
     if ($params['calendar view start'] !== '') {
         $start = trim($wgParser->recursiveTagParse($params['calendar view start']));
     } else {
         $start = null;
     }
     // find the hash for the printout containing the start date
     if ($params['calendar view end'] !== '') {
         $end = trim($wgParser->recursiveTagParse($params['calendar view end']));
     } else {
         $end = null;
     }
     // find the hash for the printout containing the title of the element
     if ($params['calendar view title'] !== '') {
         $title = trim($wgParser->recursiveTagParse($params['calendar view title']));
     } else {
         $title = null;
     }
     // find the hash for the printout containing the title of the element
     if ($params['calendar view title template'] !== '') {
         $titleTemplate = trim($wgParser->recursiveTagParse($params['calendar view title template']));
     } else {
         $titleTemplate = null;
     }
     foreach ($results as $rownum => $result) {
         $value = $result->getValue();
         $data = array();
         $wikitext = '';
         $firstField = true;
         foreach ($value as $i => $field) {
             $printRequest = $field->getPrintRequest();
             if ($printRequest->getLabel() === $start && $printRequest->getTypeID() === '_dat') {
                 // found specified column for start date
                 $field->reset();
                 $datavalue = $field->getNextDatavalue();
                 if ($datavalue !== false) {
                     $data['start'] = $datavalue->getISO8601Date();
                 }
             } else {
                 if ($printRequest->getLabel() === $end && $printRequest->getTypeID() === '_dat') {
                     // found specified column for end date
                     $field->reset();
                     $datavalue = $field->getNextDatavalue();
                     if ($datavalue !== false) {
                         $data['end'] = $datavalue->getISO8601Date();
                     }
                 } else {
                     if ($printRequest->getLabel() === $title && $printRequest->getTypeID() === '_wpg' && $titleTemplate === null) {
                         // found specified column for title
                         $field->reset();
                         $datavalue = $field->getNextDatavalue();
                         if ($datavalue !== false) {
                             $data['url'] = $datavalue->getTitle()->getLocalURL();
                         }
                     } else {
                         if ($start === null && !array_key_exists('start', $data) && $printRequest->getTypeID() === '_dat') {
                             // no column for start date specified, take first available date value
                             $field->reset();
                             $datavalue = $field->getNextDatavalue();
                             if ($datavalue !== false) {
                                 $data['start'] = $datavalue->getISO8601Date();
                             }
                         } else {
                             if ($firstField === true && $params['mainlabel'] !== '-' && $title === null && $titleTemplate === null && $printRequest->getTypeID() === '_wpg') {
                                 // found specified column for title
                                 $field->reset();
                                 $datavalue = $field->getNextDatavalue();
                                 if ($datavalue !== false) {
                                     $data['url'] = $datavalue->getTitle()->getLocalURL();
                                 }
                             }
                         }
                     }
                 }
             }
             $firstField === false;
             // only add to title template if requested and if not hidden
             if ($titleTemplate !== null && $printRequest->getParameter('hide') === false) {
                 $wikitext .= '|' . ($i + 1) . '=';
                 $first_value = true;
                 $field->reset();
                 while (($text = $field->getNextText(SMW_OUTPUT_WIKI, $this->getQueryPrinter()->getLinker($i == 0))) !== false) {
                     if ($first_value) {
                         $first_value = false;
                     } else {
                         $wikitext .= ', ';
                     }
                     $wikitext .= $text;
                 }
             }
         }
         // only add to title template if requested and if not hidden
         if ($titleTemplate !== null) {
             $wikitext .= "|#={$rownum}";
             $data['title'] = trim($wgParser->recursiveTagParse('{{' . $titleTemplate . $wikitext . '}}'));
             $wgParser->replaceLinkHolders($data['title']);
         }
         $result->setData('calendar-view', $data);
     }
 }
 public function __construct($id, &$results, &$params, SRFFiltered &$queryPrinter)
 {
     parent::__construct($id, $results, $params, $queryPrinter);
     $this->params = $params;
 }