188b58a21SSzymon Olewniczak<?php 288b58a21SSzymon Olewniczak 388b58a21SSzymon Olewniczaknamespace dokuwiki\plugin\struct\meta; 488b58a21SSzymon Olewniczak 588b58a21SSzymon Olewniczakuse dokuwiki\plugin\struct\types\AbstractBaseType; 66781c68dSSzymon 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 */ 15*d6d97f60SAnna Dabrowskaclass SummaryColumn extends Column 16*d6d97f60SAnna Dabrowska{ 1788b58a21SSzymon Olewniczak 1888b58a21SSzymon Olewniczak /** 1988b58a21SSzymon Olewniczak * PageColumn constructor. 2088b58a21SSzymon Olewniczak * 2188b58a21SSzymon Olewniczak * @param int $sort 2288b58a21SSzymon Olewniczak * @param PageMeta $type 2388b58a21SSzymon Olewniczak * @param string $table 2488b58a21SSzymon Olewniczak */ 25*d6d97f60SAnna Dabrowska public function __construct($sort, AutoSummary $type, $table = '') 26*d6d97f60SAnna Dabrowska { 2788b58a21SSzymon Olewniczak if ($type->isMulti()) throw new StructException('SummaryColumns can not be multi value types!'); 2888b58a21SSzymon Olewniczak parent::__construct($sort, $type, 0, true, $table); 2988b58a21SSzymon Olewniczak $this->getType()->setContext($this); 3088b58a21SSzymon Olewniczak } 3188b58a21SSzymon Olewniczak 32*d6d97f60SAnna Dabrowska public function getColref() 33*d6d97f60SAnna Dabrowska { 3488b58a21SSzymon Olewniczak throw new StructException('Accessing the colref of a SummaryColumn makes no sense'); 3588b58a21SSzymon Olewniczak } 3688b58a21SSzymon Olewniczak 3788b58a21SSzymon Olewniczak /** 3888b58a21SSzymon Olewniczak * @param bool $enforceSingleColumn ignored 3988b58a21SSzymon Olewniczak * @return string 4088b58a21SSzymon Olewniczak */ 41*d6d97f60SAnna Dabrowska public function getColName($enforceSingleColumn = true) 42*d6d97f60SAnna Dabrowska { 4388b58a21SSzymon Olewniczak return 'lastsummary'; 4488b58a21SSzymon Olewniczak } 4588b58a21SSzymon Olewniczak 4688b58a21SSzymon Olewniczak /** 4788b58a21SSzymon Olewniczak * @param bool $enforceSingleColumn ignored 4888b58a21SSzymon Olewniczak * @return string 4988b58a21SSzymon Olewniczak */ 50*d6d97f60SAnna Dabrowska public function getFullColName($enforceSingleColumn = true) 51*d6d97f60SAnna Dabrowska { 5288b58a21SSzymon Olewniczak $col = 'titles.' . $this->getColName($enforceSingleColumn); 5388b58a21SSzymon Olewniczak return $col; 5488b58a21SSzymon Olewniczak } 5588b58a21SSzymon Olewniczak 5688b58a21SSzymon Olewniczak /** 5788b58a21SSzymon Olewniczak * @return string always '%lastsummary%' 5888b58a21SSzymon Olewniczak */ 59*d6d97f60SAnna Dabrowska public function getLabel() 60*d6d97f60SAnna Dabrowska { 6188b58a21SSzymon Olewniczak return '%lastsummary%'; 6288b58a21SSzymon Olewniczak } 6388b58a21SSzymon Olewniczak 6488b58a21SSzymon Olewniczak /** 6588b58a21SSzymon Olewniczak * @return string always '%lastsummary%' 6688b58a21SSzymon Olewniczak */ 67*d6d97f60SAnna Dabrowska public function getFullQualifiedLabel() 68*d6d97f60SAnna Dabrowska { 6988b58a21SSzymon Olewniczak // There is only one pageid for each row because we JOIN on it 7088b58a21SSzymon Olewniczak // so we do not prefix it with the table 7188b58a21SSzymon Olewniczak return $this->getLabel(); 7288b58a21SSzymon Olewniczak } 7388b58a21SSzymon Olewniczak 7488b58a21SSzymon Olewniczak /** 7588b58a21SSzymon Olewniczak * @return string preconfigured label 7688b58a21SSzymon Olewniczak */ 77*d6d97f60SAnna Dabrowska public function getTranslatedLabel() 78*d6d97f60SAnna Dabrowska { 7988b58a21SSzymon Olewniczak /** @var \helper_plugin_struct_config $helper */ 8088b58a21SSzymon Olewniczak $helper = plugin_load('helper', 'struct_config'); 8188b58a21SSzymon Olewniczak return $helper->getLang('summarylabel'); 8288b58a21SSzymon Olewniczak } 8388b58a21SSzymon Olewniczak} 84