xref: /plugin/struct/meta/SummaryColumn.php (revision 0549dcc5bc88d4f9d923acdd09931d8d51be7097)
188b58a21SSzymon Olewniczak<?php
288b58a21SSzymon Olewniczak
388b58a21SSzymon Olewniczaknamespace dokuwiki\plugin\struct\meta;
488b58a21SSzymon Olewniczak
56781c68dSSzymon Olewniczakuse dokuwiki\plugin\struct\types\AutoSummary;
688b58a21SSzymon Olewniczak
788b58a21SSzymon Olewniczak/**
888b58a21SSzymon Olewniczak * Class SummaryColumn
988b58a21SSzymon Olewniczak *
1088b58a21SSzymon Olewniczak * Just like a column, but does not reference one of the col* data columns but the pid column.
1188b58a21SSzymon Olewniczak *
1288b58a21SSzymon Olewniczak * @package dokuwiki\plugin\struct\meta
1388b58a21SSzymon Olewniczak */
14*d6d97f60SAnna Dabrowskaclass SummaryColumn extends Column
15*d6d97f60SAnna Dabrowska{
1688b58a21SSzymon Olewniczak    /**
1788b58a21SSzymon Olewniczak     * PageColumn constructor.
1888b58a21SSzymon Olewniczak     *
1988b58a21SSzymon Olewniczak     * @param int $sort
2088b58a21SSzymon Olewniczak     * @param PageMeta $type
2188b58a21SSzymon Olewniczak     * @param string $table
2288b58a21SSzymon Olewniczak     */
23*d6d97f60SAnna Dabrowska    public function __construct($sort, AutoSummary $type, $table = '')
24*d6d97f60SAnna Dabrowska    {
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
30*d6d97f60SAnna Dabrowska    public function getColref()
31*d6d97f60SAnna Dabrowska    {
3288b58a21SSzymon Olewniczak        throw new StructException('Accessing the colref of a SummaryColumn makes no sense');
3388b58a21SSzymon Olewniczak    }
3488b58a21SSzymon Olewniczak
3588b58a21SSzymon Olewniczak    /**
3688b58a21SSzymon Olewniczak     * @param bool $enforceSingleColumn ignored
3788b58a21SSzymon Olewniczak     * @return string
3888b58a21SSzymon Olewniczak     */
39*d6d97f60SAnna Dabrowska    public function getColName($enforceSingleColumn = true)
40*d6d97f60SAnna Dabrowska    {
4188b58a21SSzymon Olewniczak        return 'lastsummary';
4288b58a21SSzymon Olewniczak    }
4388b58a21SSzymon Olewniczak
4488b58a21SSzymon Olewniczak    /**
4588b58a21SSzymon Olewniczak     * @param bool $enforceSingleColumn ignored
4688b58a21SSzymon Olewniczak     * @return string
4788b58a21SSzymon Olewniczak     */
48*d6d97f60SAnna Dabrowska    public function getFullColName($enforceSingleColumn = true)
49*d6d97f60SAnna Dabrowska    {
5088b58a21SSzymon Olewniczak        $col = 'titles.' . $this->getColName($enforceSingleColumn);
5188b58a21SSzymon Olewniczak        return $col;
5288b58a21SSzymon Olewniczak    }
5388b58a21SSzymon Olewniczak
5488b58a21SSzymon Olewniczak    /**
5588b58a21SSzymon Olewniczak     * @return string always '%lastsummary%'
5688b58a21SSzymon Olewniczak     */
57*d6d97f60SAnna Dabrowska    public function getLabel()
58*d6d97f60SAnna Dabrowska    {
5988b58a21SSzymon Olewniczak        return '%lastsummary%';
6088b58a21SSzymon Olewniczak    }
6188b58a21SSzymon Olewniczak
6288b58a21SSzymon Olewniczak    /**
6388b58a21SSzymon Olewniczak     * @return string always '%lastsummary%'
6488b58a21SSzymon Olewniczak     */
65*d6d97f60SAnna Dabrowska    public function getFullQualifiedLabel()
66*d6d97f60SAnna Dabrowska    {
6788b58a21SSzymon Olewniczak        // There is only one pageid for each row because we JOIN on it
6888b58a21SSzymon Olewniczak        // so we do not prefix it with the table
6988b58a21SSzymon Olewniczak        return $this->getLabel();
7088b58a21SSzymon Olewniczak    }
7188b58a21SSzymon Olewniczak
7288b58a21SSzymon Olewniczak    /**
7388b58a21SSzymon Olewniczak     * @return string preconfigured label
7488b58a21SSzymon Olewniczak     */
75*d6d97f60SAnna Dabrowska    public function getTranslatedLabel()
76*d6d97f60SAnna Dabrowska    {
7788b58a21SSzymon Olewniczak        /** @var \helper_plugin_struct_config $helper */
7888b58a21SSzymon Olewniczak        $helper = plugin_load('helper', 'struct_config');
7988b58a21SSzymon Olewniczak        return $helper->getLang('summarylabel');
8088b58a21SSzymon Olewniczak    }
8188b58a21SSzymon Olewniczak}
82