/** * Given a page id, returns a document representing that page. * * @return Apache_Solr_Document A documment representing the page */ protected function getPageDocument() { $document = t3lib_div::makeInstance('Apache_Solr_Document'); $cHash = $this->filterInvalidContentHash($this->page->cHash); $pageRecord = $this->page->page; self::$pageSolrDocumentId = $documentId = tx_solr_Util::getPageDocumentId($this->page->id, $this->page->type, $this->page->sys_language_uid, $this->getDocumentIdGroups(), $cHash); $document->setField('id', $documentId); // system fields // 2011-08-15T14:18:54.851Z $document->setField('date_creation', date("Y-m-d\\TH:i:s\\Z", $pageRecord['crdate'])); !empty($pageRecord['starttime']) ? $document->setField('date_online', date("Y-m-d\\TH:i:s\\Z", $pageRecord['starttime'])) : ''; !empty($pageRecord['endtime']) ? $document->setField('date_offline', date("Y-m-d\\TH:i:s\\Z", $pageRecord['endtime'])) : ''; $document->setField('date_updated', date("Y-m-d\\TH:i:s\\Z", $pageRecord['tstamp'])); // access if ($this->page->page['endtime']) { $document->setField('date_offline', $pageRecord['endtime']); } // content $document->setField('title', $this->utf8encode($this->contentExtractor->getPageTitle())); $document->setField('subtitle', addslashes($this->utf8encode($pageRecord['subtitle']))); $document->setField('summary', !empty($pageRecord['description']) ? $this->utf8encode($pageRecord['description']) : substr($this->contentExtractor->getIndexableContent(), 0, 210)); $document->setField('body', addslashes($this->contentExtractor->getIndexableContent())); $document->setField('deeplink', $this->pageUrl); // keywords $keywords = array_unique(t3lib_div::trimExplode(',', $this->utf8encode($pageRecord['keywords']))); foreach ($keywords as $keyword) { $document->addField('keywords', $keyword); } return $document; }