Example #1
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_url_editor_submit($data, $field, $context)
{
    $add = '';
    if (!empty($data['title'])) {
        $add .= ' title="' . strval($data['title']) . '"';
    }
    if (!empty($data['no_protocol'])) {
        $add .= ' no_protocol="true"';
    }
    if (!empty($data['target'])) {
        if ($data['target'] == 'framename') {
            $add .= ' target="' . strval($data['framename']) . '"';
        } else {
            if ($data['target'] != '_self') {
                $add .= ' target="' . strval($data['target']) . '"';
            }
        }
    }
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $shortcode = wpcf_usermeta_get_shortcode($field, $add);
    } else {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
    }
    return $shortcode;
}
Example #2
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_checkboxes_editor_submit()
{
    $add = '';
    $field = wpcf_admin_fields_get_field($_GET['field_id']);
    $shortcode = '';
    if (!empty($field)) {
        if (!empty($_POST['options'])) {
            if ($_POST['display'] == 'display_all') {
                $separator = !empty($_POST['separator']) ? $_POST['separator'] : '';
                $shortcode .= '[types field="' . $field['slug'] . '" separator="' . $separator . '"]' . '[/types] ';
            } else {
                $i = 0;
                foreach ($_POST['options'] as $option_key => $option) {
                    if ($_POST['display'] == 'value') {
                        $shortcode .= '[types field="' . $field['slug'] . '" option="' . $i . '" state="checked"]' . $option['display_value_selected'] . '[/types] ';
                        $shortcode .= '[types field="' . $field['slug'] . '" option="' . $i . '" state="unchecked"]' . $option['display_value_not_selected'] . '[/types] ';
                    } else {
                        $add = ' option="' . $i . '"';
                        $shortcode .= wpcf_fields_get_shortcode($field, $add) . ' ';
                    }
                    $i++;
                }
            }
        }
        echo editor_admin_popup_insert_shortcode_js($shortcode);
        die;
    }
}
Example #3
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_entry_editor_submit($data, $field, $context)
{
    $shortcode = '';
    if (isset($data['display']) && preg_match('/^post-[\\-a-z]+$/', $data['display'])) {
        $add = sprintf(' display="%s"', $data['display']);
        if ($context == 'usermeta') {
            $shortcode = wpcf_usermeta_get_shortcode($field, $add);
        } else {
            $shortcode = wpcf_fields_get_shortcode($field, $add);
        }
    }
    return $shortcode;
}
Example #4
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_email_editor_submit()
{
    $add = '';
    if (!empty($_POST['title'])) {
        $add = ' title="' . strval($_POST['title']) . '"';
    }
    $field = wpcf_admin_fields_get_field($_GET['field_id']);
    if (!empty($field)) {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
        wpcf_admin_fields_save_field_last_settings($_GET['field_id'], $_POST);
        echo wpcf_admin_fields_popup_insert_shortcode_js($shortcode);
        die;
    }
}
Example #5
0
/**
 * Editor submit.
 */
