parent
3f09cc3601
commit
b238390ca8
@ -0,0 +1,71 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* The common stuff required by both index.php and build_html.php |
||||||
|
* this must be required_once |
||||||
|
*/ |
||||||
|
|
||||||
|
if (defined('BASE_INITED')) return; |
||||||
|
define('BASE_INITED', true); |
||||||
|
|
||||||
|
if (!empty($argv[1])) { |
||||||
|
parse_str($argv[1], $_GET); |
||||||
|
} |
||||||
|
|
||||||
|
if (!file_exists(__DIR__ . '/_env.php')) { |
||||||
|
die("Copy <b>_env.php.example</b> to <b>_env.php</b> and check the settings inside!"); |
||||||
|
} |
||||||
|
|
||||||
|
require_once __DIR__ . '/_env.php'; |
||||||
|
|
||||||
|
$prod = defined('STDIN'); |
||||||
|
define('DEBUG', !$prod); |
||||||
|
$root = DEBUG ? json_encode(ESP_IP) : 'window.location.href'; |
||||||
|
define('JS_WEB_ROOT', $root); |
||||||
|
|
||||||
|
define('LOCALE', isset($_GET['locale']) ? $_GET['locale'] : 'en'); |
||||||
|
|
||||||
|
$_messages = require(__DIR__ . '/lang/' . LOCALE . '.php'); |
||||||
|
$_pages = require(__DIR__ . '/_pages.php'); |
||||||
|
|
||||||
|
define('APP_NAME', 'ESPTerm'); |
||||||
|
|
||||||
|
/** URL (dev or production) */ |
||||||
|
function url($name, $relative = false) |
||||||
|
{ |
||||||
|
global $_pages; |
||||||
|
if ($relative) return $_pages[$name]->path; |
||||||
|
|
||||||
|
if (DEBUG) return "/index.php?page=$name"; |
||||||
|
else return $_pages[$name]->path; |
||||||
|
} |
||||||
|
|
||||||
|
/** URL label for a button */ |
||||||
|
function label($name) |
||||||
|
{ |
||||||
|
global $_pages; |
||||||
|
return $_pages[$name]->label; |
||||||
|
} |
||||||
|
|
||||||
|
function e($s) |
||||||
|
{ |
||||||
|
return htmlspecialchars($s, ENT_HTML5 | ENT_QUOTES); |
||||||
|
} |
||||||
|
|
||||||
|
function tr($key) |
||||||
|
{ |
||||||
|
global $_messages; |
||||||
|
return isset($_messages[$key]) ? $_messages[$key] : ('??' . $key . '??'); |
||||||
|
} |
||||||
|
|
||||||
|
/** Like eval, but allows <?php and ?> */
|
||||||
|
function include_str($code) |
||||||
|
{ |
||||||
|
$tmp = tmpfile(); |
||||||
|
$tmpf = stream_get_meta_data($tmp); |
||||||
|
$tmpf = $tmpf ['uri']; |
||||||
|
fwrite($tmp, $code); |
||||||
|
$ret = include($tmpf); |
||||||
|
fclose($tmp); |
||||||
|
return $ret; |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
require_once __DIR__ . '/base.php'; |
||||||
|
|
||||||
|
ob_start(); |
||||||
|
foreach($_pages as $_k => $p) { |
||||||
|
if ($p->bodyclass == 'api') continue; |
||||||
|
echo "Generating: $_k ($p->title)\n"; |
||||||
|
$_GET['page'] = $_k; |
||||||
|
ob_flush(); // print the message |
||||||
|
ob_clean(); // clean up |
||||||
|
include(__DIR__ . '/index.php'); |
||||||
|
$s = ob_get_contents(); // grab the output |
||||||
|
ob_clean(); // clean up |
||||||
|
$of = __DIR__ . '/../html/' . $_k . '.tpl'; |
||||||
|
file_put_contents($of, $s); // write to a file |
||||||
|
} |
||||||
|
|
||||||
|
ob_flush(); |
@ -1,68 +1,21 @@ |
|||||||
<?php |
<?php |
||||||
|
|
||||||
if (! file_exists('_env.php')) { |
require_once __DIR__ . '/base.php'; |
||||||
die("Copy <b>_env.php.example</b> to <b>_env.php</b> and check the settings inside!"); |
|
||||||
} |
|
||||||
require '_env.php'; |
|
||||||
|
|
||||||
$prod = defined('STDIN'); |
|
||||||
define ('DEBUG', !$prod); |
|
||||||
$root = DEBUG ? json_encode(ESP_IP) : 'window.location.href'; |
|
||||||
define ('JS_WEB_ROOT', $root); |
|
||||||
|
|
||||||
define('CUR_PAGE', $_GET['page'] ?: 'term'); |
|
||||||
define('LOCALE', $_GET['locale'] ?: 'en'); |
|
||||||
|
|
||||||
$_messages = require(__DIR__ . '/lang/' . LOCALE . '.php'); |
|
||||||
$_pages = require('_pages.php'); |
|
||||||
|
|
||||||
define('APP_NAME', 'ESPTerm'); |
if (!isset($_GET['page'])) $_GET['page'] = 'term'; |
||||||
define('PAGE_TITLE', $_pages[CUR_PAGE]->label . ' :: ' . APP_NAME); |
|
||||||
define('BODYCLASS', $_pages[CUR_PAGE]->bodyclass); |
|
||||||
|
|
||||||
/** URL (dev or production) */ |
$_GET['PAGE_TITLE'] = $_pages[$_GET['page']]->title . ' :: ' . APP_NAME; |
||||||
function url($name, $relative=false) { |
$_GET['BODYCLASS'] = $_pages[$_GET['page']]->bodyclass; |
||||||
global $_pages; |
|
||||||
if ($relative) return $_pages[$name]->path; |
|
||||||
|
|
||||||
if (DEBUG) return "/index.php?page=$name"; |
|
||||||
else return $_pages[$name]->path; |
|
||||||
} |
|
||||||
|
|
||||||
/** URL label for a button */ |
|
||||||
function label($name) { |
|
||||||
global $_pages; |
|
||||||
return $_pages[$name]->label; |
|
||||||
} |
|
||||||
|
|
||||||
function e($s) { |
require __DIR__ . '/pages/_head.php'; |
||||||
return htmlspecialchars($s, ENT_HTML5|ENT_QUOTES); |
$_pf = __DIR__ . '/pages/'.$_GET['page'].'.php'; |
||||||
} |
|
||||||
|
|
||||||
function tr($key) { |
|
||||||
global $_messages; |
|
||||||
return $_messages[$key] ?: ('??'.$key.'??'); |
|
||||||
} |
|
||||||
|
|
||||||
/** Like eval, but allows <?php and ?> */
|
|
||||||
function include_str($code) { |
|
||||||
$tmp = tmpfile(); |
|
||||||
$tmpf = stream_get_meta_data($tmp); |
|
||||||
$tmpf = $tmpf ['uri']; |
|
||||||
fwrite($tmp, $code); |
|
||||||
$ret = include($tmpf); |
|
||||||
fclose($tmp); |
|
||||||
return $ret; |
|
||||||
} |
|
||||||
|
|
||||||
require 'pages/_head.php'; |
|
||||||
$_pf = 'pages/'.CUR_PAGE.'.php'; |
|
||||||
if (file_exists($_pf)) { |
if (file_exists($_pf)) { |
||||||
$f = file_get_contents($_pf); |
$f = file_get_contents($_pf); |
||||||
$reps = require('_debug_replacements.php'); |
$reps = DEBUG ? require(__DIR__ . '/_debug_replacements.php') : []; |
||||||
$str = str_replace(array_keys($reps), array_values($reps), $f); |
$str = str_replace(array_keys($reps), array_values($reps), $f); |
||||||
include_str($str); |
include_str($str); |
||||||
} else { |
} else { |
||||||
echo "404"; |
echo "404"; |
||||||
} |
} |
||||||
require 'pages/_tail.php'; |
|
||||||
|
require __DIR__ . '/pages/_tail.php'; |
||||||
|
@ -0,0 +1,76 @@ |
|||||||
|
<?php |
||||||
|
$ipmask='pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}$"'; |
||||||
|
?> |
||||||
|
|
||||||
|
<form class="Box str mobcol" action="<?= e(url('wifi_set')) ?>" method="GET">
|
||||||
|
<h2><?= tr('net.ap') ?></h2>
|
||||||
|
|
||||||
|
<div class="Row buttons"> |
||||||
|
<input type="submit" value="<?= tr('apply') ?>">
|
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row mq-phone" style="height: 35px"></div> |
||||||
|
<div class="Row" style="max-width: 600px; margin-left: 0"> |
||||||
|
<?= tr('net.explain_ap') ?> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row"> |
||||||
|
<label for="ap_dhcp_time"><?= tr('net.ap_dhcp_time') ?><span class="mq-phone"> (min)</span></label>
|
||||||
|
<input type="number" step=1 min=1 max=2880 name="ap_dhcp_time" id="ap_dhcp_time" value="%ap_dhcp_time%" required> |
||||||
|
<span class="mq-no-phone"> (min)</span> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row"> |
||||||
|
<label for="ap_dhcp_start"><?= tr('net.ap_dhcp_start') ?></label>
|
||||||
|
<input type="text" name="ap_dhcp_start" id="ap_dhcp_start" value="%ap_dhcp_start%" <?=$ipmask?> required>
|
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row"> |
||||||
|
<label for="ap_dhcp_end"><?= tr('net.ap_dhcp_end') ?></label>
|
||||||
|
<input type="text" name="ap_dhcp_end" id="ap_dhcp_end" value="%ap_dhcp_end%" <?=$ipmask?> required>
|
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row"> |
||||||
|
<label for="ap_addr_ip"><?= tr('net.ap_addr_ip') ?></label>
|
||||||
|
<input type="text" name="ap_addr_ip" id="ap_addr_ip" value="%ap_addr_ip%" <?=$ipmask?> required>
|
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row"> |
||||||
|
<label for="ap_addr_mask"><?= tr('net.ap_addr_mask') ?></label>
|
||||||
|
<input type="text" name="ap_addr_mask" id="ap_addr_mask" value="%ap_addr_mask%" <?=$ipmask?> required>
|
||||||
|
</div> |
||||||
|
</form> |
||||||
|
|
||||||
|
<form class="Box str mobcol" action="<?= e(url('wifi_set')) ?>" method="GET">
|
||||||
|
<h2><?= tr('net.sta') ?></h2>
|
||||||
|
|
||||||
|
<div class="Row buttons"> |
||||||
|
<input type="submit" value="<?= tr('apply') ?>">
|
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row mq-phone" style="height: 35px"></div> |
||||||
|
<div class="Row" style="max-width: 600px; margin-left: 0"> |
||||||
|
<?= tr('net.explain_sta') ?> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row checkbox"> |
||||||
|
<label><?= tr('net.sta_dhcp_enable') ?></label><!--
|
||||||
|
--><span class="box"></span> |
||||||
|
<input type="hidden" name="sta_dhcp_enable" value="%sta_dhcp_enable%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row"> |
||||||
|
<label for="sta_addr_ip"><?= tr('net.sta_addr_ip') ?></label>
|
||||||
|
<input type="text" name="sta_addr_ip" id="sta_addr_ip" value="%sta_addr_ip%" <?=$ipmask?> required>
|
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row"> |
||||||
|
<label for="sta_addr_mask"><?= tr('net.sta_addr_mask') ?></label>
|
||||||
|
<input type="text" name="sta_addr_mask" id="sta_addr_mask" value="%sta_addr_mask%" <?=$ipmask?> required>
|
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="Row"> |
||||||
|
<label for="sta_addr_gw"><?= tr('net.sta_addr_gw') ?></label>
|
||||||
|
<input type="text" name="sta_addr_gw" id="sta_addr_gw" value="%sta_addr_gw%" <?=$ipmask?> required>
|
||||||
|
</div> |
||||||
|
</form> |
Loading…
Reference in new issue