xref: /plugin/struct/meta/SummaryColumn.php (revision 88b58a212b1e27877882d9dad769a4d01cffdde4)
1*88b58a21SSzymon Olewniczak<?php
2*88b58a21SSzymon Olewniczak
3*88b58a21SSzymon Olewniczaknamespace dokuwiki\plugin\struct\meta;
4*88b58a21SSzymon Olewniczak
5*88b58a21SSzymon Olewniczakuse dokuwiki\plugin\struct\types\AbstractBaseType;
6*88b58a21SSzymon Olewniczakuse dokuwiki\plugin\struct\types\Summary;
7*88b58a21SSzymon Olewniczak
8*88b58a21SSzymon Olewniczak/**
9*88b58a21SSzymon Olewniczak * Class SummaryColumn
10*88b58a21SSzymon Olewniczak *
11*88b58a21SSzymon Olewniczak * Just like a column, but does not reference one of the col* data columns but the pid column.
12*88b58a21SSzymon Olewniczak *
13*88b58a21SSzymon Olewniczak * @package dokuwiki\plugin\struct\meta
14*88b58a21SSzymon Olewniczak */
15*88b58a21SSzymon Olewniczakclass SummaryColumn extends Column {
16*88b58a21SSzymon Olewniczak
17*88b58a21SSzymon Olewniczak    /**
18*88b58a21SSzymon Olewniczak     * PageColumn constructor.
19*88b58a21SSzymon Olewniczak     *
20*88b58a21SSzymon Olewniczak     * @param int $sort
21*88b58a21SSzymon Olewniczak     * @param PageMeta $type
22*88b58a21SSzymon Olewniczak     * @param string $table
23*88b58a21SSzymon Olewniczak     */
24*88b58a21SSzymon Olewniczak    public function __construct($sort, Summary $type, $table='') {
25*88b58a21SSzymon Olewniczak        if($type->isMulti()) throw new StructException('SummaryColumns can not be multi value types!');
26*88b58a21SSzymon Olewniczak        parent::__construct($sort, $type, 0, true, $table);
27*88b58a21SSzymon Olewniczak        $this->getType()->setContext($this);
28*88b58a21SSzymon Olewniczak    }
29*88b58a21SSzymon Olewniczak
30*88b58a21SSzymon Olewniczak    public function getColref() {
31*88b58a21SSzymon Olewniczak        throw new StructException('Accessing the colref of a SummaryColumn makes no sense');
32*88b58a21SSzymon Olewniczak    }
33*88b58a21SSzymon Olewniczak
34*88b58a21SSzymon Olewniczak    /**
35*88b58a21SSzymon Olewniczak     * @param bool $enforceSingleColumn ignored
36*88b58a21SSzymon Olewniczak     * @return string
37*88b58a21SSzymon Olewniczak     */
38*88b58a21SSzymon Olewniczak    public function getColName($enforceSingleColumn = true) {
39*88b58a21SSzymon Olewniczak        return 'lastsummary';
40*88b58a21SSzymon Olewniczak    }
41*88b58a21SSzymon Olewniczak
42*88b58a21SSzymon Olewniczak    /**
43*88b58a21SSzymon Olewniczak     * @param bool $enforceSingleColumn ignored
44*88b58a21SSzymon Olewniczak     * @return string
45*88b58a21SSzymon Olewniczak     */
46*88b58a21SSzymon Olewniczak    public function getFullColName($enforceSingleColumn = true) {
47*88b58a21SSzymon Olewniczak        $col = 'titles.'.$this->getColName($enforceSingleColumn);
48*88b58a21SSzymon Olewniczak        return $col;
49*88b58a21SSzymon Olewniczak    }
50*88b58a21SSzymon Olewniczak
51*88b58a21SSzymon Olewniczak    /**
52*88b58a21SSzymon Olewniczak     * @return string always '%lastsummary%'
53*88b58a21SSzymon Olewniczak     */
54*88b58a21SSzymon Olewniczak    public function getLabel() {
55*88b58a21SSzymon Olewniczak        return '%lastsummary%';
56*88b58a21SSzymon Olewniczak    }
57*88b58a21SSzymon Olewniczak
58*88b58a21SSzymon Olewniczak    /**
59*88b58a21SSzymon Olewniczak     * @return string always '%lastsummary%'
60*88b58a21SSzymon Olewniczak     */
61*88b58a21SSzymon Olewniczak    public function getFullQualifiedLabel() {
62*88b58a21SSzymon Olewniczak        // There is only one pageid for each row because we JOIN on it
63*88b58a21SSzymon Olewniczak        // so we do not prefix it with the table
64*88b58a21SSzymon Olewniczak        return $this->getLabel();
65*88b58a21SSzymon Olewniczak    }
66*88b58a21SSzymon Olewniczak
67*88b58a21SSzymon Olewniczak    /**
68*88b58a21SSzymon Olewniczak     * @return string preconfigured label
69*88b58a21SSzymon Olewniczak     */
70*88b58a21SSzymon Olewniczak    public function getTranslatedLabel() {
71*88b58a21SSzymon Olewniczak        /** @var \helper_plugin_struct_config $helper */
72*88b58a21SSzymon Olewniczak        $helper = plugin_load('helper', 'struct_config');
73*88b58a21SSzymon Olewniczak        return $helper->getLang('summarylabel');
74*88b58a21SSzymon Olewniczak    }
75*88b58a21SSzymon Olewniczak
76*88b58a21SSzymon Olewniczak}
77