Files
wordpress-preseed/wp-content/plugins/amr-ical-events-list/includes/amr-ical-fields-admin.php
2019-09-11 19:08:46 +02:00

144 lines
4.0 KiB
PHP

<?php
/* field admin */
function amr_whats_in_use() {
global $amr_options;
amr_set_defaults(); // $amr_options will be set, don't fetch other options yet
$defaults = $amr_options;
$desc = amr_set_helpful_descriptions ();
$amr_options = amr_getset_options(false);
$inuse = get_option('amr-event-fields-in-use'); // overlay any existing
// get all fields that have a column
if (empty($inuse)) {
$inuse = amr_default_fields_to_use ();
}
foreach ($amr_options['listtypes'] as $i=> $l) { // foreach list
if (isset($l['compprop'])) {
foreach ($l['compprop'] as $f => $opt) {
if (empty($opt['Column'])) {
if (empty($allfieldsinuse[$f]))
$allfieldsinuse[$f] = 0;
}
else
if (empty($allfieldsinuse[$f]))
$allfieldsinuse[$f] = 1;
else
$allfieldsinuse[$f] ++;
}
}
}
// any new defaults ?
foreach ($defaults['listtypes'] as $i=> $l) {
if (isset($l['compprop'])) {
foreach ($l['compprop'] as $f => $opt) {
if (!isset($allfieldsinuse[$f]))
$allfieldsinuse[$f] = 0;
}
}
}
// check descriptions just in case ? - no also has componemts
/* foreach ($desc as $i=> $l) {
if (empty($allfieldsinuse[$i]))
$allfieldsinuse[$i] = 0;
}
*/
if (!empty($inuse)) { // we already got somethingstored
foreach ($inuse as $i=> $l) {
if (!isset($allfieldsinuse[$i])) // its no longer possible, delete it
unset($inuse[$i]);
}
}
else $inuse = array(); // no option yet
foreach ($allfieldsinuse as $i=> $l) { // for all the fields we know about
if (!isset($inuse[$i])) // is maybe new? - not empty because thats just what we set before
$inuse[$i] = $allfieldsinuse[$i];
}
// var_dump($inuse);
array_multisort(array_values($inuse), SORT_DESC, array_keys($inuse), SORT_ASC, $inuse);
return ($inuse);
}
function amrical_choose_fields() {
global $amr_options;
//$nonce = wp_create_nonce('amr-ical-events-list'); /* used for security to verify that any action request comes from this plugin's forms */
amrical_admin_heading(__('Choose event and calendar fields ', 'amr-ical-events-list'));
$inuse = amr_whats_in_use();
$desc = amr_set_helpful_descriptions ();
if (isset ($_POST['action']) and ($_POST['action'] == "save")) {
$nonce = $_REQUEST['_wpnonce'];
if (! wp_verify_nonce($nonce, 'amr-ical-events-list'))
die ("Cancelled due to failed security check");
/* Validate the input and save */
if (isset($_POST['reset'])) {
echo '<div class="updated"><p>';
_e('Resetting....','amr-ical-events-list');
delete_option('amr-event-fields-in-use');
echo '</p></div>';
$inuse = amr_whats_in_use();
}
/* Validate the input and save */
else
$inuse = amr_ical_validate_fields($inuse);
}
array_multisort(array_values($inuse), SORT_DESC, array_keys($inuse), SORT_ASC, $inuse);
//$fields - an array of fields used in a column
echo '<p>'.__('To simplify choose a subset of fields to work with:' , 'amr-ical-events-list').'</p>';
echo '<div style="columns: 300px 2;">';
foreach ($inuse as $f => $bool) {
echo '<p><lable><input type="checkbox" name="inuse['.$f.']" ';
if ($bool)
echo ' checked="checked" >';
else
echo '>';
echo '<b>'.$f.'</b> ('.$bool.'x)';
if (!empty($desc[$f])) echo ' - <em>'.$desc[$f].'</em>';
echo '</lable></p>';
}
amr_ical_submit_buttons (__('Reset','amr-ical-events-list'));
echo '</div></form></div>';
} //end amrical_option_page
function amr_ical_validate_fields($inuse) {
global $amr_options;
if (isset($_POST['inuse'])) {
foreach ($inuse as $f => $bool) {
//echo $f; var_dump($bool);
if (!empty($bool) and (!isset($_POST['inuse'][$f]))) {
$inuse[$f] = 0;
echo 'Unsetting '.$f.'<br />';
}
}
foreach ($_POST['inuse'] as $f => $bool) {
//echo $f; var_dump($bool);
if (isset($bool) and (empty($inuse[$f]))) {
$inuse[$f] = 1;
echo 'Adding '.$f.'<br />';
}
}
}
echo '<div class="updated"><p>';
_e('Saving....','amr-ical-events-list');
update_option('amr-event-fields-in-use', $inuse);
echo '</p></div>';
return($inuse);
}