12e12ac22SMichael Grosse<?php 22e12ac22SMichael Grosse 32e12ac22SMichael Grossenamespace dokuwiki\plugin\struct\meta; 42e12ac22SMichael Grosse 52e12ac22SMichael Grosseuse dokuwiki\plugin\struct\types\User; 62e12ac22SMichael Grosse 72e12ac22SMichael Grosse/** 82e12ac22SMichael Grosse * Class UserColumn 92e12ac22SMichael Grosse * 102e12ac22SMichael Grosse * Just like a column, but does not reference one of the col* data columns but the lasteditor column in the titles table. 112e12ac22SMichael Grosse * 122e12ac22SMichael Grosse * @package dokuwiki\plugin\struct\meta 132e12ac22SMichael Grosse */ 142e12ac22SMichael Grosseclass UserColumn extends Column { 152e12ac22SMichael Grosse 162e12ac22SMichael Grosse /** 172e12ac22SMichael Grosse * PageColumn constructor. 182e12ac22SMichael Grosse * 192e12ac22SMichael Grosse * @param int $sort 20*eb230f4fSMichael Grosse * @param User $type 212e12ac22SMichael Grosse * @param string $table 222e12ac22SMichael Grosse */ 232e12ac22SMichael Grosse public function __construct($sort, User $type, $table='') { 242e12ac22SMichael Grosse if($type->isMulti()) throw new StructException('UserColumns can not be multi value types!'); 252e12ac22SMichael Grosse parent::__construct($sort, $type, 0, true, $table); 262e12ac22SMichael Grosse $this->getType()->setContext($this); 272e12ac22SMichael Grosse } 282e12ac22SMichael Grosse 292e12ac22SMichael Grosse public function getColref() { 302e12ac22SMichael Grosse throw new StructException('Accessing the colref of a UserColumn makes no sense'); 312e12ac22SMichael Grosse } 322e12ac22SMichael Grosse 332e12ac22SMichael Grosse /** 342e12ac22SMichael Grosse * @param bool $enforceSingleColumn ignored 352e12ac22SMichael Grosse * @return string 362e12ac22SMichael Grosse */ 372e12ac22SMichael Grosse public function getColName($enforceSingleColumn = true) { 382e12ac22SMichael Grosse return 'lasteditor'; 392e12ac22SMichael Grosse } 402e12ac22SMichael Grosse 412e12ac22SMichael Grosse /** 422e12ac22SMichael Grosse * @param bool $enforceSingleColumn ignored 432e12ac22SMichael Grosse * @return string 442e12ac22SMichael Grosse */ 452e12ac22SMichael Grosse public function getFullColName($enforceSingleColumn = true) { 462e12ac22SMichael Grosse $col = 'titles.'.$this->getColName($enforceSingleColumn); 472e12ac22SMichael Grosse return $col; 482e12ac22SMichael Grosse } 492e12ac22SMichael Grosse 502e12ac22SMichael Grosse /** 51*eb230f4fSMichael Grosse * @return string always '%lasteditor%' 522e12ac22SMichael Grosse */ 532e12ac22SMichael Grosse public function getLabel() { 542e12ac22SMichael Grosse return '%lasteditor%'; 552e12ac22SMichael Grosse } 562e12ac22SMichael Grosse 572e12ac22SMichael Grosse /** 58*eb230f4fSMichael Grosse * @return string always '%lasteditor%' 592e12ac22SMichael Grosse */ 602e12ac22SMichael Grosse public function getFullQualifiedLabel() { 612e12ac22SMichael Grosse // There is only one pageid for each row because we JOIN on it 622e12ac22SMichael Grosse // so we do not prefix it with the table 632e12ac22SMichael Grosse return $this->getLabel(); 642e12ac22SMichael Grosse } 652e12ac22SMichael Grosse 662e12ac22SMichael Grosse /** 672e12ac22SMichael Grosse * @return string preconfigured label 682e12ac22SMichael Grosse */ 692e12ac22SMichael Grosse public function getTranslatedLabel() { 702e12ac22SMichael Grosse /** @var \helper_plugin_struct_config $helper */ 712e12ac22SMichael Grosse $helper = plugin_load('helper', 'struct_config'); 722e12ac22SMichael Grosse return $helper->getLang('userlabel'); 732e12ac22SMichael Grosse } 742e12ac22SMichael Grosse 752e12ac22SMichael Grosse} 76