1*88b58a21SSzymon Olewniczak<?php 2*88b58a21SSzymon Olewniczak 3*88b58a21SSzymon Olewniczaknamespace dokuwiki\plugin\struct\meta; 4*88b58a21SSzymon Olewniczak 5*88b58a21SSzymon Olewniczakuse dokuwiki\plugin\struct\types\AbstractBaseType; 6*88b58a21SSzymon Olewniczakuse dokuwiki\plugin\struct\types\Summary; 7*88b58a21SSzymon Olewniczak 8*88b58a21SSzymon Olewniczak/** 9*88b58a21SSzymon Olewniczak * Class SummaryColumn 10*88b58a21SSzymon Olewniczak * 11*88b58a21SSzymon Olewniczak * Just like a column, but does not reference one of the col* data columns but the pid column. 12*88b58a21SSzymon Olewniczak * 13*88b58a21SSzymon Olewniczak * @package dokuwiki\plugin\struct\meta 14*88b58a21SSzymon Olewniczak */ 15*88b58a21SSzymon Olewniczakclass SummaryColumn extends Column { 16*88b58a21SSzymon Olewniczak 17*88b58a21SSzymon Olewniczak /** 18*88b58a21SSzymon Olewniczak * PageColumn constructor. 19*88b58a21SSzymon Olewniczak * 20*88b58a21SSzymon Olewniczak * @param int $sort 21*88b58a21SSzymon Olewniczak * @param PageMeta $type 22*88b58a21SSzymon Olewniczak * @param string $table 23*88b58a21SSzymon Olewniczak */ 24*88b58a21SSzymon Olewniczak public function __construct($sort, Summary $type, $table='') { 25*88b58a21SSzymon Olewniczak if($type->isMulti()) throw new StructException('SummaryColumns can not be multi value types!'); 26*88b58a21SSzymon Olewniczak parent::__construct($sort, $type, 0, true, $table); 27*88b58a21SSzymon Olewniczak $this->getType()->setContext($this); 28*88b58a21SSzymon Olewniczak } 29*88b58a21SSzymon Olewniczak 30*88b58a21SSzymon Olewniczak public function getColref() { 31*88b58a21SSzymon Olewniczak throw new StructException('Accessing the colref of a SummaryColumn makes no sense'); 32*88b58a21SSzymon Olewniczak } 33*88b58a21SSzymon Olewniczak 34*88b58a21SSzymon Olewniczak /** 35*88b58a21SSzymon Olewniczak * @param bool $enforceSingleColumn ignored 36*88b58a21SSzymon Olewniczak * @return string 37*88b58a21SSzymon Olewniczak */ 38*88b58a21SSzymon Olewniczak public function getColName($enforceSingleColumn = true) { 39*88b58a21SSzymon Olewniczak return 'lastsummary'; 40*88b58a21SSzymon Olewniczak } 41*88b58a21SSzymon Olewniczak 42*88b58a21SSzymon Olewniczak /** 43*88b58a21SSzymon Olewniczak * @param bool $enforceSingleColumn ignored 44*88b58a21SSzymon Olewniczak * @return string 45*88b58a21SSzymon Olewniczak */ 46*88b58a21SSzymon Olewniczak public function getFullColName($enforceSingleColumn = true) { 47*88b58a21SSzymon Olewniczak $col = 'titles.'.$this->getColName($enforceSingleColumn); 48*88b58a21SSzymon Olewniczak return $col; 49*88b58a21SSzymon Olewniczak } 50*88b58a21SSzymon Olewniczak 51*88b58a21SSzymon Olewniczak /** 52*88b58a21SSzymon Olewniczak * @return string always '%lastsummary%' 53*88b58a21SSzymon Olewniczak */ 54*88b58a21SSzymon Olewniczak public function getLabel() { 55*88b58a21SSzymon Olewniczak return '%lastsummary%'; 56*88b58a21SSzymon Olewniczak } 57*88b58a21SSzymon Olewniczak 58*88b58a21SSzymon Olewniczak /** 59*88b58a21SSzymon Olewniczak * @return string always '%lastsummary%' 60*88b58a21SSzymon Olewniczak */ 61*88b58a21SSzymon Olewniczak public function getFullQualifiedLabel() { 62*88b58a21SSzymon Olewniczak // There is only one pageid for each row because we JOIN on it 63*88b58a21SSzymon Olewniczak // so we do not prefix it with the table 64*88b58a21SSzymon Olewniczak return $this->getLabel(); 65*88b58a21SSzymon Olewniczak } 66*88b58a21SSzymon Olewniczak 67*88b58a21SSzymon Olewniczak /** 68*88b58a21SSzymon Olewniczak * @return string preconfigured label 69*88b58a21SSzymon Olewniczak */ 70*88b58a21SSzymon Olewniczak public function getTranslatedLabel() { 71*88b58a21SSzymon Olewniczak /** @var \helper_plugin_struct_config $helper */ 72*88b58a21SSzymon Olewniczak $helper = plugin_load('helper', 'struct_config'); 73*88b58a21SSzymon Olewniczak return $helper->getLang('summarylabel'); 74*88b58a21SSzymon Olewniczak } 75*88b58a21SSzymon Olewniczak 76*88b58a21SSzymon Olewniczak} 77