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