188b58a21SSzymon Olewniczak<?php 288b58a21SSzymon Olewniczak 388b58a21SSzymon Olewniczaknamespace dokuwiki\plugin\struct\meta; 488b58a21SSzymon Olewniczak 56781c68dSSzymon Olewniczakuse dokuwiki\plugin\struct\types\AutoSummary; 688b58a21SSzymon Olewniczak 788b58a21SSzymon Olewniczak/** 888b58a21SSzymon Olewniczak * Class SummaryColumn 988b58a21SSzymon Olewniczak * 1088b58a21SSzymon Olewniczak * Just like a column, but does not reference one of the col* data columns but the pid column. 1188b58a21SSzymon Olewniczak * 1288b58a21SSzymon Olewniczak * @package dokuwiki\plugin\struct\meta 1388b58a21SSzymon Olewniczak */ 14*d6d97f60SAnna Dabrowskaclass SummaryColumn extends Column 15*d6d97f60SAnna Dabrowska{ 1688b58a21SSzymon Olewniczak /** 1788b58a21SSzymon Olewniczak * PageColumn constructor. 1888b58a21SSzymon Olewniczak * 1988b58a21SSzymon Olewniczak * @param int $sort 2088b58a21SSzymon Olewniczak * @param PageMeta $type 2188b58a21SSzymon Olewniczak * @param string $table 2288b58a21SSzymon Olewniczak */ 23*d6d97f60SAnna Dabrowska public function __construct($sort, AutoSummary $type, $table = '') 24*d6d97f60SAnna Dabrowska { 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 30*d6d97f60SAnna Dabrowska public function getColref() 31*d6d97f60SAnna Dabrowska { 3288b58a21SSzymon Olewniczak throw new StructException('Accessing the colref of a SummaryColumn makes no sense'); 3388b58a21SSzymon Olewniczak } 3488b58a21SSzymon Olewniczak 3588b58a21SSzymon Olewniczak /** 3688b58a21SSzymon Olewniczak * @param bool $enforceSingleColumn ignored 3788b58a21SSzymon Olewniczak * @return string 3888b58a21SSzymon Olewniczak */ 39*d6d97f60SAnna Dabrowska public function getColName($enforceSingleColumn = true) 40*d6d97f60SAnna Dabrowska { 4188b58a21SSzymon Olewniczak return 'lastsummary'; 4288b58a21SSzymon Olewniczak } 4388b58a21SSzymon Olewniczak 4488b58a21SSzymon Olewniczak /** 4588b58a21SSzymon Olewniczak * @param bool $enforceSingleColumn ignored 4688b58a21SSzymon Olewniczak * @return string 4788b58a21SSzymon Olewniczak */ 48*d6d97f60SAnna Dabrowska public function getFullColName($enforceSingleColumn = true) 49*d6d97f60SAnna Dabrowska { 5088b58a21SSzymon Olewniczak $col = 'titles.' . $this->getColName($enforceSingleColumn); 5188b58a21SSzymon Olewniczak return $col; 5288b58a21SSzymon Olewniczak } 5388b58a21SSzymon Olewniczak 5488b58a21SSzymon Olewniczak /** 5588b58a21SSzymon Olewniczak * @return string always '%lastsummary%' 5688b58a21SSzymon Olewniczak */ 57*d6d97f60SAnna Dabrowska public function getLabel() 58*d6d97f60SAnna Dabrowska { 5988b58a21SSzymon Olewniczak return '%lastsummary%'; 6088b58a21SSzymon Olewniczak } 6188b58a21SSzymon Olewniczak 6288b58a21SSzymon Olewniczak /** 6388b58a21SSzymon Olewniczak * @return string always '%lastsummary%' 6488b58a21SSzymon Olewniczak */ 65*d6d97f60SAnna Dabrowska public function getFullQualifiedLabel() 66*d6d97f60SAnna Dabrowska { 6788b58a21SSzymon Olewniczak // There is only one pageid for each row because we JOIN on it 6888b58a21SSzymon Olewniczak // so we do not prefix it with the table 6988b58a21SSzymon Olewniczak return $this->getLabel(); 7088b58a21SSzymon Olewniczak } 7188b58a21SSzymon Olewniczak 7288b58a21SSzymon Olewniczak /** 7388b58a21SSzymon Olewniczak * @return string preconfigured label 7488b58a21SSzymon Olewniczak */ 75*d6d97f60SAnna Dabrowska public function getTranslatedLabel() 76*d6d97f60SAnna Dabrowska { 7788b58a21SSzymon Olewniczak /** @var \helper_plugin_struct_config $helper */ 7888b58a21SSzymon Olewniczak $helper = plugin_load('helper', 'struct_config'); 7988b58a21SSzymon Olewniczak return $helper->getLang('summarylabel'); 8088b58a21SSzymon Olewniczak } 8188b58a21SSzymon Olewniczak} 82