예제 #1
0
    function show_field_gallery($field, $metas, $single = false)
    {
        wp_enqueue_media();
        if (empty($metas)) {
            $metas = [''];
        }
        $idx = 0;
        $this->show_field_begin($field, $metas);
        $layout = (isset($field['layout']) && $field['layout']) != '' ? $field['layout'] : 'preview';
        if ($layout == 'list') {
            foreach ((array) $metas as $meta) {
                echo "<table class=\"media aeria-media-gallery-" . $field['id'] . " item_" . $idx . "\" width=\"100%\"><tr><td><img id='" . $field['id'] . '_' . $idx . "_image' src='" . $meta . "'/>";
                echo "</td><td><input type='text' name='" . $field['id'] . "[]' id='" . $field['id'] . '_' . $idx . "' value=\"" . html_addslashes($meta) . "\"/>";
                echo "<a class='button button-primary data-type='list' aeria_upload_media_gallery_button' id='" . $field['id'] . "_button' data-target='#" . $field['id'] . '_' . $idx . "'>Select</a>";
                echo "<a class='button button-secondary' onclick=\"jQuery('.aeria-media-gallery-" . $field['id'] . ".item_" . $idx . "').remove();\">Remove</a>";
                echo "</td></tr></table>";
                $idx++;
            }
            echo "<a class='button button-primary button-add' data-target='aeria-media-gallery-" . $field['id'] . "' onclick=\"var x=jQuery('.aeria-media-gallery-" . $field['id'] . " tr:eq(0)'),v=x.clone();v.find('input').val('');v.find('img').attr('src','');x.before(v);window.aeria_setup_media_gallery_fields();\"><b>+&nbsp;&nbsp;Add Item</b></a>";
            echo "<script>jQuery(function(){window.aeria_setup_media_gallery_fields();})</script>";
        }
        if ($layout == 'preview') {
            if (!$single) {
                AeriaMetabox::add_script_sortable();
            }
            if ($single) {
                $num_class = 'single';
            } else {
                $num_class = 'multi';
            }
            echo '<div class="aeria-media-gallery-' . $field['id'] . '">';
            foreach ((array) $metas as $meta) {
                $media_id = AeriaMetabox::get_attachment_id_from_src($meta);
                if ($media_id) {
                    $url_edit = 'post.php?post=' . $media_id . '&action=edit';
                    $meta_type = get_post_mime_type($media_id);
                    $meta_title = get_the_title($media_id);
                } else {
                    $url_edit = '';
                    $meta_type = '';
                    $meta_title = '';
                }
                $background = '';
                $class_background = 'file';
                switch ($meta_type) {
                    case 'image/jpeg':
                    case 'image/png':
                    case 'image/gif':
                        $background = $meta;
                        $class_background = 'image';
                        break;
                }
                $hidden_class = $meta == '' ? 'display:none;' : '';
                echo '<div class="box-image item_' . $idx . '" style="' . $hidden_class . '">';
                echo "<div class='image " . $num_class . " " . $class_background . "' style='background-image:url(" . $background . ");'>";
                if ($class_background == 'file') {
                    echo "<h4>" . (wp_trim_words($meta_title, 8) ?: '<i>Untitled</i>') . "</h4>";
                }
                echo "</div>";
                echo "<div class='box-controls'>\n\t\t\t\t\t\t<a class='button button-remove'><i class='glyphicon glyphicon-trash'></i></a>\n\t\t\t\t\t\t<a class='button button-edit' target='_blank' href='" . $url_edit . "'><i class='glyphicon glyphicon-pencil'></i></a>\n\t\t\t\t\t</div>";
                echo "<input type='hidden' name='" . $field['id'] . "[]' value=\"" . html_addslashes($meta) . "\"/>";
                echo '</div>';
                $idx++;
            }
            echo "<a class='box-image add aeria_upload_media_gallery_button' data-meta_type='" . $class_background . "' data-num='" . $num_class . "' data-type='preview' data-target='aeria-media-gallery-" . $field['id'] . "'>";
            if (!$single) {
                echo "<i class='glyphicon glyphicon-plus-sign'></i>";
            } else {
                echo "<i class='glyphicon glyphicon-retweet'></i>";
            }
            echo "</a>";
            echo "<script>jQuery(function(){window.aeria_setup_media_gallery_fields();})</script>";
            echo '</div>';
            ?>
			<?php 
            if (!$single) {
                ?>
				<script type="text/javascript">
					jQuery(document).ready(function($){
						$('.aeria-media-gallery-<?php 
                echo $field['id'];
                ?>
').sortable();
					});
				</script>
			<?php 
            }
            ?>
		<?php 
        }
        $this->show_field_end($field, $metas);
    }