Я работаю с многофайловой загрузкой с гравитационной формой. Поэтому после загрузки я хочу показать загруженный файл на одной странице поста (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}'))));
Но не может показать файл или ссылку на файл на странице сообщения. Может кто-нибудь мне помочь?