function wpcf_fields_skype_editor_submit($data, $field, $context)
{
    $add = '';
    if (!empty($data['button_style'])) {
        $add .= ' button_style="' . strval($data['button_style']) . '"';
    }
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $shortcode = wpcf_usermeta_get_shortcode($field, $add);
    } else {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
    }
    return $shortcode;
}
Example #6
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_url_editor_submit()
{
    $add = '';
    if (!empty($_POST['title'])) {
        $add .= ' title="' . strval($_POST['title']) . '"';
    }
    $add .= ' class=""';
    $field = wpcf_admin_fields_get_field($_GET['field_id']);
    if (!empty($field)) {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
        echo wpcf_admin_fields_popup_insert_shortcode_js($shortcode);
        die;
    }
}
Example #7
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_numeric_editor_submit()
{
    $add = '';
    if (!empty($_POST['format'])) {
        $add .= ' format="' . strval($_POST['format']) . '"';
    }
    $field = wpcf_admin_fields_get_field($_GET['field_id']);
    if (!empty($field)) {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
        wpcf_admin_fields_save_field_last_settings($_GET['field_id'], array('format' => $_POST['format']));
        echo editor_admin_popup_insert_shortcode_js($shortcode);
        die;
    }
}
Example #8
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_checkbox_editor_submit()
{
    $add = '';
    $field = wpcf_admin_fields_get_field($_GET['field_id']);
    if (!empty($field)) {
        if ($_POST['display'] == 'value') {
            $shortcode = '[types field="' . $field['slug'] . '" state="checked"]' . $_POST['display_value_selected'] . '[/types] ';
            $shortcode .= '[types field="' . $field['slug'] . '" state="unchecked"]' . $_POST['display_value_not_selected'] . '[/types]';
        } else {
            $shortcode = wpcf_fields_get_shortcode($field, $add);
        }
        echo wpcf_admin_fields_popup_insert_shortcode_js($shortcode);
        die;
    }
}
Example #9
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_radio_editor_submit()
{
    $add = '';
    $field = wpcf_admin_fields_get_field($_GET['field_id']);
    if (!empty($field)) {
        if ($_POST['display'] == 'value' && !empty($_POST['options'])) {
            $shortcode = '';
            foreach ($_POST['options'] as $option_id => $value) {
                $shortcode .= '[types field="' . $field['slug'] . '" option="' . $option_id . '"]' . $value . '[/types] ';
            }
        } else {
            $shortcode = wpcf_fields_get_shortcode($field, $add);
        }
        echo wpcf_admin_fields_popup_insert_shortcode_js($shortcode);
        die;
    }
}
Example #10
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_audio_editor_submit($data, $field, $context)
{
    $add = '';
    if (!empty($data['loop'])) {
        $add .= " loop=\"{$data['loop']}\"";
    }
    if (!empty($data['autoplay'])) {
        $add .= " autoplay=\"{$data['autoplay']}\"";
    }
    if (!empty($data['preload'])) {
        $add .= " preload=\"{$data['preload']}\"";
    }
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $shortcode = wpcf_usermeta_get_shortcode($field, $add);
    } else {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
    }
    return $shortcode;
}
Example #11
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_radio_editor_submit($data, $field, $context)
{
    $add = '';
    $types_attr = $context == 'usermeta' ? 'usermeta' : 'field';
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
    }
    if (isset($data['display']) && $data['display'] == 'value' && !empty($data['options'])) {
        $shortcode = '';
        foreach ($data['options'] as $option_id => $value) {
            $shortcode .= '[types ' . $types_attr . '="' . $field['slug'] . '" ' . $add . ' option="' . $option_id . '"]' . $value . '[/types] ';
        }
    } else {
        if ($context == 'usermeta') {
            $shortcode = wpcf_usermeta_get_shortcode($field, $add);
        } else {
            $shortcode = wpcf_fields_get_shortcode($field, $add);
        }
    }
    return $shortcode;
}
Example #12
0
 /**
  * Process if submitted.
  *
  * Field should provide callback function
  * that will be called automatically.
  *
  * Function should be named like:
  * 'wpcf_fields_' . $field_type . '_editor_submit'
  * e.g. 'wpcf_fields_checkbox_editor_submit'
  *
  * Function should return shortcode string.
  */
 function _thickbox_check_submit()
 {
     if (!empty($_POST['__types_editor_nonce']) && wp_verify_nonce($_POST['__types_editor_nonce'], 'types_editor_frame')) {
         $function = 'wpcf_fields_' . strtolower($this->field['type']) . '_editor_submit';
         if (function_exists($function)) {
             /*
              * Callback
              */
             $shortcode = call_user_func($function, $_POST, $this->field, $this->_meta_type);
         } else {
             /*
              * Generic
              */
             if ($this->_meta_type == 'usermeta') {
                 $add = wpcf_get_usermeta_form_addon_submit();
                 $shortcode = wpcf_usermeta_get_shortcode($this->field, $add);
             } else {
                 $shortcode = wpcf_fields_get_shortcode($this->field);
             }
         }
         if (!empty($shortcode)) {
             /**
              * remove <script> tag from all data
              * remove not allowed tags from shortcode using wp_kses_post
              */
             $shortcode = preg_replace('@</?script[^>]*>@im', '', wp_kses_post($shortcode));
             // Add additional parameters if required
             $shortcode = $this->_add_parameters_to_shortcode($shortcode, $_POST);
             // Insert shortcode
             echo '<script type="text/javascript">jQuery(function(){tedFrame.close(\'' . $shortcode . '\', \'' . esc_js($shortcode) . '\');});</script>';
         } else {
             echo '<div class="message error"><p>' . __('Shortcode generation failed', 'wpcf') . '</p></div>';
         }
         wpcf_admin_ajax_footer();
         die;
     }
 }
Example #13
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_file_editor_submit()
{
    $add = '';
    if (!empty($_POST['link'])) {
        $add .= ' link="true"';
        if (!empty($_POST['title'])) {
            $add .= ' title="' . strval($_POST['title']) . '"';
        }
    }
    if (!empty($_POST['class'])) {
        $add .= ' class="' . $_POST['class'] . '"';
    }
    if (!empty($_POST['style'])) {
        $add .= ' style="' . $_POST['style'] . '"';
    }
    $field = wpcf_admin_fields_get_field($_GET['field_id']);
    if (!empty($field)) {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
        wpcf_admin_fields_save_field_last_settings($_GET['field_id'], $_POST);
        echo editor_admin_popup_insert_shortcode_js($shortcode);
        die;
    }
}
Example #14
0
/**
 * Adds items to view dropdown.
 * 
 * @param type $items
 * @return type 
 */
