Как показать гравитационную форму загруженного файла на странице поста

Я работаю с многофайловой загрузкой с гравитационной формой. Поэтому после загрузки я хочу показать загруженный файл на одной странице поста (single.php). Как показать загруженные файлы на странице поста. Я использовал это. ( http://pastebin.com/r9w2beDW)

    class GW_Multi_File_Merge_Tag {

    приватная статическая $ instance = null;


    private $ _merge_tag_args = array ();


    private $_settings = array ();

    приватная функция __construct() {
        add_filter( 'gform_pre_replace_merge_tags', массив ($ this, replace_merge_tag'), 10, 7);
    }

    публичная статическая функция get_instance () {

        if (null == self::$ instance)
            self::$ instance = new self;

        вернуть себя::$ экземпляр;
    }

    публичная функция get_default_args() {
        возвращаемый массив ('form_id' => false,
            'exclude_forms' => array (),
            'default_markup' => ' 
  • {Имя файла}.{} Вн
  • ', 'markup' => array( array( 'file_types' => array( 'jpg', 'png', 'gif'), 'markup' => ''), array( 'file_types' => array( 'mp4', 'ogg', 'webm'), 'markup' => ' Ваш браузер не поддерживает тег видео. '), массив ( 'file_types' => array( 'ogv'), 'markup' => ' Ваш браузер не поддерживает видео тег. '))); } открытая функция register_settings( $args = array()) { $args = wp_parse_args( $args, $this->get_default_args()); if(! $args['form_id']) { $this->_settings['global'] = $args; } else { $this->_settings[$args['form_id']] = $args; } } открытая функция replace_merge_tag( $text, $form, $entry, $url_encode, $esc_html, $nl2br, $format) { preg_match_all( '/ enj[^^]]*?:(\d+(\.\d+)?)(:(.*?))?}/mi', $text, $match, PREG_SET_ORDER); foreach( $match как $match) { $input_id = $match[1]; $field = GFFormsModel::get_field( $form, $input_id); if(! $this->is_applicable_field( $field)) продолжить; if( $format!= 'html') { $value = $this->_merge_tag_args['value']; } else { if( $entry['id'] == null && is_callable( array( 'GWPreviewConfirmation', 'preview_image_value'))) { $files = GWPreviewConfirmation::preview_image_value( 'input_' . $field->id, $ поле, $form, $entry); } else { $value = GFFormsModel::get_lead_field_value( $entry, $field); $files = empty( $value)? array(): json_decode( $value, true); } $value = ''; foreach( $files as &$file){ $value .= $this->get_file_markup( $file, $form['id']); } } $text = str_replace( $match[0], $value, $text); } вернуть $text; } публичная функция get_file_markup( $file, $form_id) { $value = str_replace( " ", "%20", $file); $file_info = pathinfo( $value); извлечь ( $file_info); // дает нам $dirname, $basename, $extension, $filename, если (! $extension) return $value; $markup_settings = $this->get_markup_settings( $form_id); if( empty( $markup_settings)) возвращает значение $; $markup_found = false; foreach( $markup_settings as $file_type_markup) { $file_types = array_map( 'strtolower', $file_type_markup['file_types']); if(! in_array( strtolower( $extension), $file_types)) продолжение; $markup_found = true; $markup = $file_type_markup['markup']; $tags = array( '{url}' => $file, '{filename}' => $filename, '{basename}' => $basename, '{ext}' => расширение $); foreach ($ tag как $tag => $tag_value) { $markup = str_replace( $tag, $tag_value, $markup); } $value = $ разметка; перерыв; } if(! $markup_found && $default_markup = $this->get_default_markup( $form_id)) { $tags = array( '{url}' => $file, '{filename}' => $filename, '{basename}' => $basename, '{ext}' => $extension); foreach( $tag как $tag => $tag_value) { $default_markup = str_replace( $tag, $tag_value, $default_markup); } $value = $default_markup; } вернуть значение $; } публичная функция get_markup_settings( $form_id) { $form_markup_settings = rgars( $this->_settings, "$form_id/markup")? rgars( $this->_settings, "$form_id/markup"): array(); $global_markup_settings = rgars( $this->_settings, 'global/markup')? rgars( $this->_settings, 'global/markup'): array(); return array_merge( $form_markup_settings, $global_markup_settings); } публичная функция get_default_markup( $form_id) { $default_markup = rgars( $this->_settings, "$form_id/default_markup"); if(! $default_markup) $default_markup = rgars( $this->_settings, 'global/default_markup'); вернуть $ default_markup; } публичная функция is_excluded_form( $form_id) { $has_global_settings = isset( $this->_settings['global']); $excid_forms = (массив) rgars( $this->_settings, 'global/exclude_forms'); $explicity_excluded = $has_global_settings && in_array( $form_id, $exclude_forms); $passively_excluded =! $has_global_settings &&! isset( $this->_settings[$form_id]); вернуть $explicity_excluded || $ Passively_excluded; } публичная функция is_applicable_field( $field) { $is_valid_form =! $this->is_excluded_form( $field['formId']); $is_file_upload_filed = GFFormsModel::get_input_type( $field) == 'fileupload'; $is_multi = rgar( $field, 'multipleFiles'); return $is_valid_form && $is_file_upload_filed && $is_multi; } } function gw_multi_file_merge_tag() { return GW_Multi_File_Merge_Tag::get_instance(); } gw_multi_file_merge_tag()->register_settings( array( 'form_id' => 1, 'markup' => array( array( 'file_types' => array( 'jpg', 'jpeg', 'png', 'gif'), 'markup' => '{filename}'), массив ('file_types' => массив ( 'pdf', 'txt'), 'markup' => '{filename}{filenam}'), массив ('file_types') => массив ('mp4', 'ogg', 'webm'), 'markup' => 'Ваш браузер не поддерживает тег видео.{filename}'), массив ('file_types' => array ('ogv')), 'markup' => 'Ваш браузер не поддерживает тег видео.{filename}'))));

    Но не может показать файл или ссылку на файл на странице сообщения. Может кто-нибудь мне помочь?

    0 ответов

    Другие вопросы по тегам