1<?php
2
3class helper_plugin_structacl extends DokuWiki_Plugin
4{
5    public const STRUCTACL_SEPCHAR = '.';
6    /**
7     * Convert config lines "schema.field name" into an array
8     *
9     * @param string $confValue
10     * @return array
11     */
12    public function getConfiguration($confValue)
13    {
14        $lines = explode(PHP_EOL, $confValue);
15        $config = [];
16
17        foreach ($lines as $line) {
18            // ignore comments, empty and invalid lines
19            $line = preg_replace('/#.*$/', '', $line);
20            $line = trim($line);
21            if ($line === '' || strpos($line, self::STRUCTACL_SEPCHAR) === false) continue;
22
23            list($schema, $field) = explode(self::STRUCTACL_SEPCHAR, $line, 2);
24            $config[$schema] = $config[$schema] ?? [];
25            $config[$schema][] = $field;
26        }
27
28        return $config;
29    }
30}
31