function wpcf_admin_post_editor_addon_menus_filter($items)
{
    $groups = wpcf_admin_fields_get_groups();
    $add = array();
    if (!empty($groups)) {
        // $group_id is blank therefore not equal to $group['id']
        // use array for item key and CSS class
        $item_styles = array();
        $all_post_types = implode(' ', get_post_types(array('public' => true)));
        foreach ($groups as $group_id => $group) {
            $fields = wpcf_admin_fields_get_fields_by_group($group['id'], 'slug', true, false, true);
            if (!empty($fields)) {
                // code from Types used here without breaking the flow
                // get post types list for every group or apply all
                $post_types = get_post_meta($group['id'], '_wp_types_group_post_types', true);
                if ($post_types == 'all') {
                    $post_types = $all_post_types;
                }
                $post_types = trim(str_replace(',', ' ', $post_types));
                $item_styles[$group['name']] = $post_types;
                foreach ($fields as $field_id => $field) {
                    // Get field data
                    $data = wpcf_fields_type_action($field['type']);
                    // Get inherited field
                    if (isset($data['inherited_field_type'])) {
                        $inherited_field_data = wpcf_fields_type_action($data['inherited_field_type']);
                    }
                    $callback = '';
                    if (isset($data['editor_callback'])) {
                        $callback = sprintf($data['editor_callback'], $field['id']);
                    } else {
                        // Set callback if function exists
                        $function = 'wpcf_fields_' . $field['type'] . '_editor_callback';
                        $callback = function_exists($function) ? 'wpcfFieldsEditorCallback(\'' . $field['id'] . '\')' : '';
                    }
                    $add[$group['name']][stripslashes($field['name'])] = array(stripslashes($field['name']), trim(wpcf_fields_get_shortcode($field), '[]'), $group['name'], $callback);
                    // Process JS
                    if (!empty($data['meta_box_js'])) {
                        foreach ($data['meta_box_js'] as $handle => $data_script) {
                            if (isset($data_script['inline'])) {
                                add_action('admin_footer', $data_script['inline']);
                                continue;
                            }
                            $deps = !empty($data_script['deps']) ? $data_script['deps'] : array();
                            wp_enqueue_script($handle, $data_script['src'], $deps, WPCF_VERSION);
                        }
                    }
                    // Process CSS
                    if (!empty($data['meta_box_css'])) {
                        foreach ($data['meta_box_css'] as $handle => $data_script) {
                            $deps = !empty($data_script['deps']) ? $data_script['deps'] : array();
                            if (isset($data_script['inline'])) {
                                add_action('admin_header', $data_script['inline']);
                                continue;
                            }
                            wp_enqueue_style($handle, $data_script['src'], $deps, WPCF_VERSION);
                        }
                    }
                }
            }
        }
    }
    $search_key = '';
    // Iterate all items to be displayed in the "V" menu
    foreach ($items as $key => $item) {
        if ($key == __('Basic', 'wpv-views')) {
            $search_key = 'found';
            continue;
        }
        if ($search_key == 'found') {
            $search_key = $key;
        }
        if ($key == __('Field', 'wpv-views') && isset($item[trim(wpcf_types_get_meta_prefix(), '-')])) {
            unset($items[$key][trim(wpcf_types_get_meta_prefix(), '-')]);
        }
    }
    if (empty($search_key) || $search_key == 'found') {
        $search_key = count($items);
    }
    $insert_position = array_search($search_key, array_keys($items));
    $part_one = array_slice($items, 0, $insert_position);
    $part_two = array_slice($items, $insert_position);
    $items = $part_one + $add + $part_two;
    // apply CSS styles to each item based on post types
    foreach ($items as $key => $value) {
        if (isset($item_styles[$key])) {
            $items[$key]['css'] = $item_styles[$key];
        } else {
            $items[$key]['css'] = $all_post_types;
        }
    }
    return $items;
}
Example #15
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_embed_editor_submit($data, $field, $context)
{
    $add = '';
    if (!empty($data['width'])) {
        $add .= " width=\"{$data['width']}\"";
    }
    if (!empty($data['height'])) {
        $add .= " height=\"{$data['height']}\"";
    }
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $shortcode = wpcf_usermeta_get_shortcode($field, $add);
    } else {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
    }
    return $shortcode;
}
Example #16
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_video_editor_submit($data, $field, $context)
{
    $add = '';
    if (!empty($data['width'])) {
        $add .= " width=\"{$data['width']}\"";
    }
    if (!empty($data['height'])) {
        $add .= " height=\"{$data['height']}\"";
    }
    if (!empty($data['poster'])) {
        $add .= " poster=\"{$data['poster']}\"";
    }
    if (!empty($data['loop'])) {
        $add .= " loop=\"{$data['loop']}\"";
    }
    if (!empty($data['autoplay'])) {
        $add .= " autoplay=\"{$data['autoplay']}\"";
    }
    if (!empty($data['preload'])) {
        $add .= " preload=\"{$data['preload']}\"";
    }
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $shortcode = wpcf_usermeta_get_shortcode($field, $add);
    } elseif ($context == 'termmeta') {
        $add .= wpcf_get_termmeta_form_addon_submit();
        $shortcode = wpcf_termmeta_get_shortcode($field, $add);
    } else {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
    }
    return $shortcode;
}
/**
 * Editor callback form submit.
 */
