function mf_shortcodes($atts) { global $post, $FIELD_TYPES; extract(shortcode_atts(array('field' => 'no field defined or field name is wrong', 'eip' => FALSE, 'filtered' => FALSE, 'imgtag' => FALSE, 'label' => "", 'loop' => FALSE, 'loopseparator' => "|", 'checked' => "yes", 'groupindex' => 1, 'fieldindex' => 1), $atts)); if ($loop && RCCWP_CustomField::GetFieldDuplicates($post->ID, $field, $groupindex) > 1) { $fieldduplicatedata = get_field_duplicate($field); } else { $fielddata = RCCWP_CustomField::GetDataField($field, $groupindex, $fieldindex, $post->ID); } $fieldType = $fielddata['type']; $fieldID = $fielddata['id']; $fieldObject = $fielddata['properties']; $fieldValues = (array) $fielddata['meta_value']; $fieldMetaID = $fielddata['meta_id']; $fieldresults = GetProcessedFieldValue($fieldValues, $fieldType, $fieldObject); $shortcode_data = $fieldresults; if ($fielddata['type'] == $FIELD_TYPES['multiline_textbox'] && $filtered) { $shortcode_data = apply_filters('the_content', $fieldresults); } if ($fielddata['type'] == $FIELD_TYPES['image']) { $imgresults = split('&', $fieldresults); if ($imgtag) { $shortcode_data = "<img src=\"{$imgresults['0']}\"/>"; } else { $shortcode_data = $imgresults[0]; } } if ($fielddata['type'] == $FIELD_TYPES['listbox']) { $shortcode_data = implode(",", $fieldresults); } if ($fielddata['type'] == $FIELD_TYPES['checkbox_list']) { $shortcode_data = implode(",", $fieldresults); } if ($fielddata['type'] == $FIELD_TYPES['checkbox']) { if ($fieldresults) { $shortcode_data = $checked; } } if ($shortcode_data || $fieldduplicatedata) { if ($label) { $shortcode_data = $label . $shortcode_data; } else { $shortcode_data = get_label($field) . " : " . $shortcode_data; } ///// if ($field == "duplicate") { if ($loop) { return implode($loopseparator, $fieldduplicatedata); } else { return $shortcode_data; } } else { return $shortcode_data; } ///// } else { return "no data found, please check the field name"; } }
/** * Get the value of an input field. * * @param string $fieldName * @param integer $groupIndex * @param integer $fieldIndex * @param boolean $readyForEIP if true and the field type is textbox or * multiline textbox, the resulting value will be wrapped * in a div that is ready for EIP. The default value is true * @return a string or array based on field type */ function get($fieldName, $groupIndex = 1, $fieldIndex = 1, $readyForEIP = true) { require_once "RCCWP_CustomField.php"; global $wpdb, $post, $FIELD_TYPES; $fieldID = RCCWP_CustomField::GetIDByName($fieldName); $fieldObject = GetFieldInfo($fieldID); $fieldType = $wpdb->get_var("SELECT type FROM " . RC_CWP_TABLE_GROUP_FIELDS . " WHERE id='" . $fieldID . "'"); $single = true; switch ($fieldType) { case $FIELD_TYPES["checkbox_list"]: case $FIELD_TYPES["listbox"]: $single = false; break; } $fieldValues = (array) RCCWP_CustomField::GetCustomFieldValues($single, $post->ID, $fieldName, $groupIndex, $fieldIndex); $fieldMetaID = RCCWP_CustomField::GetMetaID($post->ID, $fieldName, $groupIndex, $fieldIndex); $results = GetProcessedFieldValue($fieldValues, $fieldType, $fieldObject->properties); //filter for multine line if ($fieldType == $FIELD_TYPES['multiline_textbox']) { $results = apply_filters('the_content', $results); } if ($fieldType == $FIELD_TYPES['image']) { $results = split('&', $results); $results = $results[0]; } // Prepare fields for EIP include_once 'RCCWP_Options.php'; $enableEditnplace = RCCWP_Options::Get('enable-editnplace'); if ($readyForEIP && $enableEditnplace == 1 && current_user_can('edit_posts', $post->ID)) { switch ($fieldType) { case $FIELD_TYPES["textbox"]: if (!$results) { $results = " "; } $results = "<div class='" . EIP_textbox($fieldMetaID) . "' >" . $results . "</div>"; break; case $FIELD_TYPES["multiline_textbox"]: if (!$results) { $results = " "; } $results = "<div class='" . EIP_mulittextbox($fieldMetaID) . "' >" . $results . "</div>"; break; } } return $results; }
function mf_shortcodes($atts) { global $post, $FIELD_TYPES; extract(shortcode_atts(array('field' => 'no field defined or field name is wrong', 'eip' => FALSE, 'filtered' => FALSE, 'imgtag' => FALSE, 'label' => "", 'loop' => FALSE, 'loopseparator' => "|", 'checked' => "yes", 'groupindex' => 1, 'fieldindex' => 1), $atts)); if ($loop && RCCWP_CustomField::GetFieldDuplicates($post->ID, $field, $groupindex) > 1) { $fieldduplicatedata = get_field_duplicate($field); } else { $fielddata = RCCWP_CustomField::GetDataField($field, $groupindex, $fieldindex, $post->ID); } $fieldType = $fielddata['type']; $fieldID = $fielddata['id']; $fieldObject = $fielddata['properties']; $fieldValues = (array) $fielddata['meta_value']; $fieldMetaID = $fielddata['meta_id']; $fieldresults = GetProcessedFieldValue($fieldValues, $fieldType, $fieldObject); $shortcode_data = $fieldresults; if ($fielddata['type'] == $FIELD_TYPES['multiline_textbox'] && $filtered) { $shortcode_data = apply_filters('the_content', $fieldresults); } if ($fielddata['type'] == $FIELD_TYPES['image']) { $imgresults = split('&', $fieldresults); if ($imgtag) { $shortcode_data = "<img src=\"{$imgresults['0']}\"/>"; } else { $shortcode_data = $imgresults[0]; } } if ($fielddata['type'] == $FIELD_TYPES['listbox']) { $shortcode_data = implode(",", $fieldresults); } if ($fielddata['type'] == $FIELD_TYPES['checkbox_list']) { $shortcode_data = implode(",", $fieldresults); } if ($fielddata['type'] == $FIELD_TYPES['checkbox']) { if ($fieldresults) { $shortcode_data = $checked; } } // Prepare fields for EIP $enableEditnplace = RCCWP_Options::Get('enable-editnplace'); if ($eip && $enableEditnplace == 1 && current_user_can('edit_posts', $post->ID)) { switch ($fielddata['type']) { case $FIELD_TYPES["textbox"]: if (!$results) { $results = " "; } $shortcode_data = "<div class='" . EIP_textbox($fieldMetaID) . "' >" . $fieldresults . "</div>"; break; case $FIELD_TYPES["multiline_textbox"]: if (!$results) { $results = " "; } $shortcode_data = "<div class='" . EIP_mulittextbox($fieldMetaID) . "' >" . $shortcode_data . "</div>"; break; } } if ($shortcode_data || $fieldduplicatedata) { if ($label) { $shortcode_data = $label . $shortcode_data; } else { $shortcode_data = get_label($field) . " : " . $shortcode_data; } ///// if ($field == "duplicate") { if ($loop) { return implode($loopseparator, $fieldduplicatedata); } else { return $shortcode_data; } } else { return $shortcode_data; } ///// } else { return "no data found, please check the field name"; } }
function get_field_duplicate($fieldName, $groupIndex = 1, $post_id = NULL) { global $wpdb, $post, $FIELD_TYPES; if (!$post_id) { $post_id = $post->ID; } $sql = "SELECT \t\tpm.field_name, cf.type, pm_wp.meta_value, pm.order_id, pm.field_count, cf.id, fp.properties \n\t\t\tFROM \t\t" . MF_TABLE_POST_META . " pm, " . MF_TABLE_PANEL_GROUPS . " g, {$wpdb->postmeta} pm_wp,\n\t\t\t\t\t\t" . MF_TABLE_GROUP_FIELDS . " cf \n\t\t\tLEFT JOIN " . MF_TABLE_CUSTOM_FIELD_PROPERTIES . " fp ON fp.custom_field_id = cf.id\n\t\t\tWHERE \t\tpm_wp.post_id = {$post_id} AND cf.name = pm.field_name AND cf.group_id=g.id AND\n\t\t\t\t\t\tpm_wp.meta_id=pm.id AND pm.field_name='{$fieldName}' AND pm.group_count = {$groupIndex}\n\t\t\t\t\t\tAND pm_wp.meta_value <> '' \n\t\t\tORDER BY \tpm.order_id, cf.display_order, pm.field_count"; $data_fields = $wpdb->get_results($sql); $info = null; foreach ($data_fields as $data) { switch ($data->type) { case $FIELD_TYPES["textbox"]: case $FIELD_TYPES["radiobutton_list"]: case $FIELD_TYPES["dropdown_list"]: case $FIELD_TYPES["color_picker"]: case $FIELD_TYPES["slider"]: $info[$data->field_count] = $data->meta_value; break; case $FIELD_TYPES['multiline_textbox']: $info[$data->field_count] = apply_filters('the_content', $data->meta_value); break; case $FIELD_TYPES["checkbox"]: if ($data->meta_value == 'true') { $fieldValue = 1; } else { $fieldValue = 0; } $info[$data->field_count] = $fieldValue; break; case $FIELD_TYPES["checkbox_list"]: case $FIELD_TYPES["listbox"]: $info[$data->field_count] = unserialize($data->meta_value); break; case $FIELD_TYPES["audio"]: case $FIELD_TYPES["file"]: if ($data->meta_value != "") { $fieldValue = MF_FILES_URI . $data->meta_value; } else { $fieldValue = null; } $info[$data->field_count] = $fieldValue; break; case $FIELD_TYPES['image']: if ($data->meta_value != "") { $format = unserialize($data->properties); if ($format) { $info[$data->field_count]['t'] = aux_image($data->meta_value, $format['params']); } $info[$data->field_count]['o'] = MF_FILES_URI . $data->meta_value; } break; case $FIELD_TYPES['date']: $format = unserialize($data->properties); $fieldValue = GetProcessedFieldValue($data->meta_value, $data->type, $format); $info[$data->field_count] = $fieldValue; break; } } return $info; }
function get_clean_field_duplicate($fieldName, $groupIndex = 1, $post_id = NULL) { global $wpdb, $post, $FIELD_TYPES; if (!$post_id) { $post_id = $post->ID; } $cache_name = $post_id . '/_fduplicates-' . $fieldName . '--' . $groupIndex . '.txt'; $data_fields = unserialize(MF_get_cached_data($cache_name, FALSE)); // When field is set, but it's empty, it gets a NULL value, but still this value is cached // therefore: if !is_null condition if (!$data_fields && !is_null($data_fields)) { $sql = $wpdb->prepare("SELECT pm.field_name, cf.type, pm_wp.meta_value, pm.order_id, pm.field_count, cf.id, fp.properties \n\t\t\t\tFROM \t\t" . MF_TABLE_POST_META . " pm, " . MF_TABLE_PANEL_GROUPS . " g, {$wpdb->postmeta} pm_wp,\n\t\t\t\t\t\t\t" . MF_TABLE_GROUP_FIELDS . " cf \n\t\t\t\tLEFT JOIN " . MF_TABLE_CUSTOM_FIELD_PROPERTIES . " fp ON fp.custom_field_id = cf.id\n\t\t\t\tWHERE \t\tpm_wp.post_id = %d AND cf.name = pm.field_name AND cf.group_id = g.id AND\n\t\t\t\t\t\t\tpm_wp.meta_id = pm.id AND pm.field_name = %s AND pm.group_count = %d\n\t\t\t\t\t\t\tAND pm_wp.meta_value <> '' \n\t\t\t\tORDER BY \tpm.order_id, cf.display_order, pm.field_count", array($post_id, $fieldName, $groupIndex)); $data_fields = $wpdb->get_results($sql); MF_put_cached_data($cache_name, serialize($data_fields)); } $info = null; foreach ($data_fields as $data) { switch ($data->type) { case $FIELD_TYPES["textbox"]: case $FIELD_TYPES["radiobutton_list"]: case $FIELD_TYPES["dropdown_list"]: case $FIELD_TYPES["color_picker"]: case $FIELD_TYPES["slider"]: case $FIELD_TYPES["related_type"]: case $FIELD_TYPES['markdown_textbox']: $info[$data->field_count] = $data->meta_value; break; case $FIELD_TYPES['multiline_textbox']: $info[$data->field_count] = $data->meta_value; break; case $FIELD_TYPES["checkbox"]: if ($data->meta_value == 'true') { $fieldValue = 1; } else { $fieldValue = 0; } $info[$data->field_count] = $fieldValue; break; case $FIELD_TYPES["checkbox_list"]: case $FIELD_TYPES["listbox"]: $info[$data->field_count] = unserialize($data->meta_value); break; case $FIELD_TYPES["audio"]: case $FIELD_TYPES["file"]: if ($data->meta_value != "") { $fieldValue = MF_FILES_URI . $data->meta_value; } else { $fieldValue = null; } $info[$data->field_count] = $fieldValue; break; case $FIELD_TYPES['image']: if ($data->meta_value != "") { $format = unserialize($data->properties); if ($format) { $info[$data->field_count]['t'] = aux_image($data->meta_value, $format['params']); } $info[$data->field_count]['o'] = MF_FILES_URI . $data->meta_value; } break; case $FIELD_TYPES['date']: $format = unserialize($data->properties); $fieldValue = GetProcessedFieldValue($data->meta_value, $data->type, $format); $info[$data->field_count] = $fieldValue; break; case $FIELD_TYPES['Image (Upload Media)']: if ($data->meta_value != "") { $format = unserialize($data->properties); $image = wp_get_attachment_image_src($data->meta_value, 'original'); if ($format) { $info[$data->order_id][$data->field_name][$data->field_count]['t'] = aux_image($image[0], $format['params'], $data->type); } $info[$data->order_id][$data->field_name][$data->field_count]['o'] = $image[0]; } break; } } return $info; }
/** * Processes the variables values to be suitable for direct use, * e.g. adding full URL to uploaded files. * * @return array of variables where the key of each item is the variable name */ function GetProcessedVariables() { global $FIELD_TYPES; $vars = array(); foreach ($this->variables as $varKey => $variable) { $variable->properties['format'] = "m.d.y"; $vars[$variable->variable_name] = GetProcessedFieldValue($variable->value, $FIELD_TYPES[$variable->type], $variable->properties); } return $vars; }