clear rules + faq cache in time

This commit is contained in:
xiaomlove
2022-09-05 15:29:39 +08:00
parent 5d3fc2b7c5
commit d0f120a352
5 changed files with 40 additions and 9 deletions

View File

@@ -161,6 +161,21 @@ class Install
'result' => $this->yesOrNo(version_compare(PHP_VERSION, $this->minimumPhpVersion, '>=')),
];
$requiredFunctions = ['symlink', 'putenv', 'proc_open', 'proc_get_status', 'exec'];
$disabledFunctions = [];
foreach ($requiredFunctions as $fn) {
if (!function_exists($fn)) {
$disabledFunctions[] = $fn;
}
}
$tableRows[] = [
'label' => 'Required functions',
'required' => 'true',
'current' => empty($disabledFunctions) ? '1' : "These functions are Disabled: " . implode(',', $disabledFunctions),
'result' => $this->yesOrNo(empty($disabledFunctions)),
];
foreach ($this->requiredExtensions as $extension) {
$tableRows[] = [
'label' => "PHP extension $extension",

View File

@@ -28,6 +28,10 @@ if (get_user_class() < UC_ADMINISTRATOR) {
stderr("Error","Only Administrators and above can modify the FAQ, sorry.");
}
function clear_faq_cache()
{
\Nexus\Database\NexusDB::cache_del('faq');
}
//stdhead("FAQ Management");
// ACTION: reorder - reorder sections and items
@@ -93,6 +97,7 @@ elseif (isset($_GET['action']) && $_GET['action'] == "edititem" && $_POST['id']
$question = $_POST['question'];
$answer = $_POST['answer'];
sql_query("UPDATE `faq` SET `question`=".sqlesc($question).", `answer`=".sqlesc($answer).", `flag`=".sqlesc($_POST['flag']).", `categ`=".sqlesc($_POST['categ'])." WHERE id=".sqlesc($_POST['id'])) or sqlerr();
clear_faq_cache();
header("Location: " . get_protocol_prefix() . "$BASEURL/faqmanage.php");
die;
}
@@ -101,6 +106,7 @@ elseif (isset($_GET['action']) && $_GET['action'] == "edititem" && $_POST['id']
elseif (isset($_GET['action']) && $_GET['action'] == "editsect" && $_POST['id'] != NULL && $_POST['title'] != NULL && $_POST['flag'] != NULL) {
$title = $_POST['title'];
sql_query("UPDATE `faq` SET `question`=".sqlesc($title).", `answer`='', `flag`=".sqlesc($_POST['flag']).", `categ`='0' WHERE id=".sqlesc($_POST['id'])) or sqlerr();
clear_faq_cache();
header("Location: " . get_protocol_prefix() . "$BASEURL/faqmanage.php");
die;
}
@@ -171,12 +177,13 @@ elseif (isset($_GET['action']) && $_GET['action'] == "addnewitem" && $_POST['que
$categ = intval($_POST['categ'] ?? 0);
$langid = intval($_POST['langid'] ?? 0);
$res = sql_query("SELECT MAX(`order`) AS maxorder, MAX(`link_id`) AS maxlinkid FROM `faq` WHERE `type`='item' AND `categ`=".sqlesc($categ)." AND lang_id=".sqlesc($langid));
while ($arr = mysql_fetch_array($res, MYSQLI_BOTH))
while ($arr = mysql_fetch_array($res, MYSQLI_BOTH))
{
$order = $arr['maxorder'] + 1;
$link_id = $arr['maxlinkid']+1;
}
sql_query("INSERT INTO `faq` (`link_id`, `type`, `lang_id`, `question`, `answer`, `flag`, `categ`, `order`) VALUES ('$link_id', 'item', ".sqlesc($langid).", ".sqlesc($question).", ".sqlesc($answer).", " . sqlesc(intval($_POST['flag'] ?? 0)) . ", ".sqlesc($categ).", ".sqlesc($order).")") or sqlerr();
clear_faq_cache();
header("Location: " . get_protocol_prefix() . "$BASEURL/faqmanage.php");
die;
}
@@ -188,6 +195,7 @@ elseif (isset($_GET['action']) && $_GET['action'] == "addnewsect" && $_POST['tit
$res = sql_query("SELECT MAX(`order`) AS maxorder, MAX(`link_id`) AS maxlinkid FROM `faq` WHERE `type`='categ' AND `lang_id` = ".sqlesc($language));
while ($arr = mysql_fetch_array($res, MYSQLI_BOTH)) {$order = $arr['maxorder'] + 1;$link_id = $arr['maxlinkid']+1;}
sql_query("INSERT INTO `faq` (`link_id`,`type`,`lang_id`, `question`, `answer`, `flag`, `categ`, `order`) VALUES (".sqlesc($link_id).",'categ', ".sqlesc($language).", ".sqlesc($title).", '', ".sqlesc($_POST['flag']).", '0', ".sqlesc($order).")") or sqlerr();
clear_faq_cache();
header("Location: " . get_protocol_prefix() . "$BASEURL/faqmanage.php");
die;
} else {

9
public/js/nexus.js vendored
View File

@@ -62,11 +62,11 @@ jQuery(document).ready(function () {
height: position.imgHeight
}
}
var previewEle = null
var previewEle = jQuery('#nexus-preview')
var imgEle, selector = 'img.preview', imgPosition
jQuery("body").on("mouseover", selector, function (e) {
imgEle = jQuery(this);
previewEle = jQuery('<img style="display: none;position:absolute;">').appendTo(imgEle.parent())
// previewEle = jQuery('<img style="display: none;position:absolute;">').appendTo(imgEle.parent())
imgPosition = getImgPosition(e, imgEle)
let position = getPosition(e, imgPosition)
let src = imgEle.attr("src")
@@ -74,8 +74,9 @@ jQuery(document).ready(function () {
previewEle.attr("src", src).css(position).fadeIn("fast");
}
}).on("mouseout", selector, function (e) {
previewEle.remove()
previewEle = null
// previewEle.remove()
// previewEle = null
previewEle.hide()
}).on("mousemove", selector, function (e) {
let position = getPosition(e, imgPosition)
previewEle.css(position)

8
public/js/ptgen.js vendored
View File

@@ -31,6 +31,7 @@ jQuery('.btn-get-pt-gen').on('click', function () {
function autoSelect(value) {
// console.log(`autoSelect: ${value}`)
value = value.replace(/[-\/\.]+/ig, '').toUpperCase();
let names = ["source_sel", "medium_sel", "codec_sel", "audiocodec_sel", "standard_sel", "processing_sel", "team_sel"];
for (let i = 0; i < names.length; i++) {
const name = names[i];
@@ -38,11 +39,10 @@ function autoSelect(value) {
// console.log("check name: " + name)
select.children("option").each(function (index, option) {
let _option = jQuery(option)
let optionText = _option.text();
let optionText = _option.text().replace(/[-\/\.]+/ig, '').toUpperCase();
// console.log("check option text: " + optionText + " match value: " + value)
let pattern = new RegExp(value, "i");
if (optionText.match(pattern)) {
console.log(`name: ${name}, optionText: ${optionText} match value: ${value}, break`)
if (optionText == value) {
console.log(`name: ${name}, optionText: ${optionText} === value: ${value}, break`)
select.val(option.getAttribute('value'))
return false
}

View File

@@ -5,6 +5,10 @@ loggedinorreturn();
if (get_user_class() < UC_ADMINISTRATOR) {
stderr("Error","Only Administrators and above can modify the Rules, sorry.");
}
function clear_rules_cache()
{
\Nexus\Database\NexusDB::cache_del('rules');
}
if (isset($_GET["act"]) && $_GET["act"] == "newsect")
{
@@ -35,6 +39,7 @@ elseif (isset($_GET["act"]) && $_GET["act"]=="addsect"){
$text = $_POST["text"];
$language = $_POST["language"];
sql_query("insert into rules (title, text, lang_id) values(".sqlesc($title).", ".sqlesc($text).", ".sqlesc($language).")") or sqlerr(__FILE__,__LINE__);
clear_rules_cache();
header("Refresh: 0; url=modrules.php");
}
elseif (isset($_GET["act"]) && $_GET["act"] == "edit"){
@@ -68,6 +73,7 @@ elseif (isset($_GET["act"]) && $_GET["act"]=="edited"){
$text = $_POST["text"];
$language = $_POST["language"];
sql_query("update rules set title=".sqlesc($title).", text=".sqlesc($text).", lang_id = ".sqlesc($language)." where id=".sqlesc($id)) or sqlerr(__FILE__,__LINE__);
clear_rules_cache();
header("Refresh: 0; url=modrules.php");
}
elseif (isset($_GET["act"]) && $_GET["act"]=="del"){
@@ -78,6 +84,7 @@ elseif (isset($_GET["act"]) && $_GET["act"]=="del"){
stderr("Delete Rule","You are about to delete a rule. Click <a class=altlink href=?act=del&id=$id&sure=1>here</a> if you are sure.",false);
}
sql_query("DELETE FROM rules WHERE id=".sqlesc($id)) or sqlerr(__FILE__, __LINE__);
clear_rules_cache();
header("Refresh: 0; url=modrules.php");
}
else{