StaticMD/manager.php

92 lines
2.6 KiB
PHP

<?php
require_once('Parsedown.php');
if(file_exists('config.php')) {
require_once('config.php');
} else {
require_once('config.example.php');
}
$func = $_GET['f'];
switch($func) {
case 'build': // Build the worship.html page
buildStaticPage();
break;
default:
showAdminPage();
break;
}
function buildStaticPage() {
$pd = new Parsedown();
$title = !empty($_POST['title'])?$_POST['title']:TITLE;
$out = outputHTMLHeader($title, true);
$out .= '<pre>';
$out .= print_r($_POST, true);
$out .= '</pre>';
$out .= '======';
foreach($_POST['chosen_files'] as $file) {
if(file_exists($file)) {
$md = file_get_contents($file);
$out .= '<div class="afile">';
$out .= $pd->text($md);
$out .= "</div>";
}
}
$out .= outputHTMLFooter(true);
$outfile = !empty($_POST['outfile'])?$_POST['outfile']:DEFAULT_FILE;
file_put_contents($outfile, $out);
}
function showAdminPage() {
outputHTMLHeader();
$out = '<form action="/manager.php?f=build" method="POST">'."\n"
.' <div>'."\n"
.' <label for="filename">Output File:</label>'."\n"
.' <input name="filename" value="worship.html" placeholder="File Name" />'."\n"
.' </div>'."\n"
.' <div>'."\n"
.' <label for="filter">Filter</label>'."\n"
.' <input name="filter" value="" placeholder="Filter Files" />'."\n"
.' <table>'."\n"
.' <thead><th>File</th><th></th></thead>'."\n"
.' <tbody>'."\n";
foreach(glob(MD_DIR.'/*.md') as $file) {
$out.=' <tr>'."\n"
.' <td>'.basename($file, '.md').'</td><td><button onclick="addSong('.$filename.');">Add</button></td>'."\n"
.' </tr>'."\n";
}
$out.= ' </tbody>'."\n"
.' </table>'."\n"
.' </div>'."\n"
.' <button type="submit">Build</button>'."\n"
.'</form>'."\n"
.'<script>'."\n"
.'</script>'."\n";
outputHTMLFooter();
}
function outputHTMLHeader($title = TITLE, $ret = false) {
$out = '<!DOCTYPE html>'."\n"
.'<html lang="en">'."\n"
.' <head>'."\n"
.' <title>'.$title.'</title>'."\n"
.' <link rel="stylesheet" href="https://unpkg.com/purecss@1.0.0/build/pure-min.css" integrity="sha384-nn4HPE8lTHyVtfCBi5yW9d20FjT8BJwUXyWZT9InLYax14RDjBj46LmSztkmNP9w" crossorigin="anonymous">'."\n"
.' </head>'."\n"
.' <body>'."\n";
if($ret) {
return $out;
}
echo $out;
}
function outputHTMLFooter($ret = false) {
$out = ' </body>'."\n"
.'</html>'."\n";
if($ret) {
return $out;
}
echo $out;
}
?>