188b58a21SSzymon Olewniczak<?php 288b58a21SSzymon Olewniczak 388b58a21SSzymon Olewniczaknamespace dokuwiki\plugin\struct\meta; 488b58a21SSzymon Olewniczak 588b58a21SSzymon Olewniczakuse dokuwiki\plugin\struct\types\AbstractBaseType; 6*6781c68dSSzymon Olewniczakuse dokuwiki\plugin\struct\types\AutoSummary; 788b58a21SSzymon Olewniczak 888b58a21SSzymon Olewniczak/** 988b58a21SSzymon Olewniczak * Class SummaryColumn 1088b58a21SSzymon Olewniczak * 1188b58a21SSzymon Olewniczak * Just like a column, but does not reference one of the col* data columns but the pid column. 1288b58a21SSzymon Olewniczak * 1388b58a21SSzymon Olewniczak * @package dokuwiki\plugin\struct\meta 1488b58a21SSzymon Olewniczak */ 1588b58a21SSzymon Olewniczakclass SummaryColumn extends Column { 1688b58a21SSzymon Olewniczak 1788b58a21SSzymon Olewniczak /** 1888b58a21SSzymon Olewniczak * PageColumn constructor. 1988b58a21SSzymon Olewniczak * 2088b58a21SSzymon Olewniczak * @param int $sort 2188b58a21SSzymon Olewniczak * @param PageMeta $type 2288b58a21SSzymon Olewniczak * @param string $table 2388b58a21SSzymon Olewniczak */ 24*6781c68dSSzymon Olewniczak public function __construct($sort, AutoSummary $type, $table='') { 2588b58a21SSzymon Olewniczak if($type->isMulti()) throw new StructException('SummaryColumns can not be multi value types!'); 2688b58a21SSzymon Olewniczak parent::__construct($sort, $type, 0, true, $table); 2788b58a21SSzymon Olewniczak $this->getType()->setContext($this); 2888b58a21SSzymon Olewniczak } 2988b58a21SSzymon Olewniczak 3088b58a21SSzymon Olewniczak public function getColref() { 3188b58a21SSzymon Olewniczak throw new StructException('Accessing the colref of a SummaryColumn makes no sense'); 3288b58a21SSzymon Olewniczak } 3388b58a21SSzymon Olewniczak 3488b58a21SSzymon Olewniczak /** 3588b58a21SSzymon Olewniczak * @param bool $enforceSingleColumn ignored 3688b58a21SSzymon Olewniczak * @return string 3788b58a21SSzymon Olewniczak */ 3888b58a21SSzymon Olewniczak public function getColName($enforceSingleColumn = true) { 3988b58a21SSzymon Olewniczak return 'lastsummary'; 4088b58a21SSzymon Olewniczak } 4188b58a21SSzymon Olewniczak 4288b58a21SSzymon Olewniczak /** 4388b58a21SSzymon Olewniczak * @param bool $enforceSingleColumn ignored 4488b58a21SSzymon Olewniczak * @return string 4588b58a21SSzymon Olewniczak */ 4688b58a21SSzymon Olewniczak public function getFullColName($enforceSingleColumn = true) { 4788b58a21SSzymon Olewniczak $col = 'titles.'.$this->getColName($enforceSingleColumn); 4888b58a21SSzymon Olewniczak return $col; 4988b58a21SSzymon Olewniczak } 5088b58a21SSzymon Olewniczak 5188b58a21SSzymon Olewniczak /** 5288b58a21SSzymon Olewniczak * @return string always '%lastsummary%' 5388b58a21SSzymon Olewniczak */ 5488b58a21SSzymon Olewniczak public function getLabel() { 5588b58a21SSzymon Olewniczak return '%lastsummary%'; 5688b58a21SSzymon Olewniczak } 5788b58a21SSzymon Olewniczak 5888b58a21SSzymon Olewniczak /** 5988b58a21SSzymon Olewniczak * @return string always '%lastsummary%' 6088b58a21SSzymon Olewniczak */ 6188b58a21SSzymon Olewniczak public function getFullQualifiedLabel() { 6288b58a21SSzymon Olewniczak // There is only one pageid for each row because we JOIN on it 6388b58a21SSzymon Olewniczak // so we do not prefix it with the table 6488b58a21SSzymon Olewniczak return $this->getLabel(); 6588b58a21SSzymon Olewniczak } 6688b58a21SSzymon Olewniczak 6788b58a21SSzymon Olewniczak /** 6888b58a21SSzymon Olewniczak * @return string preconfigured label 6988b58a21SSzymon Olewniczak */ 7088b58a21SSzymon Olewniczak public function getTranslatedLabel() { 7188b58a21SSzymon Olewniczak /** @var \helper_plugin_struct_config $helper */ 7288b58a21SSzymon Olewniczak $helper = plugin_load('helper', 'struct_config'); 7388b58a21SSzymon Olewniczak return $helper->getLang('summarylabel'); 7488b58a21SSzymon Olewniczak } 7588b58a21SSzymon Olewniczak 7688b58a21SSzymon Olewniczak} 77