function wpcf_fields_checkbox_editor_submit($data, $field, $context)
{
    $add = '';
    $types_attr = 'field';
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $types_attr = 'usermeta';
    }
    if (isset($data['display']) && $data['display'] == 'value') {
        $checked_add = $add . ' state="checked"';
        $unchecked_add = $add . ' state="unchecked"';
        if ($context == 'usermeta') {
            $shortcode_checked = wpcf_usermeta_get_shortcode($field, $checked_add, $data['selected']);
            $shortcode_unchecked = wpcf_usermeta_get_shortcode($field, $unchecked_add, $data['not_selected']);
        } else {
            $shortcode_checked = wpcf_fields_get_shortcode($field, $checked_add, $data['selected']);
            $shortcode_unchecked = wpcf_fields_get_shortcode($field, $unchecked_add, $data['not_selected']);
        }
        $shortcode = $shortcode_checked . $shortcode_unchecked;
    } else {
        if ($context == 'usermeta') {
            $shortcode = wpcf_usermeta_get_shortcode($field, $add);
        } else {
            $shortcode = wpcf_fields_get_shortcode($field, $add);
        }
    }
    return $shortcode;
}
/**
 * Adds items to view dropdown.
 * 
 * @param type $items
 * @return type 
 */
function wpcf_admin_post_editor_addon_menus_filter($items)
{
    $groups = wpcf_admin_fields_get_groups();
    $add = array();
    if (!empty($groups)) {
        foreach ($groups as $group_id => $group) {
            $fields = wpcf_admin_fields_get_fields_by_group($group['id'], 'slug', true, false, true);
            if (!empty($fields)) {
                foreach ($fields as $field_id => $field) {
                    // Get field data
                    $data = wpcf_fields_type_action($field['type']);
                    // Get inherited field
                    if (isset($data['inherited_field_type'])) {
                        $inherited_field_data = wpcf_fields_type_action($data['inherited_field_type']);
                    }
                    $callback = '';
                    if (isset($data['editor_callback'])) {
                        $callback = sprintf($data['editor_callback'], $field['id']);
                    } else {
                        // Set callback if function exists
                        $function = 'wpcf_fields_' . $field['type'] . '_editor_callback';
                        $callback = function_exists($function) ? 'wpcfFieldsEditorCallback(\'' . $field['id'] . '\')' : '';
                    }
                    $add[$group['name']][stripslashes($field['name'])] = array(stripslashes($field['name']), trim(wpcf_fields_get_shortcode($field), '[]'), $group['name'], $callback);
                    // Process JS
                    if (!empty($data['meta_box_js'])) {
                        foreach ($data['meta_box_js'] as $handle => $data_script) {
                            if (isset($data_script['inline'])) {
                                add_action('admin_footer', $data_script['inline']);
                                continue;
                            }
                            $deps = !empty($data_script['deps']) ? $data_script['deps'] : array();
                            wp_enqueue_script($handle, $data_script['src'], $deps, WPCF_VERSION);
                        }
                    }
                    // Process CSS
                    if (!empty($data['meta_box_css'])) {
                        foreach ($data['meta_box_css'] as $handle => $data_script) {
                            $deps = !empty($data_script['deps']) ? $data_script['deps'] : array();
                            if (isset($data_script['inline'])) {
                                add_action('admin_header', $data_script['inline']);
                                continue;
                            }
                            wp_enqueue_style($handle, $data_script['src'], $deps, WPCF_VERSION);
                        }
                    }
                }
            }
        }
    }
    $search_key = '';
    foreach ($items as $key => $item) {
        if ($key == __('Basic', 'wpv-views')) {
            $search_key = 'found';
            continue;
        }
        if ($search_key == 'found') {
            $search_key = $key;
        }
        if ($key == __('Field', 'wpv-views') && isset($item[trim(wpcf_types_get_meta_prefix(), '-')])) {
            unset($items[$key][trim(wpcf_types_get_meta_prefix(), '-')]);
        }
    }
    if (empty($search_key) || $search_key == 'found') {
        $search_key = count($items);
    }
    $insert_position = array_search($search_key, array_keys($items));
    $part_one = array_slice($items, 0, $insert_position);
    $part_two = array_slice($items, $insert_position);
    $items = $part_one + $add + $part_two;
    return $items;
}
Example #19
0
/**
 * Inserts shortcode in editor.
 * 
 * @return type 
 */
function wpcf_fields_date_editor_form_submit()
{
    require_once WPCF_EMBEDDED_INC_ABSPATH . '/fields.php';
    if (!isset($_POST['wpcf']['field_id'])) {
        return false;
    }
    $field = wpcf_admin_fields_get_field($_POST['wpcf']['field_id']);
    if (empty($field)) {
        return false;
    }
    $add = ' ';
    $style = isset($_POST['wpcf']['style']) ? $_POST['wpcf']['style'] : 'text';
    $add .= 'style="' . $style . '"';
    $format = '';
    if ($style == 'text') {
        if ($_POST['wpcf']['format'] == 'custom') {
            $format = $_POST['wpcf']['format-custom'];
        } else {
            $format = $_POST['wpcf']['format'];
        }
        if (empty($format)) {
            $format = get_option('date_format');
        }
        $add .= ' format="' . $format . '"';
    }
    $shortcode = wpcf_fields_get_shortcode($field, $add);
    wpcf_admin_fields_save_field_last_settings($_POST['wpcf']['field_id'], array('style' => $style, 'format' => $_POST['wpcf']['format'], 'format-custom' => $_POST['wpcf']['format-custom']));
    echo editor_admin_popup_insert_shortcode_js($shortcode);
    die;
}
Example #20
0
/**
 * Adds items to view dropdown.
 *
 * Core function. Works and stable. Do not move or change.
 * If required, add hooks only.
 *
 * @todo Remove (to WPCF_WPViews)
 *
 * @param type $menu
 * @return type
 */
