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; } }