xref: /plugin/struct/meta/SummaryColumn.php (revision 6781c68df4ed55da041d3a27a8c778df7fdf3f9a)
188b58a21SSzymon Olewniczak<?php
288b58a21SSzymon Olewniczak
388b58a21SSzymon Olewniczaknamespace dokuwiki\plugin\struct\meta;
488b58a21SSzymon Olewniczak
588b58a21SSzymon Olewniczakuse dokuwiki\plugin\struct\types\AbstractBaseType;
6*6781c68dSSzymon Olewniczakuse dokuwiki\plugin\struct\types\AutoSummary;
788b58a21SSzymon Olewniczak
888b58a21SSzymon Olewniczak/**
988b58a21SSzymon Olewniczak * Class SummaryColumn
1088b58a21SSzymon Olewniczak *
1188b58a21SSzymon Olewniczak * Just like a column, but does not reference one of the col* data columns but the pid column.
1288b58a21SSzymon Olewniczak *
1388b58a21SSzymon Olewniczak * @package dokuwiki\plugin\struct\meta
1488b58a21SSzymon Olewniczak */
1588b58a21SSzymon Olewniczakclass SummaryColumn extends Column {
1688b58a21SSzymon Olewniczak
1788b58a21SSzymon Olewniczak    /**
1888b58a21SSzymon Olewniczak     * PageColumn constructor.
1988b58a21SSzymon Olewniczak     *
2088b58a21SSzymon Olewniczak     * @param int $sort
2188b58a21SSzymon Olewniczak     * @param PageMeta $type
2288b58a21SSzymon Olewniczak     * @param string $table
2388b58a21SSzymon Olewniczak     */
24*6781c68dSSzymon Olewniczak    public function __construct($sort, AutoSummary $type, $table='') {
2588b58a21SSzymon Olewniczak        if($type->isMulti()) throw new StructException('SummaryColumns can not be multi value types!');
2688b58a21SSzymon Olewniczak        parent::__construct($sort, $type, 0, true, $table);
2788b58a21SSzymon Olewniczak        $this->getType()->setContext($this);
2888b58a21SSzymon Olewniczak    }
2988b58a21SSzymon Olewniczak
3088b58a21SSzymon Olewniczak    public function getColref() {
3188b58a21SSzymon Olewniczak        throw new StructException('Accessing the colref of a SummaryColumn makes no sense');
3288b58a21SSzymon Olewniczak    }
3388b58a21SSzymon Olewniczak
3488b58a21SSzymon Olewniczak    /**
3588b58a21SSzymon Olewniczak     * @param bool $enforceSingleColumn ignored
3688b58a21SSzymon Olewniczak     * @return string
3788b58a21SSzymon Olewniczak     */
3888b58a21SSzymon Olewniczak    public function getColName($enforceSingleColumn = true) {
3988b58a21SSzymon Olewniczak        return 'lastsummary';
4088b58a21SSzymon Olewniczak    }
4188b58a21SSzymon Olewniczak
4288b58a21SSzymon Olewniczak    /**
4388b58a21SSzymon Olewniczak     * @param bool $enforceSingleColumn ignored
4488b58a21SSzymon Olewniczak     * @return string
4588b58a21SSzymon Olewniczak     */
4688b58a21SSzymon Olewniczak    public function getFullColName($enforceSingleColumn = true) {
4788b58a21SSzymon Olewniczak        $col = 'titles.'.$this->getColName($enforceSingleColumn);
4888b58a21SSzymon Olewniczak        return $col;
4988b58a21SSzymon Olewniczak    }
5088b58a21SSzymon Olewniczak
5188b58a21SSzymon Olewniczak    /**
5288b58a21SSzymon Olewniczak     * @return string always '%lastsummary%'
5388b58a21SSzymon Olewniczak     */
5488b58a21SSzymon Olewniczak    public function getLabel() {
5588b58a21SSzymon Olewniczak        return '%lastsummary%';
5688b58a21SSzymon Olewniczak    }
5788b58a21SSzymon Olewniczak
5888b58a21SSzymon Olewniczak    /**
5988b58a21SSzymon Olewniczak     * @return string always '%lastsummary%'
6088b58a21SSzymon Olewniczak     */
6188b58a21SSzymon Olewniczak    public function getFullQualifiedLabel() {
6288b58a21SSzymon Olewniczak        // There is only one pageid for each row because we JOIN on it
6388b58a21SSzymon Olewniczak        // so we do not prefix it with the table
6488b58a21SSzymon Olewniczak        return $this->getLabel();
6588b58a21SSzymon Olewniczak    }
6688b58a21SSzymon Olewniczak
6788b58a21SSzymon Olewniczak    /**
6888b58a21SSzymon Olewniczak     * @return string preconfigured label
6988b58a21SSzymon Olewniczak     */
7088b58a21SSzymon Olewniczak    public function getTranslatedLabel() {
7188b58a21SSzymon Olewniczak        /** @var \helper_plugin_struct_config $helper */
7288b58a21SSzymon Olewniczak        $helper = plugin_load('helper', 'struct_config');
7388b58a21SSzymon Olewniczak        return $helper->getLang('summarylabel');
7488b58a21SSzymon Olewniczak    }
7588b58a21SSzymon Olewniczak
7688b58a21SSzymon Olewniczak}
77