Example #1
0
function pc_registration_form($form_id = '', $layout = '', $forced_cats = false, $redirect = false)
{
    include_once PC_DIR . '/classes/pc_form_framework.php';
    include_once PC_DIR . '/classes/recaptchalib.php';
    // if is not set the target user category, return an error
    if (!get_option('pg_registration_cat')) {
        return __('You have to set registered users default category in settings', 'pc_ml');
    } else {
        $f_fw = new pc_form(array('use_custom_cat_name' => true, 'strip_no_reg_cats' => true));
        //// get form structure
        // if form not found - get first in list
        if (!(int) $form_id) {
            $rf = get_terms('pc_reg_form', 'hide_empty=0&order=DESC&number=1');
            if (empty($rf)) {
                return __('No registration forms found', 'pc_ml');
            }
            $rf = $rf[0];
        } else {
            $rf = get_term($form_id, 'pc_reg_form');
            if (empty($rf)) {
                $rf = get_terms('pc_reg_form', 'hide_empty=0&order=DESC&number=1');
                if (empty($rf)) {
                    return __('No registration forms found', 'pc_ml');
                }
                $rf = $rf[0];
            }
        }
        $form_structure = unserialize(base64_decode($rf->description));
        if (!is_array($form_structure) || !in_array('username', $form_structure['include']) || !in_array('psw', $form_structure['include'])) {
            return __('Username and password fields are mandatory', 'pc_ml');
        }
        // disclaimer inclusion
        if (get_option('pg_use_disclaimer')) {
            $form_structure['include'][] = 'pc_disclaimer';
        }
        // PC-FILTER - manage registration form structure - passes structure array and form id
        $form_structure = apply_filters('pc_registration_form', $form_structure, $rf->term_id);
        // layout class
        $layout = empty($layout) ? get_option('pg_reg_layout', 'one_col') : $layout;
        $layout_class = 'pc_' . $layout . '_form';
        // custom category parameter
        if (!empty($forced_cats) && !in_array("categories", $form_structure['include'])) {
            $cat_attr = 'pc_cc="' . $forced_cats . '"';
        } else {
            $cat_attr = '';
        }
        // custom redirect attribute
        if (!empty($redirect)) {
            $redir_attr = 'pc_redirect="' . $redirect . '"';
        } else {
            $redir_attr = '';
        }
        //// init structure
        $form = '<form class="pc_registration_form pc_rf_' . $rf->term_id . ' ' . $layout_class . '" ' . $cat_attr . ' ' . $redir_attr . ' rel="' . $rf->term_id . '">';
        $custom_fields = '';
        //// anti-spam system
        $antispam = get_option('pg_antispam_sys', 'honeypot');
        if ($antispam == 'honeypot') {
            $custom_fields .= $f_fw->honeypot_generator();
        } else {
            $publickey = "6LfQas0SAAAAAIdKJ6Y7MT17o37GJArsvcZv-p5K";
            $custom_fields .= '
			<script type="text/javascript">
		    var RecaptchaOptions = {theme : "clean"};
		    </script>

			<li class="pc_rf_recaptcha">' . pc_recaptcha_get_html($publickey) . '</li>';
        }
        $form .= $f_fw->form_code($form_structure, $custom_fields);
        $form .= '
		<div id="pc_reg_message"></div>

		<input type="button" class="pc_reg_btn" value="' . __('Submit', 'pc_ml') . '" />
		</form>';
        return $form;
    }
}