xref: /plugin/struct/meta/UserColumn.php (revision 17a3a5782666ca8742a2c64cc11565d4f9fe1076)
12e12ac22SMichael Grosse<?php
22e12ac22SMichael Grosse
32e12ac22SMichael Grossenamespace dokuwiki\plugin\struct\meta;
42e12ac22SMichael Grosse
52e12ac22SMichael Grosseuse dokuwiki\plugin\struct\types\User;
62e12ac22SMichael Grosse
72e12ac22SMichael Grosse/**
82e12ac22SMichael Grosse * Class UserColumn
92e12ac22SMichael Grosse *
10*17a3a578SAndreas Gohr * Just like a column, but does not reference one of the col* data columns
11*17a3a578SAndreas Gohr * but the lasteditor column in the titles table.
122e12ac22SMichael Grosse *
132e12ac22SMichael Grosse * @package dokuwiki\plugin\struct\meta
142e12ac22SMichael Grosse */
15d6d97f60SAnna Dabrowskaclass UserColumn extends Column
16d6d97f60SAnna Dabrowska{
172e12ac22SMichael Grosse    /**
182e12ac22SMichael Grosse     * PageColumn constructor.
192e12ac22SMichael Grosse     *
202e12ac22SMichael Grosse     * @param int $sort
21eb230f4fSMichael Grosse     * @param User $type
222e12ac22SMichael Grosse     * @param string $table
232e12ac22SMichael Grosse     */
24d6d97f60SAnna Dabrowska    public function __construct($sort, User $type, $table = '')
25d6d97f60SAnna Dabrowska    {
262e12ac22SMichael Grosse        if ($type->isMulti()) throw new StructException('UserColumns can not be multi value types!');
272e12ac22SMichael Grosse        parent::__construct($sort, $type, 0, true, $table);
282e12ac22SMichael Grosse        $this->getType()->setContext($this);
292e12ac22SMichael Grosse    }
302e12ac22SMichael Grosse
31d6d97f60SAnna Dabrowska    public function getColref()
32d6d97f60SAnna Dabrowska    {
332e12ac22SMichael Grosse        throw new StructException('Accessing the colref of a UserColumn makes no sense');
342e12ac22SMichael Grosse    }
352e12ac22SMichael Grosse
362e12ac22SMichael Grosse    /**
372e12ac22SMichael Grosse     * @param bool $enforceSingleColumn ignored
382e12ac22SMichael Grosse     * @return string
392e12ac22SMichael Grosse     */
40d6d97f60SAnna Dabrowska    public function getColName($enforceSingleColumn = true)
41d6d97f60SAnna Dabrowska    {
422e12ac22SMichael Grosse        return 'lasteditor';
432e12ac22SMichael Grosse    }
442e12ac22SMichael Grosse
452e12ac22SMichael Grosse    /**
462e12ac22SMichael Grosse     * @param bool $enforceSingleColumn ignored
472e12ac22SMichael Grosse     * @return string
482e12ac22SMichael Grosse     */
49d6d97f60SAnna Dabrowska    public function getFullColName($enforceSingleColumn = true)
50d6d97f60SAnna Dabrowska    {
512e12ac22SMichael Grosse        $col = 'titles.' . $this->getColName($enforceSingleColumn);
522e12ac22SMichael Grosse        return $col;
532e12ac22SMichael Grosse    }
542e12ac22SMichael Grosse
552e12ac22SMichael Grosse    /**
56eb230f4fSMichael Grosse     * @return string always '%lasteditor%'
572e12ac22SMichael Grosse     */
58d6d97f60SAnna Dabrowska    public function getLabel()
59d6d97f60SAnna Dabrowska    {
602e12ac22SMichael Grosse        return '%lasteditor%';
612e12ac22SMichael Grosse    }
622e12ac22SMichael Grosse
632e12ac22SMichael Grosse    /**
64eb230f4fSMichael Grosse     * @return string always '%lasteditor%'
652e12ac22SMichael Grosse     */
66d6d97f60SAnna Dabrowska    public function getFullQualifiedLabel()
67d6d97f60SAnna Dabrowska    {
682e12ac22SMichael Grosse        // There is only one pageid for each row because we JOIN on it
692e12ac22SMichael Grosse        // so we do not prefix it with the table
702e12ac22SMichael Grosse        return $this->getLabel();
712e12ac22SMichael Grosse    }
722e12ac22SMichael Grosse
732e12ac22SMichael Grosse    /**
742e12ac22SMichael Grosse     * @return string preconfigured label
752e12ac22SMichael Grosse     */
76d6d97f60SAnna Dabrowska    public function getTranslatedLabel()
77d6d97f60SAnna Dabrowska    {
782e12ac22SMichael Grosse        /** @var \helper_plugin_struct_config $helper */
792e12ac22SMichael Grosse        $helper = plugin_load('helper', 'struct_config');
802e12ac22SMichael Grosse        return $helper->getLang('userlabel');
812e12ac22SMichael Grosse    }
822e12ac22SMichael Grosse}
83