1812a20f7SIain Hallam<?php 2812a20f7SIain Hallam 3812a20f7SIain Hallamnamespace dokuwiki\plugin\struct\meta; 4812a20f7SIain Hallam 5812a20f7SIain Hallam/** 6812a20f7SIain Hallam * Class AggregationValue 7812a20f7SIain Hallam * 8812a20f7SIain Hallam * @package dokuwiki\plugin\struct\meta 9812a20f7SIain Hallam * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 10812a20f7SIain Hallam * @author Iain Hallam <iain@nineworlds.net> 11812a20f7SIain Hallam */ 12d90aa848SAndreas Gohrclass AggregationValue extends Aggregation 13812a20f7SIain Hallam{ 14812a20f7SIain Hallam /** 15812a20f7SIain Hallam * @var Column the column to be displayed 16812a20f7SIain Hallam */ 17812a20f7SIain Hallam protected $column; 18812a20f7SIain Hallam 19d90aa848SAndreas Gohr /** @inheritdoc */ 20812a20f7SIain Hallam public function __construct($id, $mode, \Doku_Renderer $renderer, SearchConfig $searchConfig) 21812a20f7SIain Hallam { 22812a20f7SIain Hallam // limit to first result 23d90aa848SAndreas Gohr $searchConfig->setLimit(1); 24d90aa848SAndreas Gohr $searchConfig->setOffset(0); 25812a20f7SIain Hallam 26d90aa848SAndreas Gohr parent::__construct($id, $mode, $renderer, $searchConfig); 27812a20f7SIain Hallam } 28812a20f7SIain Hallam 29812a20f7SIain Hallam /** 30812a20f7SIain Hallam * Create the output on the renderer 31812a20f7SIain Hallam * 32812a20f7SIain Hallam * @param int $show_not_found Whether to display the default text for no records 33812a20f7SIain Hallam */ 34812a20f7SIain Hallam public function render($show_not_found = 0) 35812a20f7SIain Hallam { 36812a20f7SIain Hallam // Check that we actually got a result 37812a20f7SIain Hallam if ($this->resultCount) { 38*7234bfb1Ssplitbrain $this->renderValue($this->result[0]); 39*7234bfb1Ssplitbrain // only one result 40*7234bfb1Ssplitbrain } elseif ($show_not_found) { 41812a20f7SIain Hallam $this->renderer->cdata($this->helper->getLang('none')); 42812a20f7SIain Hallam } 43812a20f7SIain Hallam } 44812a20f7SIain Hallam 45812a20f7SIain Hallam /** 46d90aa848SAndreas Gohr * @param Value[] $resultrow 47812a20f7SIain Hallam */ 48812a20f7SIain Hallam protected function renderValue($resultrow) 49812a20f7SIain Hallam { 50*7234bfb1Ssplitbrain foreach ($resultrow as $value) { 51812a20f7SIain Hallam if ($value->isEmpty()) { 52812a20f7SIain Hallam continue; 53812a20f7SIain Hallam } 54812a20f7SIain Hallam if ($this->mode == 'xhtml') { 55812a20f7SIain Hallam $type = 'struct_' . strtolower($value->getColumn()->getType()->getClass()); 56812a20f7SIain Hallam $this->renderer->doc .= '<span class="' . $type . '">'; 57812a20f7SIain Hallam } 58812a20f7SIain Hallam $value->render($this->renderer, $this->mode); 59812a20f7SIain Hallam if ($this->mode == 'xhtml') { 60812a20f7SIain Hallam $this->renderer->doc .= '</span>'; 61812a20f7SIain Hallam } 62812a20f7SIain Hallam } 63812a20f7SIain Hallam } 64812a20f7SIain Hallam} 65