option list update with form

This commit is contained in:
asus
2024-03-24 15:05:00 +01:00
parent 1415fc14a2
commit f882caf850
2 changed files with 41 additions and 12 deletions

View File

@@ -44,8 +44,23 @@ function patches_choice() {
/* /*
* *
* *
[24-Mar-2024 12:24:08 UTC] -> _POST {
"action":"add_patches",
"nonce_name":"7eeb560dc0",
"_wp_http_referer":"\/wp-admin\/admin.php?page=fbpatch-plugin",
"hide_show":"on"
}
*/ */
error_log("-> _POST: " . json_encode($_POST));
$pathes_on = array();
foreach($_POST as $key => $value) {
if ($value !== 'on') {
continue;
}
$pathes_on[] = $key;
}
error_log("-> pathes_update: " . json_encode($pathes_on));
Fbpatch::set_patches($pathes_on);
\FBPATCH\redirect_menu_referer($_POST); \FBPATCH\redirect_menu_referer($_POST);
} }

View File

@@ -24,21 +24,19 @@ class Fbpatch {
private static $_patches = [ private static $_patches = [
'_name'=>'fbpatch_list_of_patches', '_name'=>'fbpatch_list_of_patches',
'calculations'=>['checked'=>'false', 'title'=>'calculations title', 'description'=>'calculation description'], 'calculations'=>['checked'=>false, 'title'=>'calculations title', 'description'=>'calculation description'],
'hide_show'=>['checked'=>'false', 'title'=>'hide/show title', 'description'=>'hide/show description'], 'hide_show'=>['checked'=>false, 'title'=>'hide/show title', 'description'=>'hide/show description'],
]; ];
//private static $_patches = ['_name'=>'fbpatch_list_of_patches', 'hide_show']; //private static $_patches = ['_name'=>'fbpatch_list_of_patches', 'hide_show'];
//private static $_patches = ['_name'=>'fbpatch_list_of_patches']; //private static $_patches = ['_name'=>'fbpatch_list_of_patches'];
private static function set_option_patches() { private static function set_option_patches() {
error_log("---");
/* /*
* get the list of patches in option * get the list of patches in option
* create option if needed * create option if needed
* *
*/ */
$raw_patches_option = get_option(self::$_patches['_name']); $raw_patches_option = get_option(self::$_patches['_name']);
error_log("raw_patches_option: " . json_encode($raw_patches_option));
if (false === $raw_patches_option) { if (false === $raw_patches_option) {
add_option(self::$_patches['_name']); add_option(self::$_patches['_name']);
} }
@@ -51,7 +49,6 @@ class Fbpatch {
* if the option miss patches, add them * if the option miss patches, add them
* *
*/ */
error_log("patches_option before 1: " . json_encode($patches_option));
foreach (self::$_patches as $patch => $data) { foreach (self::$_patches as $patch => $data) {
if ($patch === '_name') { if ($patch === '_name') {
continue; continue;
@@ -61,29 +58,24 @@ class Fbpatch {
} }
$patches_option[$patch] = $data; $patches_option[$patch] = $data;
} }
error_log("patches_option after 1: " . json_encode($patches_option));
/* /*
* if the option has additional patches, delete them * if the option has additional patches, delete them
* *
*/ */
error_log("patches_option before 2: " . json_encode($patches_option));
foreach ($patches_option as $patch => $data) { foreach ($patches_option as $patch => $data) {
if (isset(self::$_patches[$patch])) { if (isset(self::$_patches[$patch])) {
continue; continue;
} }
unset($patches_option[$patch]); unset($patches_option[$patch]);
} }
error_log("patches_option after 2: " . json_encode($patches_option));
/* /*
* change the option list with the update patches * change the option list with the update patches
* *
*/ */
ksort($patches_option); ksort($patches_option);
error_log("ksorted patches_option: " . json_encode($patches_option));
$serialize_patches_option = serialize($patches_option); $serialize_patches_option = serialize($patches_option);
error_log("serialize patches_option: " . json_encode($serialize_patches_option));
update_option(self::$_patches['_name'], $serialize_patches_option); update_option(self::$_patches['_name'], $serialize_patches_option);
} }
public static function get_patches() { public static function get_patches() {
@@ -91,7 +83,29 @@ class Fbpatch {
$patches = get_option(self::$_patches['_name']); $patches = get_option(self::$_patches['_name']);
return unserialize($patches); return unserialize($patches);
} }
public static function set_patchs($query) { public static function set_patches($patches_on) {
/*
* loop through the option list and update occording to the received list
*
*/
$raw_patches = get_option(self::$_patches['_name']);
$patches_option = unserialize($raw_patches);
foreach($patches_option as $patch => $data) {
if (in_array($patch, $patches_on)) {
$patches_option[$patch]['checked'] = true;
}
else {
$patches_option[$patch]['checked'] = false;
}
}
/*
* change the option list with the update patches
*
*/
ksort($patches_option);
$serialize_patches_option = serialize($patches_option);
update_option(self::$_patches['_name'], $serialize_patches_option);
} }
} }