is_entry_detail(); $is_form_editor = $this->is_form_editor(); $is_admin = $is_entry_detail || $is_form_editor; $id = (int) $this->id; $field_id = $is_entry_detail || $is_form_editor || $form_id == 0 ? "input_$id" : 'input_' . $form_id . "_$id"; $size = $this->size; $class_suffix = $is_entry_detail ? '_admin' : ''; $class = $size . $class_suffix; $disabled_text = $is_form_editor ? 'disabled="disabled"' : ''; $title = esc_attr( rgget( $this->id . '.1', $value ) ); $caption = esc_attr( rgget( $this->id . '.4', $value ) ); $description = esc_attr( rgget( $this->id . '.7', $value ) ); //hiding meta fields for admin $hidden_style = "style='display:none;'"; $title_style = ! $this->displayTitle && $is_admin ? $hidden_style : ''; $caption_style = ! $this->displayCaption && $is_admin ? $hidden_style : ''; $description_style = ! $this->displayDescription && $is_admin ? $hidden_style : ''; $file_label_style = $is_admin && ! ( $this->displayTitle || $this->displayCaption || $this->displayDescription ) ? $hidden_style : ''; $hidden_class = $preview = ''; $file_info = RGFormsModel::get_temp_filename( $form_id, "input_{$id}" ); if ( $file_info ) { $hidden_class = ' gform_hidden'; $file_label_style = $hidden_style; $preview = "" . esc_html( $file_info['uploaded_filename'] ) . " | " . __( 'delete', 'gravityforms' ) . ''; } //in admin, render all meta fields to allow for immediate feedback, but hide the ones not selected $file_label = ( $is_admin || $this->displayTitle || $this->displayCaption || $this->displayDescription ) ? "' : ''; $tabindex = $this->get_tabindex(); $upload = sprintf( "{$preview}$file_label", $id, $field_id, esc_attr( $class . $hidden_class ), $disabled_text ); $tabindex = $this->get_tabindex(); $title_field = $this->displayTitle || $is_admin ? sprintf( "', $id, $field_id, $title, $disabled_text, $field_id ) : ''; $tabindex = $this->get_tabindex(); $caption_field = $this->displayCaption || $is_admin ? sprintf( "', $id, $field_id, $caption, $disabled_text, $field_id ) : ''; $tabindex = $this->get_tabindex(); $description_field = $this->displayDescription || $is_admin ? sprintf( "', $id, $field_id, $description, $disabled_text, $field_id ) : ''; return "
" . $upload . $title_field . $caption_field . $description_field . '
'; } public function get_value_save_entry( $value, $form, $input_name, $lead_id, $lead ) { $form_id = $form['id']; $url = $this->get_single_file_value( $form_id, $input_name ); if ( empty( $url ) ) { return ''; } if ( ! GFCommon::is_valid_url( $url ) ) { GFCommon::log_debug( __METHOD__ . '(): aborting; File URL invalid.' ); return ''; } $image_title = isset( $_POST["{$input_name}_1"] ) ? wp_strip_all_tags( $_POST["{$input_name}_1"] ) : ''; $image_caption = isset( $_POST["{$input_name}_4"] ) ? wp_strip_all_tags( $_POST["{$input_name}_4"] ) : ''; $image_description = isset( $_POST["{$input_name}_7"] ) ? wp_strip_all_tags( $_POST["{$input_name}_7"] ) : ''; return $url . '|:|' . $image_title . '|:|' . $image_caption . '|:|' . $image_description; } public function get_value_entry_list( $value, $entry, $field_id, $columns, $form ) { list( $url, $title, $caption, $description ) = rgexplode( '|:|', $value, 4 ); if ( ! empty( $url ) ) { //displaying thumbnail (if file is an image) or an icon based on the extension $thumb = GFEntryList::get_icon_url( $url ); $value = ""; } return $value; } public function get_value_entry_detail( $value, $currency = '', $use_text = false, $format = 'html', $media = 'screen' ) { $ary = explode( '|:|', $value ); $url = count( $ary ) > 0 ? $ary[0] : ''; $title = count( $ary ) > 1 ? $ary[1] : ''; $caption = count( $ary ) > 2 ? $ary[2] : ''; $description = count( $ary ) > 3 ? $ary[3] : ''; if ( ! empty( $url ) ) { $url = str_replace( ' ', '%20', $url ); switch ( $format ) { case 'text' : $value = $url; $value .= ! empty( $title ) ? "\n\n" . $this->label . ' (' . __( 'Title', 'gravityforms' ) . '): ' . $title : ''; $value .= ! empty( $caption ) ? "\n\n" . $this->label . ' (' . __( 'Caption', 'gravityforms' ) . '): ' . $caption : ''; $value .= ! empty( $description ) ? "\n\n" . $this->label . ' (' . __( 'Description', 'gravityforms' ) . '): ' . $description : ''; break; default : $value = ""; $value .= ! empty( $title ) ? "
Title: $title
" : ''; $value .= ! empty( $caption ) ? "
Caption: $caption
" : ''; $value .= ! empty( $description ) ? "
Description: $description
" : ''; break; } } return $value; } public function get_value_submission( $field_values, $get_from_post_global_var = true ) { $value[ $this->id . '.1' ] = $this->get_input_value_submission( 'input_' . $this->id . '_1', $get_from_post_global_var ); $value[ $this->id . '.4' ] = $this->get_input_value_submission( 'input_' . $this->id . '_4', $get_from_post_global_var ); $value[ $this->id . '.7' ] = $this->get_input_value_submission( 'input_' . $this->id . '_7', $get_from_post_global_var ); return $value; } /** * Gets merge tag values. * * @since Unknown * @access public * * @param array|string $value The value of the input. * @param string $input_id The input ID to use. * @param array $entry The Entry Object. * @param array $form The Form Object * @param string $modifier The modifier passed. * @param array|string $raw_value The raw value of the input. * @param bool $url_encode If the result should be URL encoded. * @param bool $esc_html If the HTML should be escaped. * @param string $format The format that the value should be. * @param bool $nl2br If the nl2br function should be used. * * @return string The processed merge tag. */ public function get_value_merge_tag( $value, $input_id, $entry, $form, $modifier, $raw_value, $url_encode, $esc_html, $format, $nl2br ) { list( $url, $title, $caption, $description ) = array_pad( explode( '|:|', $value ), 4, false ); switch ( $modifier ) { case 'title' : return $title; case 'caption' : return $caption; case 'description' : return $description; default : return str_replace( ' ', '%20', $url ); } } } GF_Fields::register( new GF_Field_Post_Image() );