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 * 10*17a3a578SAndreas Gohr * Just like a column, but does not reference one of the col* data columns 11*17a3a578SAndreas Gohr * but the lasteditor column in the titles table. 122e12ac22SMichael Grosse * 132e12ac22SMichael Grosse * @package dokuwiki\plugin\struct\meta 142e12ac22SMichael Grosse */ 15d6d97f60SAnna Dabrowskaclass UserColumn extends Column 16d6d97f60SAnna Dabrowska{ 172e12ac22SMichael Grosse /** 182e12ac22SMichael Grosse * PageColumn constructor. 192e12ac22SMichael Grosse * 202e12ac22SMichael Grosse * @param int $sort 21eb230f4fSMichael Grosse * @param User $type 222e12ac22SMichael Grosse * @param string $table 232e12ac22SMichael Grosse */ 24d6d97f60SAnna Dabrowska public function __construct($sort, User $type, $table = '') 25d6d97f60SAnna Dabrowska { 262e12ac22SMichael Grosse if ($type->isMulti()) throw new StructException('UserColumns can not be multi value types!'); 272e12ac22SMichael Grosse parent::__construct($sort, $type, 0, true, $table); 282e12ac22SMichael Grosse $this->getType()->setContext($this); 292e12ac22SMichael Grosse } 302e12ac22SMichael Grosse 31d6d97f60SAnna Dabrowska public function getColref() 32d6d97f60SAnna Dabrowska { 332e12ac22SMichael Grosse throw new StructException('Accessing the colref of a UserColumn makes no sense'); 342e12ac22SMichael Grosse } 352e12ac22SMichael Grosse 362e12ac22SMichael Grosse /** 372e12ac22SMichael Grosse * @param bool $enforceSingleColumn ignored 382e12ac22SMichael Grosse * @return string 392e12ac22SMichael Grosse */ 40d6d97f60SAnna Dabrowska public function getColName($enforceSingleColumn = true) 41d6d97f60SAnna Dabrowska { 422e12ac22SMichael Grosse return 'lasteditor'; 432e12ac22SMichael Grosse } 442e12ac22SMichael Grosse 452e12ac22SMichael Grosse /** 462e12ac22SMichael Grosse * @param bool $enforceSingleColumn ignored 472e12ac22SMichael Grosse * @return string 482e12ac22SMichael Grosse */ 49d6d97f60SAnna Dabrowska public function getFullColName($enforceSingleColumn = true) 50d6d97f60SAnna Dabrowska { 512e12ac22SMichael Grosse $col = 'titles.' . $this->getColName($enforceSingleColumn); 522e12ac22SMichael Grosse return $col; 532e12ac22SMichael Grosse } 542e12ac22SMichael Grosse 552e12ac22SMichael Grosse /** 56eb230f4fSMichael Grosse * @return string always '%lasteditor%' 572e12ac22SMichael Grosse */ 58d6d97f60SAnna Dabrowska public function getLabel() 59d6d97f60SAnna Dabrowska { 602e12ac22SMichael Grosse return '%lasteditor%'; 612e12ac22SMichael Grosse } 622e12ac22SMichael Grosse 632e12ac22SMichael Grosse /** 64eb230f4fSMichael Grosse * @return string always '%lasteditor%' 652e12ac22SMichael Grosse */ 66d6d97f60SAnna Dabrowska public function getFullQualifiedLabel() 67d6d97f60SAnna Dabrowska { 682e12ac22SMichael Grosse // There is only one pageid for each row because we JOIN on it 692e12ac22SMichael Grosse // so we do not prefix it with the table 702e12ac22SMichael Grosse return $this->getLabel(); 712e12ac22SMichael Grosse } 722e12ac22SMichael Grosse 732e12ac22SMichael Grosse /** 742e12ac22SMichael Grosse * @return string preconfigured label 752e12ac22SMichael Grosse */ 76d6d97f60SAnna Dabrowska public function getTranslatedLabel() 77d6d97f60SAnna Dabrowska { 782e12ac22SMichael Grosse /** @var \helper_plugin_struct_config $helper */ 792e12ac22SMichael Grosse $helper = plugin_load('helper', 'struct_config'); 802e12ac22SMichael Grosse return $helper->getLang('userlabel'); 812e12ac22SMichael Grosse } 822e12ac22SMichael Grosse} 83