<?php
/**
 * Enquir3 midcopy feedback display.
 */

/**
 * Display mid copy feedback
 *
 * @param array $instance Shortcode display definition.
 *
 * @return string HTML markup
 */
function eq3f_display_mid_copy( $instance ) {

	$feedback_options = get_option( 'enquir3_feedback_options_new', array() );
  try {
    $rc               = new RemstoFeedbackClient( $feedback_options );

    $feedback_item = $rc->getRandomFeedbackItem(
      $feedback_options['parent_type'],
      $feedback_options['parent_id'],
      $instance['term_id'],
      $instance['seq']
    );

    if ( ! $feedback_item ) {
      return '';
    }

    if ( isset( $feedback_item->seq ) ) {
      $_SESSION['feedback_seq'] = $feedback_item->seq;
    }

    $id        = $feedback_item->id;
    $more_link = RemstoModuleFunctions::feedback_more_button(
      array( 'id' => $feedback_item->id )
    );

    $len = $instance['max_char'];
    if ( $len > 0 ) {
      $stood_out = RemstoModuleFunctions::truncate_utf8(
        esc_html( $feedback_item->stood_out ),
        $len,
        true,
        true
      );
    } else {
      $stood_out = RemstoModuleFunctions::check_plain( $feedback_item->stood_out );
    }

    $len_comment = $instance['max_char_reply'];
    if ( $len_comment > 0 && '' !== $feedback_item->company_comment ) {
      $company_comment = RemstoModuleFunctions::truncate_utf8(
        esc_html( $feedback_item->company_comment ),
        $len_comment,
        true,
        true
      );
    } else {
      $company_comment = RemstoModuleFunctions::check_plain( $feedback_item->company_comment );
    }

    $feedback_data = array(
      'text'                  => $stood_out,
      'more_link'             => $more_link,
      'listing_link'          => '',
      'company_name'          => RemstoModuleFunctions::check_plain( $feedback_item->company_name ),
      'position'              => RemstoModuleFunctions::check_plain( $feedback_item->position ),
      'date'                  => gmdate( 'd/m/Y', $feedback_item->created ),
      'title'                 => $instance['title'],
      'company_comment'       => $company_comment,
      'company_comment_label' => $instance['comment_label'],
    );

    $name = array(
      'anon'       => $feedback_item->anonymous,
      'first_name' => RemstoModuleFunctions::check_plain( $feedback_item->first_name ),
      'last_name'  => RemstoModuleFunctions::check_plain( $feedback_item->last_name ),
    );

    if ( 1 === $feedback_item->anonymous ) {
      $feedback_data['first_name'] = 'Client details withheld';
      $feedback_data['last_name']  = '';
      $feedback_data['town']       = '';
      $feedback_data['author']     = $feedback_data['first_name'];
    } else {
      $feedback_data['first_name'] = esc_html( $feedback_item->first_name );
      $feedback_data['last_name']  = esc_html( $feedback_item->last_name );
      $feedback_data['town']       = esc_html( $feedback_item->town );
      $feedback_data['author']     = $feedback_data['first_name'] . ' ' . $feedback_data['last_name'];
    }

    if ( isset( $feedback_item->website ) && strlen( $feedback_item->website ) > 0 && '-' !== $feedback_item->website ) {
      if ( substr( $feedback_item->website, 0, 4 ) === 'http' ) {
        $website = $feedback_item->website;
      } else {
        $website = 'http://' . $feedback_item->website;
      }

      $feedback_data['website_link'] = $website;
    }

    if ( ! empty( $feedback_item->video_testimonial ) ) {
      $feedback_data['video_testimonial'] = RemstoModuleFunctions::processVideoTestimonial(
        $feedback_item->id,
        $feedback_item->video_testimonial
      );
    }

    return EQ3F_Feedback::compile_template(
      EQ3F_PLUGIN_PATH . 'includes/views/feedback-mid-copy.tpl.php',
      $feedback_data
    );
  }
  catch(Exception $e) {
    return EQ3F_DEFAULT_ERROR_MESSAGE;
  }
}
