CMB2 Documentation
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
  • Hooks
  • Download Docs
  • Github

Packages

  • CMB2
  • Demo
    • CMB2
  • None
  • Tests
    • CMB2

Classes

  • CMB2
  • CMB2_Ajax
  • CMB2_Base
  • CMB2_Bootstrap_2101
  • CMB2_Boxes
  • CMB2_Display_Checkbox
  • CMB2_Display_Colorpicker
  • CMB2_Display_File
  • CMB2_Display_File_List
  • CMB2_Display_Multicheck
  • CMB2_Display_oEmbed
  • CMB2_Display_Select
  • CMB2_Display_Taxonomy_Multicheck
  • CMB2_Display_Taxonomy_Radio
  • CMB2_Display_Text_Date
  • CMB2_Display_Text_Date_Timezone
  • CMB2_Display_Text_Money
  • CMB2_Display_Text_Time
  • CMB2_Display_Text_Url
  • CMB2_Display_Textarea
  • CMB2_Display_Textarea_Code
  • CMB2_Field
  • CMB2_Field_Display
  • CMB2_Hookup
  • CMB2_Hookup_Base
  • CMB2_Integration_Box
  • CMB2_JS
  • CMB2_Option
  • CMB2_Options
  • CMB2_Options_Hookup
  • CMB2_REST
  • CMB2_REST_Controller
  • CMB2_REST_Controller_Boxes
  • CMB2_REST_Controller_Fields
  • CMB2_Sanitize
  • CMB2_Show_Filters
  • CMB2_Type_Base
  • CMB2_Type_Checkbox
  • CMB2_Type_Colorpicker
  • CMB2_Type_Counter_Base
  • CMB2_Type_File
  • CMB2_Type_File_Base
  • CMB2_Type_File_List
  • CMB2_Type_Multi_Base
  • CMB2_Type_Multicheck
  • CMB2_Type_Oembed
  • CMB2_Type_Picker_Base
  • CMB2_Type_Radio
  • CMB2_Type_Select
  • CMB2_Type_Select_Timezone
  • CMB2_Type_Taxonomy_Base
  • CMB2_Type_Taxonomy_Multicheck
  • CMB2_Type_Taxonomy_Multicheck_Hierarchical
  • CMB2_Type_Taxonomy_Radio
  • CMB2_Type_Taxonomy_Radio_Hierarchical
  • CMB2_Type_Taxonomy_Select
  • CMB2_Type_Taxonomy_Select_Hierarchical
  • CMB2_Type_Text
  • CMB2_Type_Text_Date
  • CMB2_Type_Text_Datetime_Timestamp
  • CMB2_Type_Text_Datetime_Timestamp_Timezone
  • CMB2_Type_Text_Time
  • CMB2_Type_Textarea
  • CMB2_Type_Textarea_Code
  • CMB2_Type_Title
  • CMB2_Type_Wysiwyg
  • CMB2_Types
  • CMB2_Utils

Hooks

  • Hook Reference
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 
<?php
/**
 * CMB file_list field type
 *
 * @since  2.2.2
 *
 * @category  WordPress_Plugin
 * @package   CMB2
 * @author    CMB2 team
 * @license   GPL-2.0+
 * @link      https://cmb2.io
 */
class CMB2_Type_File_List extends CMB2_Type_File_Base {

    public function render( $args = array() ) {
        $field      = $this->field;
        $meta_value = $field->escaped_value();
        $name       = $this->_name();
        $img_size   = $field->args( 'preview_size' );
        $query_args = $field->args( 'query_args' );
        $output     = '';

        // get an array of image size meta data, fallback to 'thumbnail'
        $img_size_data = parent::get_image_size_data( $img_size, 'thumbnail' );

        $output .= parent::render( array(
            'type'  => 'hidden',
            'class' => 'cmb2-upload-file cmb2-upload-list',
            'size'  => 45,
            'desc'  => '',
            'value' => '',
            'data-previewsize' => sprintf( '[%d,%d]', $img_size_data['width'], $img_size_data['height'] ),
            'data-sizename'    => $img_size_data['name'],
            'data-queryargs'   => ! empty( $query_args ) ? json_encode( $query_args ) : '',
            'js_dependencies'  => 'media-editor',
        ) );

        $output .= parent::render( array(
            'type'  => 'button',
            'class' => 'cmb2-upload-button button-secondary cmb2-upload-list',
            'value' => esc_attr( $this->_text( 'add_upload_files_text', esc_html__( 'Add or Upload Files', 'cmb2' ) ) ),
            'name'  => false,
            'id'    => false,
        ) );

        $output .= '<ul id="' . $this->_id( '-status', false ) . '" class="cmb2-media-status cmb-attach-list">';

        if ( $meta_value && is_array( $meta_value ) ) {

            foreach ( $meta_value as $id => $fullurl ) {
                $id_input = parent::render( array(
                    'type'    => 'hidden',
                    'value'   => $fullurl,
                    'name'    => $name . '[' . $id . ']',
                    'id'      => 'filelist-' . $id,
                    'data-id' => $id,
                    'desc'    => '',
                    'class'   => false,
                ) );

                if ( $this->is_valid_img_ext( $fullurl ) ) {

                    $output .= $this->img_status_output( array(
                        'image'    => wp_get_attachment_image( $id, $img_size ),
                        'tag'      => 'li',
                        'id_input' => $id_input,
                    ) );

                } else {

                    $output .= $this->file_status_output( array(
                        'value'    => $fullurl,
                        'tag'      => 'li',
                        'id_input' => $id_input,
                    ) );

                }
            }
        }

        $output .= '</ul>';

        return $this->rendered( $output );
    }

}
CMB2 Documentation API documentation generated by ApiGen