1b9d35ff2SAnna Dabrowska<?php 2d6d97f60SAnna Dabrowska 3b9d35ff2SAnna Dabrowska/** 4b9d35ff2SAnna Dabrowska * DokuWiki Plugin struct (Syntax Component) 5b9d35ff2SAnna Dabrowska * 6b9d35ff2SAnna Dabrowska * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 7b9d35ff2SAnna Dabrowska * @author Andreas Gohr, Michael Große, Anna Dabrowska <dokuwiki@cosmocode.de> 8b9d35ff2SAnna Dabrowska */ 9b9d35ff2SAnna Dabrowska 10308cc83fSAndreas Gohruse dokuwiki\plugin\struct\meta\AccessTablePage; 11b9d35ff2SAnna Dabrowska 12308cc83fSAndreas Gohrclass syntax_plugin_struct_serial extends syntax_plugin_struct_global 13d6d97f60SAnna Dabrowska{ 14b9d35ff2SAnna Dabrowska /** 15b9d35ff2SAnna Dabrowska * Connect serial pattern to lexer. 16b9d35ff2SAnna Dabrowska * 17b9d35ff2SAnna Dabrowska * @param string $mode Parser mode 18b9d35ff2SAnna Dabrowska */ 19d6d97f60SAnna Dabrowska public function connectTo($mode) 20d6d97f60SAnna Dabrowska { 21b9d35ff2SAnna Dabrowska $this->Lexer->addSpecialPattern('----+ *struct serial *-+\n.*?\n----+', $mode, 'plugin_struct_serial'); 22b9d35ff2SAnna Dabrowska } 23b9d35ff2SAnna Dabrowska 24b9d35ff2SAnna Dabrowska /** 25b9d35ff2SAnna Dabrowska * Filter based on primary key columns 26b9d35ff2SAnna Dabrowska * 27b9d35ff2SAnna Dabrowska * @param array $config 28b9d35ff2SAnna Dabrowska * @return array 29b9d35ff2SAnna Dabrowska */ 30b9d35ff2SAnna Dabrowska protected function addTypeFilter($config) 31b9d35ff2SAnna Dabrowska { 32*3f10845cSAndreas Gohr // we get the main ID instead of using $ID, so that serial data entry can be used via includes 33*3f10845cSAndreas Gohr // $INFO is not set yet so it can't be used 34*3f10845cSAndreas Gohr $id = getID(); 35308cc83fSAndreas Gohr $config['filter'][] = ['%rowid%', '!=', (string)AccessTablePage::DEFAULT_PAGE_RID, 'AND']; 36*3f10845cSAndreas Gohr $config['filter'][] = ['%pageid%', '=', $id, 'AND']; 3703307831SAnna Dabrowska $config['withpid'] = 1; // flag for the editor to distinguish data types 38b9d35ff2SAnna Dabrowska return $config; 39b9d35ff2SAnna Dabrowska } 40b9d35ff2SAnna Dabrowska} 41