Example #1
0
function counterize_check_send_report()
{
    $options = get_option('counterize_options');
    if (!empty($options['enableemailreports']) && $options['enableemailreports'] > 0 && (!empty($options['reportperiod']) && $options['reportperiod'] != 'never')) {
        if (!isset($options['next_report_timestamp'])) {
            counterize_set_option('next_report_timestamp', 0);
        }
        $timestamp = $options['next_report_timestamp'];
        $now = time();
        if ($timestamp <= $now) {
            counterize_update_next_report_date();
            counterize_send_report_by_email();
        }
    }
}
function counterize_options_validate_callback($input)
{
    //load the current options
    $newinput = get_option('counterize_options');
    if (isset($input['amount'])) {
        $newinput['amount'] = intval(trim($input['amount']));
        if (!preg_match('/^[0-9]+$/i', $input['amount'])) {
            $newinput['amount'] = 50;
        }
    }
    if (isset($input['amount2'])) {
        $newinput['amount2'] = intval(trim($input['amount2']));
        if (!preg_match('/^[0-9]+$/i', $input['amount2'])) {
            $newinput['amount2'] = 50;
        }
    }
    if (isset($input['maxwidth'])) {
        $newinput['maxwidth'] = intval(trim($input['maxwidth']));
        if (!preg_match('/^[0-9]+$/i', $input['maxwidth'])) {
            $newinput['maxwidth'] = 50;
        }
    }
    if (isset($input['display_dashboard_capability'])) {
        global $wp_roles;
        $current_user = wp_get_current_user();
        $current_user->get_role_caps();
        $capabilities = $current_user->allcaps;
        foreach ($capabilities as $cap => $whatever) {
            if ($input['display_dashboard_capability'] == $cap) {
                $newinput['display_dashboard_capability'] = $input['display_dashboard_capability'];
            }
        }
    }
    if (isset($input['excludedusers'])) {
        $newinput['excludedusers'] = implode(',', $input['excludedusers']);
    } else {
        $newinput['excludedusers'] = '';
    }
    //ip exclusion list
    $target_ip_array = array();
    if (isset($input['excludedip'])) {
        $input_ip_array = explode(',', str_replace(' ', '', trim($input['excludedip'])));
        foreach ($input_ip_array as $ip) {
            if (preg_match('/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/', $ip)) {
                $target_ip_array[] = $ip;
            }
        }
        unset($input_ip_array);
    }
    $newinput['excludedip'] = implode(',', $target_ip_array);
    if (isset($input['logbots'])) {
        $newinput['logbots'] = intval(trim($input['logbots']));
        if (!preg_match('/^(0|1)+$/i', $input['logbots'])) {
            $newinput['logbots'] = 0;
        }
    } else {
        $newinput['logbots'] = 0;
    }
    if (isset($input['whois'])) {
        $newinput['whois'] = trim($input['whois']);
        if (!preg_match('#^http[a-zA-Z0-9-\\?\\.=_:;/]+$#i', $newinput['whois'])) {
            $newinput['whois'] = 'http://www.ripe.net/whois?form_type=simple&amp;searchtext=';
        }
    }
    if (isset($input['geoip'])) {
        $newinput['geoip'] = trim($input['geoip']);
        if (!preg_match('#^http[a-zA-Z0-9-\\?\\.=_:;/]+$#i', $newinput['geoip'])) {
            $newinput['geoip'] = 'http://whatismyipaddress.com/ip/';
        }
    }
    if (isset($input['enableip'])) {
        $newinput['enableip'] = trim($input['enableip']);
        if (!preg_match('/^(0|1)+$/i', $newinput['enableip'])) {
            $newinput['enableip'] = 0;
        }
    } else {
        $newinput['enableip'] = 0;
    }
    if (isset($input['enable_hostname_lookup'])) {
        $newinput['enable_hostname_lookup'] = intval(trim($input['enable_hostname_lookup']));
        if (!preg_match('/^(0|1)+$/i', $input['enable_hostname_lookup'])) {
            $newinput['enable_hostname_lookup'] = 0;
        }
    } else {
        $newinput['enable_hostname_lookup'] = 0;
    }
    if (isset($input['flushdb'])) {
        if ($input['flushdb'] == 'wantflushdb') {
            counterize_flush();
            $_SESSION['counterize_flusheddb'] = 'flushed';
        }
    }
    $newinput['flushdb'] = '';
    if (isset($input['refreshua'])) {
        if ($input['refreshua'] == 'wantrefreshua') {
            counterize_update_all_userAgents();
            $_SESSION['counterize_refreshedua'] = 'refreshed';
        }
    }
    $newinput['refreshua'] = '';
    if (isset($input['deletebots'])) {
        if ($input['deletebots'] == 'wantdeletebots') {
            //counterize_delete_bots();
            counterize_delete_bots_new();
            $_SESSION['counterize_deletedbots'] = 'deleted';
        }
    }
    $newinput['deletebots'] = '';
    /*
     * Email report section
     */
    //recipient list textarea
    $target_recipient_array = array();
    if (isset($input['recipientlist'])) {
        $input_recipient_array = explode(',', str_replace(' ', '', trim($input['recipientlist'])));
        foreach ($input_recipient_array as $recipient) {
            $target_recipient_array[] = $recipient;
        }
        unset($input_recipient_array);
    }
    $newinput['recipientlist'] = implode(',', $target_recipient_array);
    //report period radio
    if (isset($input['reportperiod'])) {
        $newinput['reportperiod'] = trim($input['reportperiod']);
        if (!preg_match('/^(never|daily|weekly|15days|monthly|3months|custom)$/i', $input['reportperiod'])) {
            $newinput['reportperiod'] = 'never';
        }
    } else {
        $newinput['reportperiod'] = 'never';
    }
    //custom period input
    if (isset($input['customperiod'])) {
        $newinput['customperiod'] = intval(trim($input['customperiod']));
        if (!preg_match('/^[0-9]+$/i', $input['customperiod'])) {
            $newinput['customperiod'] = 0;
        }
    } else {
        $newinput['customperiod'] = 0;
    }
    //mail subject override input
    if (isset($input['mailsubjectoverride'])) {
        $newinput['mailsubjectoverride'] = trim($input['mailsubjectoverride']);
        if (empty($newinput['mailsubjectoverride'])) {
            $newinput['mailsubjectoverride'] = '';
        }
    } else {
        $newinput['customperiod'] = '';
    }
    if (isset($input['reportwhat'])) {
        $newinput['reportwhat'] = implode(',', $input['reportwhat']);
    } else {
        $newinput['reportwhat'] = '';
    }
    if (isset($input['sendreportnow'])) {
        if ($input['sendreportnow'] == 'wantsendreportnow') {
            if (counterize_send_report_by_email($newinput)) {
                $_SESSION['counterize_report_status'] = 'sent';
            } else {
                $_SESSION['counterize_report_status'] = 'error';
            }
        }
    }
    $newinput['sendreportnow'] = '';
    //enable checkbox
    if (isset($input['enableemailreports'])) {
        $newinput['enableemailreports'] = intval(trim($input['enableemailreports']));
        if (!preg_match('/^(0|1){1}$/i', $input['enableemailreports'])) {
            $newinput['enableemailreports'] = 0;
        } else {
            $newinput = counterize_update_next_report_date($newinput, $newinput['reportperiod'], $newinput['customperiod']);
        }
    } else {
        $newinput['enableemailreports'] = 0;
    }
    return $newinput;
}