xref: /plugin/structpublish/syntax/table.php (revision 9ab8cbae39a6ffa37705f745bc76916ea212a92b)
13231ebaeSAnna Dabrowska<?php
23231ebaeSAnna Dabrowska
3*9ab8cbaeSanndause dokuwiki\plugin\struct\meta\AccessTablePage;
43231ebaeSAnna Dabrowskause dokuwiki\plugin\struct\meta\AggregationTable;
53231ebaeSAnna Dabrowska
63231ebaeSAnna Dabrowska/**
73231ebaeSAnna Dabrowska * DokuWiki Plugin structpublish (Syntax Component)
83231ebaeSAnna Dabrowska *
93231ebaeSAnna Dabrowska * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
103231ebaeSAnna Dabrowska * @author  Anna Dabrowska <dokuwiki@cosmocode.de>
113231ebaeSAnna Dabrowska */
123231ebaeSAnna Dabrowskaclass syntax_plugin_structpublish_table extends syntax_plugin_struct_serial
133231ebaeSAnna Dabrowska{
143231ebaeSAnna Dabrowska    protected $tableclass = AggregationTable::class;
153231ebaeSAnna Dabrowska
168b0ba635SAndreas Gohr    /** @inheritdoc */
173231ebaeSAnna Dabrowska    public function connectTo($mode)
183231ebaeSAnna Dabrowska    {
193231ebaeSAnna Dabrowska        $this->Lexer->addSpecialPattern('----+ *structpublish *-+\n.*?\n?----+', $mode, 'plugin_structpublish_table');
203231ebaeSAnna Dabrowska    }
213231ebaeSAnna Dabrowska
228b0ba635SAndreas Gohr    /** @inheritdoc */
233231ebaeSAnna Dabrowska    protected function addTypeFilter($config)
243231ebaeSAnna Dabrowska    {
253231ebaeSAnna Dabrowska        $config['schemas'][] = ['structpublish', 'structpublish'];
263231ebaeSAnna Dabrowska        array_unshift($config['cols'], '%pageid%');
273231ebaeSAnna Dabrowska        $config['filter'][] = [
288b0ba635SAndreas Gohr            '%rowid%',
298b0ba635SAndreas Gohr            '!=',
30*9ab8cbaeSannda            (string) AccessTablePage::DEFAULT_PAGE_RID,
318b0ba635SAndreas Gohr            'AND'
323231ebaeSAnna Dabrowska        ];
333231ebaeSAnna Dabrowska        $config['withpid'] = 1; // flag for the editor to distinguish data types
343231ebaeSAnna Dabrowska        return $config;
353231ebaeSAnna Dabrowska    }
363231ebaeSAnna Dabrowska}
37