10561158fSAndreas Gohr<?php 20561158fSAndreas Gohr 3ba766201SAndreas Gohrnamespace dokuwiki\plugin\struct\meta; 40561158fSAndreas Gohr 5ba766201SAndreas Gohruse dokuwiki\plugin\struct\types\AbstractBaseType; 60561158fSAndreas Gohr 70561158fSAndreas Gohr/** 80561158fSAndreas Gohr * Class PageColumn 90561158fSAndreas Gohr * 100561158fSAndreas Gohr * Just like a column, but does not reference one of the col* data columns but the pid column. 110561158fSAndreas Gohr * 12ba766201SAndreas Gohr * @package dokuwiki\plugin\struct\meta 130561158fSAndreas Gohr */ 140561158fSAndreas Gohrclass PageColumn extends Column { 150561158fSAndreas Gohr 160561158fSAndreas Gohr /** 170561158fSAndreas Gohr * PageColumn constructor. 180561158fSAndreas Gohr * 190561158fSAndreas Gohr * @param int $sort 200561158fSAndreas Gohr * @param AbstractBaseType $type This should be Page or Title 210561158fSAndreas Gohr * @param string $table 220561158fSAndreas Gohr */ 230561158fSAndreas Gohr public function __construct($sort, AbstractBaseType $type, $table='') { 245b2d2a8cSAndreas Gohr if($type->isMulti()) throw new StructException('PageColumns can not be multi value types!'); 250561158fSAndreas Gohr parent::__construct($sort, $type, 0, true, $table); 260561158fSAndreas Gohr } 270561158fSAndreas Gohr 280561158fSAndreas Gohr public function getColref() { 290561158fSAndreas Gohr throw new StructException('Accessing the colref of a PageColumn makes no sense'); 300561158fSAndreas Gohr } 310561158fSAndreas Gohr 32d1b04e89SAndreas Gohr /** 33*066fcfb7SMichael Grosse * @param bool $forceSingleColumn ignored 34d1b04e89SAndreas Gohr * @return string 35d1b04e89SAndreas Gohr */ 36*066fcfb7SMichael Grosse public function getColName($forceSingleColumn = true) { 37d1b04e89SAndreas Gohr $col = 'pid'; 385b2d2a8cSAndreas Gohr if($this->table) $col = 'data_'.$this->table.'.'.$col; 39d1b04e89SAndreas Gohr return $col; 40d1b04e89SAndreas Gohr } 41d1b04e89SAndreas Gohr 429447008bSAndreas Gohr /** 439447008bSAndreas Gohr * @return string always '%pageid%' 449447008bSAndreas Gohr */ 459447008bSAndreas Gohr public function getLabel() { 469447008bSAndreas Gohr return '%pageid%'; 479447008bSAndreas Gohr } 489447008bSAndreas Gohr 49c74e0e40SAndreas Gohr /** 50c74e0e40SAndreas Gohr * @return string always '%pageid%' 51c74e0e40SAndreas Gohr */ 52c74e0e40SAndreas Gohr public function getFullQualifiedLabel() { 53c74e0e40SAndreas Gohr // There is only one pageid for each row because we JOIN on it 54c74e0e40SAndreas Gohr // so we do not prefix it with the table 55c74e0e40SAndreas Gohr return '%pageid%'; 56c74e0e40SAndreas Gohr } 57c74e0e40SAndreas Gohr 580561158fSAndreas Gohr} 59