function wpcf_admin_post_editor_addon_menus_filter($menu)
{
    global $wpcf;
    $post = wpcf_admin_get_edited_post();
    if (empty($post)) {
        $post = (object) array('ID' => -1);
    }
    $groups = wpcf_admin_fields_get_groups('wp-types-group', 'group_active');
    $all_post_types = implode(' ', get_post_types(array('public' => true)));
    $add = array();
    if (!empty($groups)) {
        // $group_id is blank therefore not equal to $group['id']
        // use array for item key and CSS class
        $item_styles = array();
        foreach ($groups as $group_id => $group) {
            $fields = wpcf_admin_fields_get_fields_by_group($group['id'], 'slug', true, false, true);
            if (!empty($fields)) {
                // code from Types used here without breaking the flow
                // get post types list for every group or apply all
                $post_types = get_post_meta($group['id'], '_wp_types_group_post_types', true);
                if ($post_types == 'all') {
                    $post_types = $all_post_types;
                }
                $post_types = trim(str_replace(',', ' ', $post_types));
                $item_styles[$group['name']] = $post_types;
                foreach ($fields as $field_id => $field) {
                    // Use field class
                    $wpcf->field->set($wpcf->post, $field);
                    // Get field data
                    $data = (array) $wpcf->field->config;
                    // Get inherited field
                    if (isset($data['inherited_field_type'])) {
                        $inherited_field_data = wpcf_fields_type_action($data['inherited_field_type']);
                    }
                    $callback = 'wpcfFieldsEditorCallback(\'' . $field['id'] . '\', \'postmeta\', ' . $post->ID . ')';
                    $menu[$group['name']][stripslashes($field['name'])] = array(stripslashes($field['name']), trim(wpcf_fields_get_shortcode($field), '[]'), $group['name'], $callback);
                    /*
                     * Since Types 1.2
                     * We use field class to enqueue JS and CSS
                     */
                    $wpcf->field->enqueue_script();
                    $wpcf->field->enqueue_style();
                }
            }
        }
    }
    /*
        $search_key = '';
    
        // Iterate all items to be displayed in the "V" menu
        foreach ( $items as $key => $item ) {
            if ( $key == __( 'Basic', 'wpv-views' ) ) {
                $search_key = 'found';
                continue;
            }
            if ( $search_key == 'found' ) {
                $search_key = $key;
            }
    
            if ( $key == __( 'Field', 'wpv-views' ) && isset( $item[trim( wpcf_types_get_meta_prefix(),
                                    '-' )] ) ) {
                unset( $items[$key][trim( wpcf_types_get_meta_prefix(), '-' )] );
            }
        }
        if ( empty( $search_key ) || $search_key == 'found' ) {
            $search_key = count( $items );
        }
    
        $insert_position = array_search( $search_key, array_keys( $items ) );
        $part_one = array_slice( $items, 0, $insert_position );
        $part_two = array_slice( $items, $insert_position );
        $items = $part_one + $add + $part_two;
    
        // apply CSS styles to each item based on post types
        foreach ( $items as $key => $value ) {
            if ( isset( $item_styles[$key] ) ) {
                $items[$key]['css'] = $item_styles[$key];
            } else {
                $items[$key]['css'] = $all_post_types;
            }
        }
    */
    return $menu;
}
/**
 * Adds items to view dropdown.
 *
 * Core function. Works and stable. Do not move or change.
 * If required, add hooks only.
 *
 * @todo Remove (to WPCF_WPViews)
 *
 * @param type $menu
 * @return type
 */
