|
26 | 26 | // USER-DEFINED Variables |
27 | 27 | // if resources/wikiconf.ini exists |
28 | 28 | if (file_exists("resources/wikiconf.ini")) { |
| 29 | + $has_config = true; |
29 | 30 | $wiki_config = parse_ini_file("resources/wikiconf.ini"); |
30 | 31 | $wiki_name = $wiki_config['wiki_name']; |
31 | 32 | $wiki_description = $wiki_config['wiki_description']; |
32 | 33 | $wiki_color = $wiki_config['wiki_color']; |
33 | 34 | $wiki_default_theme = $wiki_config['wiki_default_theme']; |
34 | | - $wiki_favicon = $wiki_config['wiki_favicon']; |
35 | 35 | } |
36 | | - |
| 36 | +else { |
| 37 | + $has_config = false; |
| 38 | + $wiki_name = "Tiny-wiki"; |
| 39 | + $wiki_description = "A simple folder-structure-based wiki engine"; |
| 40 | + $wiki_color = "#0099ff"; |
| 41 | + $wiki_default_theme = "default"; |
| 42 | +} |
37 | 43 | // Don't change anything below unless you know what you're doing. |
38 | 44 |
|
39 | 45 | // page url example: |
|
53 | 59 |
|
54 | 60 | /* --- Page Setup --- */ |
55 | 61 |
|
| 62 | +if (!$has_config) { |
| 63 | + // For obvious security reasons, the POST check should only be done if the wikiconf file doesn't exist |
| 64 | + // otherwise people could just reconfigure the site easily with POST data, crazy right? |
| 65 | + if ($_SERVER["REQUEST_METHOD"] == "POST") { |
| 66 | + // collect value of form |
| 67 | + $wiki_name = $_POST['wiki_name']; |
| 68 | + $wiki_description = $_POST['wiki_description']; |
| 69 | + $wiki_color = $_POST['wiki_color']; |
| 70 | + $wiki_default_theme = $_POST['wiki_default_theme']; |
| 71 | + // write to ini file |
| 72 | + $file = fopen("resources\wikiconf.ini", "w") or die("Unable to open file!"); |
| 73 | + fwrite($file, "wiki_name = \"$wiki_name\"\n"); |
| 74 | + fwrite($file, "wiki_description = \"$wiki_description\"\n"); |
| 75 | + fwrite($file, "wiki_color = \"$wiki_color\"\n"); |
| 76 | + fwrite($file, "wiki_default_theme = \"$wiki_default_theme\"\n"); |
| 77 | + fclose($file); |
| 78 | + } |
| 79 | + // Setup page basically |
| 80 | + echo "<link rel='stylesheet' href='resources/default.css' type='text/css' />"; |
| 81 | + echo "<div class='setup-page'>"; |
| 82 | + echo "<h1>Welcome to Tiny-wiki!</h1>"; |
| 83 | + echo "<p>It looks like this is the first time you are using Tiny-Wiki.</p>"; |
| 84 | + echo "<p>To make this part pleasant, we've made this configuration form for you!</p>"; |
| 85 | + echo "<p>Configure your wiki using the options below.</p>"; |
| 86 | + echo "<form action='index.php' method='POST' enctype='multipart/form-data'>"; |
| 87 | + echo "<label for='wiki_name'>Wiki Name:</label>"; |
| 88 | + echo "<input type='text' class='inputfield' name='wiki_name' value='$wiki_name' placeholder='Wiki Name'><br>"; |
| 89 | + echo "<label for='wiki_description'>Wiki Description:</label>"; |
| 90 | + echo "<input type='textarea' class='inputfield' name='wiki_description' value='$wiki_description' placeholder='Wiki Description'><br>"; |
| 91 | + echo "<label for='wiki_color'>Wiki Secondary Color:</label>"; |
| 92 | + echo "<input type='color' class='inputfield' name='wiki_color' value='$wiki_color'><br>"; |
| 93 | + echo "<label for='wiki_default_theme'>Wiki Default Cascading Style Sheet:</label>"; |
| 94 | + echo "<input type='text' class='inputfield' name='wiki_default_theme' value='$wiki_default_theme' placeholder='default.css'><br>"; |
| 95 | + echo "<label for='setup'>You can change these settings later at resources/wikiconf.ini, press Setup when done.</label>"; |
| 96 | + echo "<input type='submit' class='setup' name='setup' value='Setup'>"; |
| 97 | + echo "<script> |
| 98 | + // post setup form data to resources/config.php when submit button is clicked |
| 99 | + document.getElementsByClassName('setup')[0].addEventListener('click', function(e) { |
| 100 | + e.preventDefault(); |
| 101 | + var wiki_name = document.getElementsByName('wiki_name')[0].value; |
| 102 | + var wiki_description = document.getElementsByName('wiki_description')[0].value; |
| 103 | + var wiki_color = document.getElementsByName('wiki_color')[0].value; |
| 104 | + var wiki_default_theme = document.getElementsByName('wiki_default_theme')[0].value; |
| 105 | + var formData = new FormData(); |
| 106 | + formData.append('wiki_name', wiki_name); |
| 107 | + formData.append('wiki_description', wiki_description); |
| 108 | + formData.append('wiki_color', wiki_color); |
| 109 | + formData.append('wiki_default_theme', wiki_default_theme); |
| 110 | + var xhr = new XMLHttpRequest(); |
| 111 | + xhr.open('POST', 'index.php', true); |
| 112 | + xhr.send(formData); |
| 113 | + xhr.onload = function() { |
| 114 | + if (xhr.status === 200) { |
| 115 | + window.location.href = 'index.php'; |
| 116 | + } |
| 117 | + } |
| 118 | + }); |
| 119 | + </script>"; |
| 120 | + echo "</form>"; |
| 121 | + echo "</div>"; |
| 122 | + // script to POST the form data to resources/config.php |
| 123 | + |
| 124 | + return; |
| 125 | +} |
56 | 126 | ?> |
57 | 127 | <!DOCTYPE html> |
58 | 128 | <html> |
59 | 129 | <head> |
60 | 130 | <?php |
61 | 131 | echo '<title>' . $wiki_name . '</title>'; |
62 | | -if ($wiki_favicon != "") { |
63 | | - echo '<link rel="shortcut icon" href="resources\\' . $wiki_favicon . '">'; |
64 | | -} |
| 132 | +echo '<link rel="shortcut icon" href="resources\\favicon.png">'; |
65 | 133 | ?> |
66 | 134 | <meta charset="utf-8"> |
67 | 135 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
|
77 | 145 | <!--wiki name div--> |
78 | 146 | <div class="sidebar-wiki-name" name="second-color"> |
79 | 147 | <?php |
80 | | -echo '<p><a href="?p=Home">' . $wiki_name . '</a></p>';?> |
| 148 | +echo '<h1><a href="?p=Home">' . $wiki_name . '</a></h1>'; |
| 149 | +echo '<p>' . $wiki_description . '</p>'; |
| 150 | +?> |
81 | 151 | </div> |
82 | 152 | <!--wiki auto-generated buttons div--> |
83 | 153 | <div class="sidebar-list"> |
|
0 commit comments