Пример #1
0
 private function getResultHtml()
 {
     $resultList = '';
     if ($this->pageRequestOptions->propertyString === '' || !$this->pageRequestOptions->propertyString) {
         return array($this->messageBuilder->getMessage('smw_sbv_docu')->text(), '', 0);
     }
     if ($this->pageRequestOptions->valueString !== '' && !$this->pageRequestOptions->value->isValid()) {
         return array(implode(',', $this->pageRequestOptions->value->getErrors()), '', 0);
     }
     $exactResults = $this->queryResultLookup->doQuery($this->pageRequestOptions);
     $exactCount = count($exactResults);
     if ($this->canQueryNearbyResults($exactCount)) {
         return $this->getNearbyResults($exactResults, $exactCount);
     }
     if ($this->pageRequestOptions->valueString === '') {
         $resultMessageKey = 'smw-sp-searchbyproperty-nonvaluequery';
     } else {
         $resultMessageKey = 'smw-sp-searchbyproperty-valuequery';
     }
     $resultMessage = $this->messageBuilder->getMessage($resultMessageKey, $this->pageRequestOptions->property->getShortHTMLText($this->linker), $this->pageRequestOptions->value->getShortHTMLText($this->linker))->text();
     if ($exactCount > 0) {
         $resultList = $this->makeResultList($exactResults, $this->pageRequestOptions->limit, true);
     }
     return array(str_replace('_', ' ', $resultMessage), $resultList, $exactCount);
 }
Пример #2
0
 public function testDoQueryForExactValue()
 {
     $pageRequestOptions = new PageRequestOptions('Foo/Bar', array());
     $pageRequestOptions->initialize();
     $store = $this->getMockBuilder('\\SMW\\Store')->disableOriginalConstructor()->getMockForAbstractClass();
     $store->expects($this->once())->method('getPropertySubjects')->with($this->isInstanceOf('\\SMW\\DIProperty'), $this->anything(), $this->anything())->will($this->returnValue(array()));
     $instance = new QueryResultLookup($store);
     $this->assertInternaltype('array', $instance->doQuery($pageRequestOptions));
 }