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 /** 16b9d35ff2SAnna Dabrowska * Connect serial pattern to lexer. 17b9d35ff2SAnna Dabrowska * 18b9d35ff2SAnna Dabrowska * @param string $mode Parser mode 19b9d35ff2SAnna Dabrowska */ 20d6d97f60SAnna Dabrowska public function connectTo($mode) 21d6d97f60SAnna Dabrowska { 22b9d35ff2SAnna Dabrowska $this->Lexer->addSpecialPattern('----+ *struct serial *-+\n.*?\n----+', $mode, 'plugin_struct_serial'); 23b9d35ff2SAnna Dabrowska } 24b9d35ff2SAnna Dabrowska 25b9d35ff2SAnna Dabrowska /** 26b9d35ff2SAnna Dabrowska * Filter based on primary key columns 27b9d35ff2SAnna Dabrowska * 28b9d35ff2SAnna Dabrowska * @param array $config 29b9d35ff2SAnna Dabrowska * @return array 30b9d35ff2SAnna Dabrowska */ 31b9d35ff2SAnna Dabrowska protected function addTypeFilter($config) 32b9d35ff2SAnna Dabrowska { 33*3f10845cSAndreas Gohr // we get the main ID instead of using $ID, so that serial data entry can be used via includes 34*3f10845cSAndreas Gohr // $INFO is not set yet so it can't be used 35*3f10845cSAndreas Gohr $id = getID(); 36308cc83fSAndreas Gohr $config['filter'][] = ['%rowid%', '!=', (string)AccessTablePage::DEFAULT_PAGE_RID, 'AND']; 37*3f10845cSAndreas Gohr $config['filter'][] = ['%pageid%', '=', $id, 'AND']; 3803307831SAnna Dabrowska $config['withpid'] = 1; // flag for the editor to distinguish data types 39b9d35ff2SAnna Dabrowska return $config; 40b9d35ff2SAnna Dabrowska } 41b9d35ff2SAnna Dabrowska} 42