function wpcf_admin_post_editor_addon_menus_filter($menu)
{
    global $wpcf;
    $post = wpcf_admin_get_edited_post();
    if (empty($post)) {
        $post = (object) array('ID' => -1);
    }
    $groups = wpcf_admin_fields_get_groups(TYPES_CUSTOM_FIELD_GROUP_CPT_NAME, 'group_active');
    $all_post_types = implode(' ', get_post_types(array('public' => true)));
    $add = array();
    if (!empty($groups)) {
        // $group_id is blank therefore not equal to $group['id']
        // use array for item key and CSS class
        $item_styles = array();
        foreach ($groups as $group_id => $group) {
            $fields = wpcf_admin_fields_get_fields_by_group($group['id'], 'slug', true, false, true);
            if (!empty($fields)) {
                // code from Types used here without breaking the flow
                // get post types list for every group or apply all
                $post_types = get_post_meta($group['id'], '_wp_types_group_post_types', true);
                if ($post_types == 'all') {
                    $post_types = $all_post_types;
                }
                $post_types = trim(str_replace(',', ' ', $post_types));
                $item_styles[$group['name']] = $post_types;
                foreach ($fields as $field_id => $field) {
                    // Use field class
                    $wpcf->field->set($wpcf->post, $field);
                    // Get field data
                    $data = (array) $wpcf->field->config;
                    // Get inherited field
                    if (isset($data['inherited_field_type'])) {
                        $inherited_field_data = wpcf_fields_type_action($data['inherited_field_type']);
                    }
                    $callback = 'wpcfFieldsEditorCallback(\'' . $field['id'] . '\', \'postmeta\', ' . $post->ID . ')';
                    $menu[$group['name']][stripslashes($field['name'])] = array(stripslashes($field['name']), trim(wpcf_fields_get_shortcode($field), '[]'), $group['name'], $callback);
                    /*
                     * Since Types 1.2
                     * We use field class to enqueue JS and CSS
                     */
                    $wpcf->field->enqueue_script();
                    $wpcf->field->enqueue_style();
                }
            }
        }
    }
    return $menu;
}
Example #22
0
 /**
  * Adds items to view dropdown.
  * 
  * @param type $items
  * @return type 
  */
 public static function editorDropdownFilter($menu)
 {
     $post = wpcf_admin_get_edited_post();
     if (empty($post)) {
         $post = (object) array('ID' => -1);
     }
     $groups = wpcf_admin_fields_get_groups('wp-types-group', 'group_active');
     $all_post_types = implode(' ', get_post_types(array('public' => true)));
     $add = array();
     if (!empty($groups)) {
         // $group_id is blank therefore not equal to $group['id']
         // use array for item key and CSS class
         $item_styles = array();
         foreach ($groups as $group) {
             $fields = wpcf_admin_fields_get_fields_by_group($group['id'], 'slug', true, false, true);
             if (!empty($fields)) {
                 // code from Types used here without breaking the flow
                 // get post types list for every group or apply all
                 $post_types = get_post_meta($group['id'], '_wp_types_group_post_types', true);
                 if ($post_types == 'all') {
                     $post_types = $all_post_types;
                 }
                 $post_types = trim(str_replace(',', ' ', $post_types));
                 $item_styles[$group['name']] = $post_types;
                 foreach ($fields as $field) {
                     $callback = 'wpcfFieldsEditorCallback(\'' . $field['id'] . '\', \'postmeta\', ' . $post->ID . ')';
                     $menu[$group['name']][stripslashes($field['name'])] = array(stripslashes($field['name']), trim(wpcf_fields_get_shortcode($field), '[]'), $group['name'], $callback);
                     // TODO Remove - it's not post edit screen (meta box JS and CSS)
                     WPCF_Fields::enqueueScript($field['type']);
                     WPCF_Fields::enqueueStyle($field['type']);
                 }
             }
         }
     }
     return $menu;
 }
Example #23
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_numeric_editor_submit($data, $field, $context)
{
    $add = '';
    if (!empty($data['format'])) {
        $add .= ' format="' . strval($data['format']) . '"';
    }
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $shortcode = wpcf_usermeta_get_shortcode($field, $add);
    } elseif ($context == 'termmeta') {
        $add .= wpcf_get_termmeta_form_addon_submit();
        $shortcode = wpcf_termmeta_get_shortcode($field, $add);
    } else {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
    }
    return $shortcode;
}
Example #24
0
/**
 * Processes editor popup submit
 */
function wpcf_fields_google_map_editor_submit($data, $field)
{
    $add = '';
    // Add parameters
    if (!empty($data['width'])) {
        $add .= ' width="' . strval($data['width']) . '"';
    }
    if (!empty($data['height'])) {
        $add .= ' height="' . strval($data['height']) . '"';
    }
    // Generate and return shortcode
    return wpcf_fields_get_shortcode($field, $add);
}
Example #25
0
/**
 * Processes editor popup submit
 */
