diff --git a/.gitignore b/.gitignore index 62b9b11..8c80a71 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ includes/config.inc.php nsedit.sublime* etc +templates.d/*.json diff --git a/includes/misc.inc.php b/includes/misc.inc.php index ba656dc..a1662ef 100644 --- a/includes/misc.inc.php +++ b/includes/misc.inc.php @@ -255,6 +255,27 @@ function jtable_respond($records, $method = 'multiple', $msg = 'Undefined errorm function user_template_list() { global $templates; + if (is_dir("templates.d")) { + if ($templdir=opendir("templates.d")) { + while ($entry = readdir($templdir)) { + if (!str_ends_with($entry, ".json")) { + continue; + } + $f=file_get_contents("templates.d/$entry"); + if ($f === false) { + error_log("Error reading file templates.d/$entry", 0); + continue; + } + $t = json_decode($f, true); + if ($t === null) { + error_log("Error decoding templates.d/$entry", 0); + continue; + } + array_push($templates, $t); + } + } + } + $templatelist = array(); foreach ($templates as $template) { if (is_adminuser() diff --git a/templates.d/template.json.example b/templates.d/template.json.example new file mode 100644 index 0000000..0113ecb --- /dev/null +++ b/templates.d/template.json.example @@ -0,0 +1,28 @@ +{ + "name": "Example Template", + "owner": "public", + "records": [ + { + "name": "", + "type": "NS", + "content": "ns1.example.com.", + "label": "ns1" + }, + { + "name": "", + "type": "NS", + "content": "ns2.example.com.", + "label": "ns2" + }, + { + "name": "example-txt", + "type": "TXT", + "content": "This is an example txt record" + }, + { + "name": "localhost", + "type": "A", + "content": "127.0.0.1" + } + ] +}