PluginProbe
Watu Quiz / 3.4.5
Watu Quiz v3.4.5
3.4.8 trunk 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.5.3 3.4.6 3.4.7
watu / options.php

options.php in Watu Quiz 3.4.5, at options.php

92 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 global $wpdb, $wp_roles;
3 $is_admin = current_user_can('administrator');
4
5 if(!empty($_REQUEST['submit']) and check_admin_referer('watu_options')) {
6 $delete_db = empty($_POST['delete_db']) ? 0 : 1;
7 $delete_db_confirm = (empty($_POST['delete_db_confirm']) or $_POST['delete_db_confirm']!= 'yes') ? '' : 'yes';
8 $answer_type = ($_POST['answer_type'] == 'radio') ? 'radio' : 'checkbox';
9 $use_the_content = empty($_POST['use_the_content']) ? 0 : 1;
10 $debug_mode = empty($_POST['debug_mode']) ? 0 : 1;
11 $integrate_moolamojo = empty($_POST['integrate_moolamojo']) ? 0 : 1;
12 $dont_autoscroll = empty($_POST['dont_autoscroll']) ? 0 : 1;
13 $no_ajax = empty($_POST['no_ajax']) ? 0 : 1;
14
15 // sanitize email in format test@dot.com or Your Name <test@dot.com>
16 $admin_email = $_POST['watu_admin_email'];
17 if(strstr($admin_email, '<')) {
18 $parts = explode('<', $admin_email);
19 $parts[0] = sanitize_text_field($parts[0]);
20 $parts[1] = sanitize_email($parts[1]);
21 $admin_email = $parts[0].' <'.$parts[1].'>';
22 }
23 else $admin_email = sanitize_email($admin_email);
24
25 $csv_delim = sanitize_text_field($_POST['csv_delim']);
26 $csv_quotes = empty($_POST['csv_quotes']) ? 0 : 1;
27
28 update_option( "watu_delete_db", $delete_db, false );
29 update_option('watu_delete_db_confirm', $delete_db_confirm, false);
30 update_option('watu_answer_type', $answer_type, false);
31 update_option('watu_use_the_content', $use_the_content);
32 update_option('watu_text_captcha', wp_kses_post($_POST['text_captcha']), false);
33 update_option('watu_debug_mode', $debug_mode, false);
34 update_option('watu_admin_email', $admin_email, false);
35 update_option('watu_integrate_moolamojo', $integrate_moolamojo, false);
36 update_option('watu_quiz_word', sanitize_text_field($_POST['quiz_word']), false);
37 update_option('watu_quiz_word_plural', sanitize_text_field($_POST['quiz_word_plural']), false);
38 update_option('watu_csv_delim', $csv_delim, false);
39 update_option('watu_csv_quotes', $csv_quotes, false);
40 update_option('watu_dont_autoscroll', $dont_autoscroll, false);
41 update_option('watu_no_ajax', $no_ajax, false);
42
43 $roles = $wp_roles->roles;
44
45 foreach($roles as $key=>$r) {
46 if($key == 'administrator') continue;
47
48 $role = get_role($key);
49
50 // manage Watu - allow only admin change this
51 if($is_admin) {
52 if(!empty($_POST['manage_roles']) and is_array($_POST['manage_roles']) and in_array($key, $_POST['manage_roles'])) {
53 if(!$role->has_cap('watu_manage')) $role->add_cap('watu_manage');
54 }
55 else $role->remove_cap('watu_manage');
56 } // end if can_manage_options
57 } // end foreach role
58
59 print '<div id="message" class="updated fade"><p>' . __('Options updated', 'watu') . '</p></div>';
60 }
61
62 // save no_ajax
63 if(!empty($_POST['save_ajax_settings']) and check_admin_referer('watu_ajax_options')) {
64 $ids = empty($_POST['no_ajax']) ? array(0) : watu_int_array($_POST['no_ajax']);
65 // make sure IDs contains only exam IDs
66 $id_sql = implode(',', $ids);
67 if(!preg_match("/^[0-9,]+$/", $id_sql)) $id_sql = "0";
68
69 $wpdb->query("UPDATE ".WATU_EXAMS." SET no_ajax=1 WHERE ID IN (".$id_sql.")");
70 $wpdb->query("UPDATE ".WATU_EXAMS." SET no_ajax=0 WHERE ID NOT IN (".$id_sql.")");
71 }
72
73 $answer_display = get_option('watu_show_answers');
74 $delete_db = get_option('watu_delete_db');
75
76 $text_captcha = get_option('watu_text_captcha');
77 // load 3 default questions in case nothing is loaded
78 if(empty($text_captcha)) {
79 $text_captcha = __('What is the color of the snow? = white', 'watu').PHP_EOL.__('Is fire hot or cold? = hot', 'watu')
80 .PHP_EOL. __('In which continent is Norway? = Europe', 'watu');
81 }
82
83 // select all quizzes for No Ajax option
84 $quizzes = $wpdb->get_results("SELECT ID, name, no_ajax FROM ".WATU_EXAMS." ORDER BY name");
85
86 $roles = $wp_roles->roles;
87
88 $delim = get_option('watu_csv_delim');
89
90 if(@file_exists(get_stylesheet_directory().'/watu/options.html.php')) include get_stylesheet_directory().'/watu/options.html.php';
91 else include(WATU_PATH . '/views/options.html.php');
92