function rcl_get_tablist_options($content)
{
    global $tabs_rcl, $rcl_options;
    rcl_sortable_scripts();
    $opt = new Rcl_Options('tabs');
    if (!$tabs_rcl) {
        $content .= $opt->options(__('Setting tabs', 'wp-recall'), __('Neither one tab personal account not found', 'wp-recall'));
        return $content;
    }
    $tabs = '<p>' . __('Sort your tabs by dragging them to the desired position', 'wp-recall') . '</p>' . '<ul id="tabs-list-rcl" class="sortable">';
    if (isset($rcl_options['tabs']['order'])) {
        foreach ($rcl_options['tabs']['order'] as $order => $key) {
            if (!isset($tabs_rcl[$key])) {
                continue;
            }
            $tabs .= rcl_get_tab_option($key);
            $keys[$key] = 1;
        }
        foreach ($tabs_rcl as $key => $tab) {
            if (isset($keys[$key])) {
                continue;
            }
            $tabs .= rcl_get_tab_option($key, $tab);
        }
    } else {
        foreach ($tabs_rcl as $key => $tab) {
            if (!isset($tab['args']['order'])) {
                continue;
            }
            $order = $tab['args']['order'];
            if (isset($order)) {
                if (!isset($otabs[$order])) {
                    $otabs[$order][$key] = $tab;
                } else {
                    for ($a = $order; 1 == 1; $a++) {
                        if (!isset($otabs[$a])) {
                            $otabs[$a][$key] = $tab;
                            break;
                        }
                    }
                }
            }
        }
        foreach ($tabs_rcl as $key => $tab) {
            if (!isset($tab['args']['order'])) {
                $otabs[][$key] = $tab;
            }
        }
        ksort($otabs);
        foreach ($otabs as $order => $vals) {
            foreach ($vals as $key => $val) {
                $tabs .= rcl_get_tab_option($key, $val);
            }
        }
    }
    $tabs .= '</ul>';
    $tabs .= '<script>jQuery(function(){jQuery(".sortable").sortable();return false;});</script>';
    $content .= $opt->options(__('Setting tabs', 'wp-recall'), $opt->option_block(array($tabs)));
    return $content;
}
function rmag_custom_fields()
{
    global $wpdb;
    rcl_sortable_scripts();
    include_once RCL_PATH . 'functions/rcl_editfields.php';
    $f_edit = new Rcl_EditFields('orderform');
    if ($f_edit->verify()) {
        $fields = $f_edit->update_fields();
    }
    $content = '<h2>Управление полями Формы заказа</h2>

	' . $f_edit->edit_form(array($f_edit->option('select', array('name' => 'requared', 'notice' => 'обязательное поле', 'value' => array('Нет', 'Да')))));
    echo $content;
}
function rcl_group_init()
{
    global $wp_query, $wpdb, $rcl_group, $user_ID;
    if (!isset($wp_query->query_vars['groups'])) {
        return false;
    }
    $group_id = 0;
    $curent_term = get_term_by('slug', $wp_query->query_vars['groups'], 'groups');
    if ($curent_term->parent != 0) {
        $group_id = $curent_term->parent;
    } else {
        $group_id = $curent_term->term_id;
    }
    if (!$group_id) {
        return false;
    }
    $rcl_group = rcl_get_group($group_id);
    $rcl_group->current_user = rcl_group_current_user_status();
    $rcl_group->single_group = 1;
    if (rcl_is_group_can('admin') || current_user_can('edit_others_posts')) {
        rcl_sortable_scripts();
    }
    return $rcl_group;
}
function rcl_publication_editor()
{
    global $editpost, $rcl_options, $formfields, $formData;
    //print_r($formData);
    if ($formData->type_editor) {
        rcl_wp_editor();
    } else {
        $content = is_object($editpost) && $editpost->post_content ? $editpost->post_content : '';
        rcl_sortable_scripts();
        echo '<script>
		jQuery(function(){
			jQuery(".rcl-editor-content").sortable({ axis: "y", containment: "parent", handle: ".move-box", cursor: "move" });
		});
		</script>';
        if ($content) {
            $rcl_box = strpos($content, '[rcl-box');
            if ($rcl_box === false) {
                rcl_wp_editor(array('type_editor' => 1, 'wp_editor' => 3), $content);
                return;
            }
        }
        $panel = '';
        $buttons = array();
        if (isset($rcl_options['rcl_editor_buttons'])) {
            $icons = array('text' => 'fa-align-left', 'header' => 'fa-header', 'image' => 'fa-picture-o', 'html' => 'fa-code');
            $names = array('text' => __('Text Box', 'wp-recall'), 'header' => __('Subtitle', 'wp-recall'), 'image' => __('Image', 'wp-recall'), 'html' => __('HTML- code', 'wp-recall'));
            foreach ($rcl_options['rcl_editor_buttons'] as $type) {
                $buttons[] = '<li><a href="#" title="' . $names[$type] . '" class="get-' . $type . '-box" onclick="return rcl_add_editor_box(this,\'' . $type . '\');"><i class="fa ' . $icons[$type] . '"></i></a></li>';
            }
            if ($buttons) {
                $panel = '<div class="rcl-tools-panel">
						<ul>' . implode('', $buttons) . '</ul>
						</div>';
            }
        }
        echo '
		<div class="rcl-public-editor">

			<div class="rcl-editor-content">
				' . rcl_get_editor_content($content) . '
			</div>
			' . $panel . '
		</div>';
    }
}
Example #5
0
function rcl_manage_profile_fields()
{
    rcl_sortable_scripts();
    if (!class_exists('Rcl_EditFields')) {
        include_once RCL_PATH . 'functions/rcl_editfields.php';
    }
    $f_edit = new Rcl_EditFields('profile');
    $default_form = '';
    $profile_default_fields = rcl_get_default_fields_profile();
    if ($f_edit->verify()) {
        $f_edit->update_fields('usermeta');
        $_posts = $_POST;
        $save_data = array();
        foreach ($profile_default_fields as $filed) {
            if (isset($_posts[$filed['id']]) && $_posts[$filed['id']] == 'on') {
                array_push($save_data, $filed['id']);
            }
        }
        update_option('show_defolt_field', $save_data);
    }
    $profile_default_fields_styles = "\n\t\t<style>\n\t\t#inputs_user_fields table {\n\t\t\tcursor: move;\n\t\t\tbackground:#fafafa;\n\t\t\tborder: 1px solid #CCCCCC;\n\t\t\tborder-radius: 5px 5px 5px 5px;\n\t\t\tmargin: 2px;\n\t\t\twidth: 100%;\n\t\t\t}\n\t\ttable td {\n\t\t\tpadding: 2px 10px;\n\t\t\t}\n\t\t#inputs_user_fields textarea {\n\t\t\twidth:100%;\n\t\t\t}\n\t\t.two-col {\n\t\t\twidth:20%;\n\t\t\t}\n\t\t#inputs_user_fields .new {\n\t\t\tbackground:yellow;\n\t\t\tcursor: default;\n\t\t\t}\n\t\t</style>";
    if (sizeof($profile_default_fields) > 0) {
        $default_form .= apply_filters('rcl_profile_default_fields_styles', $profile_default_fields_styles);
        $default_form .= '<p>' . __('Fields to display in the profile note ticks.', 'wp-recall') . '</p>';
        $default_form .= '<table class="form-table" style="width:600px;">';
        $field_loop = $loop = 0;
        foreach ($profile_default_fields as $field) {
            $field_loop++;
            if (0 == ($field_loop - 1) % 2) {
                $default_form .= '<tr class="rcl_defoult_row">';
            }
            $df_field = get_option('show_defolt_field');
            $checked = $df_field && in_array($field['id'], $df_field) ? 'checked="checked"' : '';
            $default_form .= sprintf(__('<td><input type="%s" name="%s" %s /></td><td>%s</td>', 'wp-recall'), $field['type'], $field['id'], $checked, $field['label']);
            if (0 == $field_loop % 2 || $field_loop == count($profile_default_fields)) {
                $default_form .= '</tr><!-- End .rcl_defoult_row -->';
            }
            $loop++;
        }
        $default_form .= '</table>';
    }
    $users_fields = '<h2>' . __('Manage profile fields', 'wp-recall') . '</h2>' . $f_edit->edit_form(array($f_edit->option('select', array('name' => 'requared', 'notice' => __('required field', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))), $f_edit->option('select', array('name' => 'register', 'notice' => __('to display the registration form', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))), $f_edit->option('select', array('name' => 'order', 'notice' => __('display at checkout for guests', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))), $f_edit->option('select', array('name' => 'req', 'notice' => __('to show the content to other users', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))), $f_edit->option('select', array('name' => 'admin', 'notice' => __('it only changes the administration of the site', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall'))))), $default_form);
    echo $users_fields;
}
Example #6
0
function rcl_manage_publicform()
{
    global $wpdb;
    rcl_sortable_scripts();
    $form = isset($_GET['form']) ? $_GET['form'] : false;
    if (isset($_POST['delete-form']) && wp_verify_nonce($_POST['_wpnonce'], 'update-public-fields')) {
        $id_form = intval($_POST['id-form']);
        $_GET['status'] = 'old';
        $wpdb->query($wpdb->prepare("DELETE FROM " . $wpdb->prefix . "options WHERE option_name LIKE 'custom_public_fields_%d'", $id_form));
    }
    if (!$form) {
        $option_name = $wpdb->get_var("SELECT option_name FROM " . $wpdb->prefix . "options WHERE option_name LIKE 'custom_public_fields%'");
        if ($option_name) {
            $form = preg_replace("/[a-z_]+/", '', $option_name);
        } else {
            $form = 1;
        }
    }
    include_once RCL_PATH . 'functions/rcl_editfields.php';
    $f_edit = new Rcl_EditFields('post', array('id' => $form, 'custom-slug' => 1, 'terms' => 1));
    if ($f_edit->verify()) {
        $_GET['status'] = 'old';
        $fields = $f_edit->update_fields();
    }
    $custom_public_form_data = $wpdb->get_results("SELECT * FROM " . $wpdb->prefix . "options WHERE option_name LIKE 'custom_public_fields%' ORDER BY option_id ASC");
    if ($custom_public_form_data) {
        $form_navi = '<h3>' . __('Available forms', 'wp-recall') . '</h3><div class="form-navi">';
        foreach ((array) $custom_public_form_data as $form_data) {
            $id_form = preg_replace("/[a-z_]+/", '', $form_data->option_name);
            if ($form == $id_form) {
                $class = 'button-primary';
            } else {
                $class = 'button-secondary';
            }
            $form_navi .= '<input class="' . $class . '" type="button" onClick="document.location=\'' . admin_url('admin.php?page=manage-public-form&form=' . $id_form) . '\';" value="ID:' . $id_form . '" name="public-form-' . $id_form . '">';
        }
        if (!isset($_GET['status']) || $_GET['status'] != 'new') {
            $form_navi .= '<input class="button-secondary" type="button" onClick="document.location=\'' . admin_url('admin.php?page=manage-public-form&form=' . ++$id_form . '&status=new') . '\';" value="' . __('To add another form') . '" name="public-form-' . $id_form . '">';
        }
        $form_navi .= '</div>

		<h3>' . __('Form ID', 'wp-recall') . ':' . $form . ' </h3>';
        if (!isset($_GET['status']) || $_GET['status'] != 'new') {
            $form_navi .= '<form method="post" action="">
			' . wp_nonce_field('update-public-fields', '_wpnonce', true, false) . '
			<input class="button-primary" type="submit" value="' . __('To remove all fields', 'wp-recall') . '" onClick="return confirm(\'' . __('Вы уверены?', 'wp-recall') . '\');" name="delete-form">
			<input type="hidden" value="' . $form . '" name="id-form">
		</form>';
        }
    } else {
        $form = 1;
        $form_navi = '<h3>' . __('Form ID', 'wp-recall') . ':' . $form . ' </h3>';
    }
    $users_fields = '<h2>' . __('Arbitrary form fields publishing', 'wp-recall') . '</h2>
	<small>Для размещения формы публикации используем шорткод [public-form]</small><br>
        <small>Можно создавать разный набор произвольных полей для разных форм.<br>
        Чтобы вывести определенный набор полей через шорткод следует указать идентификатор формы, например, [public-form id="2"]</small><br>
	<small>Форма публикации уже содержит обязательные поля для заголовка записи, контента, ее категории и указания метки.</small><br>
	' . $form_navi . '
	' . $f_edit->edit_form(array($f_edit->option('select', array('name' => 'requared', 'notice' => __('required field', 'wp-recall'), 'value' => array(__('No', 'wp-recall'), __('Yes', 'wp-recall')))))) . '
	<p>Чтобы вывести все данные занесенные в созданные произвольные поля формы публикации внутри опубликованной записи можно воспользоваться функцией<br />
	<b>rcl_get_custom_post_meta($post_id)</b><br />
	Разместите ее внутри цикла и передайте ей идентификатор записи первым аргументом<br />
	Также можно вывести каждое произвольное поле в отдельности через функцию<br />
	<b>get_post_meta($post_id,$slug,1)</b><br />
	где<br />
	$post_id - идентификатор записи<br />
	$slug - ярлык произвольного поля формы</p>';
    echo $users_fields;
}