10561158fSAndreas Gohr<?php 20561158fSAndreas Gohr 3*ba766201SAndreas Gohrnamespace dokuwiki\plugin\struct\meta; 40561158fSAndreas Gohr 5*ba766201SAndreas 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 * 12*ba766201SAndreas 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 /** 33d1b04e89SAndreas Gohr * @return string 34d1b04e89SAndreas Gohr */ 35d1b04e89SAndreas Gohr public function getColName() { 36d1b04e89SAndreas Gohr $col = 'pid'; 375b2d2a8cSAndreas Gohr if($this->table) $col = 'data_'.$this->table.'.'.$col; 38d1b04e89SAndreas Gohr return $col; 39d1b04e89SAndreas Gohr } 40d1b04e89SAndreas Gohr 419447008bSAndreas Gohr /** 429447008bSAndreas Gohr * @return string always '%pageid%' 439447008bSAndreas Gohr */ 449447008bSAndreas Gohr public function getLabel() { 459447008bSAndreas Gohr return '%pageid%'; 469447008bSAndreas Gohr } 479447008bSAndreas Gohr 48c74e0e40SAndreas Gohr /** 49c74e0e40SAndreas Gohr * @return string always '%pageid%' 50c74e0e40SAndreas Gohr */ 51c74e0e40SAndreas Gohr public function getFullQualifiedLabel() { 52c74e0e40SAndreas Gohr // There is only one pageid for each row because we JOIN on it 53c74e0e40SAndreas Gohr // so we do not prefix it with the table 54c74e0e40SAndreas Gohr return '%pageid%'; 55c74e0e40SAndreas Gohr } 56c74e0e40SAndreas Gohr 570561158fSAndreas Gohr} 58