function wpcf_fields_google_map_editor_submit()
{
    // Get field
    $field = wpcf_admin_fields_get_field(strval($_GET['field_id']));
    if (!empty($field)) {
        $add = '';
        // Add parameters
        if (!empty($_POST['width'])) {
            $add .= ' width="' . strval($_POST['width']) . '"';
        }
        if (!empty($_POST['height'])) {
            $add .= ' height="' . strval($_POST['height']) . '"';
        }
        // Generate shortcode
        $shortcode = wpcf_fields_get_shortcode($field, $add);
        // Save settings
        wpcf_admin_fields_save_field_last_settings($_GET['field_id'], $_POST);
        // Trigger inserting shortcode in parent editor
        echo editor_admin_popup_insert_shortcode_js($shortcode);
    }
    die;
}
Example #26
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_image_editor_submit()
{
    $add = '';
    if (!empty($_POST['alt'])) {
        $add .= ' alt="' . strval($_POST['alt']) . '"';
    }
    if (!empty($_POST['title'])) {
        $add .= ' title="' . strval($_POST['title']) . '"';
    }
    $size = !empty($_POST['image-size']) ? $_POST['image-size'] : false;
    if ($size == 'wpcf-custom') {
        if (!empty($_POST['width'])) {
            $add .= ' width="' . intval($_POST['width']) . '"';
        }
        if (!empty($_POST['height'])) {
            $add .= ' height="' . intval($_POST['height']) . '"';
        }
        if (!empty($_POST['proportional'])) {
            $add .= ' proportional="true"';
        }
    } else {
        if (!empty($size)) {
            $add .= ' size="' . $size . '"';
        }
    }
    if (!empty($_POST['alignment'])) {
        $add .= ' align="' . $_POST['alignment'] . '"';
    }
    $field = wpcf_admin_fields_get_field($_GET['field_id']);
    if (!empty($field)) {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
        wpcf_admin_fields_save_field_last_settings($_GET['field_id'], $_POST);
        echo wpcf_admin_fields_popup_insert_shortcode_js($shortcode);
        die;
    }
}
/**
 * Editor callback form submit.
 */
function wpcf_fields_image_editor_submit($data, $field, $context)
{
    // Saved settings
    $settings = array();
    $add = '';
    if (!empty($data['alt'])) {
        $add .= ' alt="' . strval($data['alt']) . '"';
    }
    if (!empty($data['title'])) {
        $add .= ' title="' . strval($data['title']) . '"';
    }
    $size = !empty($data['image_size']) ? $data['image_size'] : false;
    if ($size == 'wpcf-custom') {
        if (!empty($data['width'])) {
            $add .= ' width="' . intval($data['width']) . '"';
        }
        if (!empty($data['height'])) {
            $add .= ' height="' . intval($data['height']) . '"';
        }
    } else {
        if (!empty($size)) {
            $add .= ' size="' . $size . '"';
            $settings['image_size'] = $size;
        }
    }
    if (!empty($data['alignment'])) {
        $add .= ' align="' . $data['alignment'] . '"';
        $settings['alignment'] = $data['alignment'];
    }
    if (!empty($data['url'])) {
        $add .= ' url="true"';
    }
    if (!empty($data['onload'])) {
        $add .= ' onload="' . $data['onload'] . '"';
    }
    if (array_key_exists('image_size', $data) && $data['image_size'] != 'full') {
        if (!empty($data['proportional'])) {
            $settings['resize'] = isset($data['resize']) ? $data['resize'] : 'proportional';
            $add .= " resize=\"{$settings['resize']}\"";
            if ($settings['resize'] == 'pad') {
                if (isset($data['padding_transparent'])) {
                    $data['padding_color'] = 'transparent';
                }
                if (empty($data['padding_color'])) {
                    $data['padding_color'] = '#FFF';
                }
                if ((strpos($data['padding_color'], '#') !== 0 || !(strlen($data['padding_color']) == 4 || strlen($data['padding_color']) == 7)) && $data['padding_color'] != 'transparent') {
                    $data['padding_color'] = '#FFF';
                }
                $settings['padding_color'] = $data['padding_color'];
                $add .= " padding_color=\"{$data['padding_color']}\"";
            }
        } else {
            if (!isset($data['raw_mode'])) {
                $settings['resize'] = 'stretch';
                $add .= ' resize="stretch"';
            }
        }
    }
    $field = apply_filters('wpcf_fields_image_editor_submit_field', $field);
    // Save settings
    wpcf_admin_fields_save_field_last_settings($field['id'], $settings);
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $shortcode = wpcf_usermeta_get_shortcode($field, $add);
    } elseif ($context == 'termmeta') {
        $add .= wpcf_get_termmeta_form_addon_submit();
        $shortcode = wpcf_termmeta_get_shortcode($field, $add);
    } else {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
    }
    return $shortcode;
}
Example #28
0
/**
 * Editor callback form submit.
 */
function wpcf_fields_checkboxes_editor_submit($data, $field, $context)
{
    $add = '';
    $types_attr = $context == 'usermeta' ? 'usermeta' : 'field';
    $shortcode = '';
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
    }
    if (!empty($data['options'])) {
        if ($data['display'] == 'display_all') {
            $separator = !empty($data['cbs_separator']) ? $data['cbs_separator'] : '';
            $_add = $add . ' separator="' . $separator . '"';
            if ($context == 'usermeta') {
                $shortcode .= wpcf_usermeta_get_shortcode($field, $_add);
            } else {
                $shortcode .= wpcf_fields_get_shortcode($field, $_add);
            }
        } else {
            $i = 0;
            foreach ($data['options'] as $option) {
                if ($data['display'] == 'value') {
                    $checked_add = $add . ' option="' . $i . '" state="checked"';
                    $unchecked_add = $add . ' option="' . $i . '" state="unchecked"';
                    if ($context == 'usermeta') {
                        $shortcode_checked = wpcf_usermeta_get_shortcode($field, $checked_add, $option['selected']);
                        $shortcode_unchecked = wpcf_usermeta_get_shortcode($field, $unchecked_add, $option['not_selected']);
                    } else {
                        $shortcode_checked = wpcf_fields_get_shortcode($field, $checked_add, $option['selected']);
                        $shortcode_unchecked = wpcf_fields_get_shortcode($field, $unchecked_add, $option['not_selected']);
                    }
                    $shortcode .= $shortcode_checked . $shortcode_unchecked;
                } else {
                    $add = ' option="' . $i . '"';
                    if ($context == 'usermeta') {
                        $add .= wpcf_get_usermeta_form_addon_submit();
                    }
                    if ($types_attr == 'usermeta') {
                        $shortcode .= wpcf_usermeta_get_shortcode($field, $add);
                    } else {
                        $shortcode .= wpcf_fields_get_shortcode($field, $add);
                    }
                }
                $i++;
            }
        }
    } else {
        if ($types_attr == 'usermeta') {
            $shortcode .= wpcf_usermeta_get_shortcode($field, $add);
        } else {
            $shortcode .= wpcf_fields_get_shortcode($field, $add);
        }
    }
    return $shortcode;
}
Example #29
0
 /**
  * Adds items to view dropdown.
  * 
  * @param type $items
  * @return type 
  */
 public static function editorDropdownFilter($items)
 {
     $post = wpcf_admin_get_edited_post();
     if (empty($post)) {
         $post = (object) array('ID' => -1);
     }
     $groups = wpcf_admin_fields_get_groups('wp-types-group', 'group_active');
     $all_post_types = implode(' ', get_post_types(array('public' => true)));
     $add = array();
     if (!empty($groups)) {
         // $group_id is blank therefore not equal to $group['id']
         // use array for item key and CSS class
         $item_styles = array();
         foreach ($groups as $group) {
             $fields = wpcf_admin_fields_get_fields_by_group($group['id'], 'slug', true, false, true);
             if (!empty($fields)) {
                 // code from Types used here without breaking the flow
                 // get post types list for every group or apply all
                 $post_types = get_post_meta($group['id'], '_wp_types_group_post_types', true);
                 if ($post_types == 'all') {
                     $post_types = $all_post_types;
                 }
                 $post_types = trim(str_replace(',', ' ', $post_types));
                 $item_styles[$group['name']] = $post_types;
                 foreach ($fields as $field) {
                     $callback = 'wpcfFieldsEditorCallback(\'' . $field['id'] . '\', \'postmeta\', ' . $post->ID . ')';
                     $add[$group['name']][stripslashes($field['name'])] = array(stripslashes($field['name']), trim(wpcf_fields_get_shortcode($field), '[]'), $group['name'], $callback);
                     // TODO Remove - it's not post edit screen (meta box JS and CSS)
                     WPCF_Fields::enqueueScript($field['type']);
                     WPCF_Fields::enqueueStyle($field['type']);
                 }
             }
         }
     }
     $search_key = '';
     // Iterate all items to be displayed in the "V" menu
     foreach ($items as $key => $item) {
         if ($key == __('Basic', 'wpv-views')) {
             $search_key = 'found';
             continue;
         }
         if ($search_key == 'found') {
             $search_key = $key;
         }
         if ($key == __('Field', 'wpv-views') && isset($item[trim(wpcf_types_get_meta_prefix(), '-')])) {
             unset($items[$key][trim(wpcf_types_get_meta_prefix(), '-')]);
         }
     }
     if (empty($search_key) || $search_key == 'found') {
         $search_key = count($items);
     }
     $insert_position = array_search($search_key, array_keys($items));
     $part_one = array_slice($items, 0, $insert_position);
     $part_two = array_slice($items, $insert_position);
     $items = $part_one + $add + $part_two;
     // apply CSS styles to each item based on post types
     foreach ($items as $key => $value) {
         if (isset($item_styles[$key])) {
             $items[$key]['css'] = $item_styles[$key];
         } else {
             $items[$key]['css'] = $all_post_types;
         }
     }
     return $items;
 }
Example #30
0
/**
 * Inserts shortcode in editor.
 * 
 * @return type 
 */
function wpcf_fields_date_editor_submit($data, $field, $context)
{
    $add = ' ';
    $raw = !empty($data['raw_mode']);
    $format = get_option('date_format');
    $style = isset($data['style']) ? $data['style'] : 'text';
    if (!$raw) {
        $add .= 'style="' . $style . '"';
        if ($style == 'text') {
            if (isset($data['format'])) {
                if ($data['format'] == 'custom' && isset($data['custom'])) {
                    $format = $data['custom'];
                } else {
                    $format = $data['format'];
                }
            }
            $add .= ' format="' . $format . '"';
        }
    }
    if ($context == 'usermeta') {
        $add .= wpcf_get_usermeta_form_addon_submit();
        $shortcode = wpcf_usermeta_get_shortcode($field, $add);
    } else {
        $shortcode = wpcf_fields_get_shortcode($field, $add);
    }
    return $shortcode;
}