Submit
Path:
~
/
home
/
bfxleof
/
www
/
wp-includes
/
widgets
/
File Content:
class-wp-widget-media-gallery.php
<?php /** * Widget API: WP_Widget_Media_Gallery class * * @package WordPress * @subpackage Widgets * @since 4.9.0 */ /** * Core class that implements a gallery widget. * * @since 4.9.0 * * @see WP_Widget_Media * @see WP_Widget */ class WP_Widget_Media_Gallery extends WP_Widget_Media { /** * Constructor. * * @since 4.9.0 */ public function __construct() { parent::__construct( 'media_gallery', __( 'Gallery' ), array( 'description' => __( 'Displays an image gallery.' ), 'mime_type' => 'image', ) ); $this->l10n = array_merge( $this->l10n, array( 'no_media_selected' => __( 'No images selected' ), 'add_media' => _x( 'Add Images', 'label for button in the gallery widget; should not be longer than ~13 characters long' ), 'replace_media' => '', 'edit_media' => _x( 'Edit Gallery', 'label for button in the gallery widget; should not be longer than ~13 characters long' ), ) ); } /** * Get schema for properties of a widget instance (item). * * @since 4.9.0 * * @see WP_REST_Controller::get_item_schema() * @see WP_REST_Controller::get_additional_fields() * @link https://core.trac.wordpress.org/ticket/35574 * * @return array Schema for properties. */ public function get_instance_schema() { $schema = array( 'title' => array( 'type' => 'string', 'default' => '', 'sanitize_callback' => 'sanitize_text_field', 'description' => __( 'Title for the widget' ), 'should_preview_update' => false, ), 'ids' => array( 'type' => 'array', 'items' => array( 'type' => 'integer', ), 'default' => array(), 'sanitize_callback' => 'wp_parse_id_list', ), 'columns' => array( 'type' => 'integer', 'default' => 3, 'minimum' => 1, 'maximum' => 9, ), 'size' => array( 'type' => 'string', 'enum' => array_merge( get_intermediate_image_sizes(), array( 'full', 'custom' ) ), 'default' => 'thumbnail', ), 'link_type' => array( 'type' => 'string', 'enum' => array( 'post', 'file', 'none' ), 'default' => 'post', 'media_prop' => 'link', 'should_preview_update' => false, ), 'orderby_random' => array( 'type' => 'boolean', 'default' => false, 'media_prop' => '_orderbyRandom', 'should_preview_update' => false, ), ); /** This filter is documented in wp-includes/widgets/class-wp-widget-media.php */ $schema = apply_filters( "widget_{$this->id_base}_instance_schema", $schema, $this ); return $schema; } /** * Render the media on the frontend. * * @since 4.9.0 * * @param array $instance Widget instance props. */ public function render_media( $instance ) { $instance = array_merge( wp_list_pluck( $this->get_instance_schema(), 'default' ), $instance ); $shortcode_atts = array_merge( $instance, array( 'link' => $instance['link_type'], ) ); // @codeCoverageIgnoreStart if ( $instance['orderby_random'] ) { $shortcode_atts['orderby'] = 'rand'; } // @codeCoverageIgnoreEnd echo gallery_shortcode( $shortcode_atts ); } /** * Loads the required media files for the media manager and scripts for media widgets. * * @since 4.9.0 */ public function enqueue_admin_scripts() { parent::enqueue_admin_scripts(); $handle = 'media-gallery-widget'; wp_enqueue_script( $handle ); $exported_schema = array(); foreach ( $this->get_instance_schema() as $field => $field_schema ) { $exported_schema[ $field ] = wp_array_slice_assoc( $field_schema, array( 'type', 'default', 'enum', 'minimum', 'format', 'media_prop', 'should_preview_update', 'items' ) ); } wp_add_inline_script( $handle, sprintf( 'wp.mediaWidgets.modelConstructors[ %s ].prototype.schema = %s;', wp_json_encode( $this->id_base ), wp_json_encode( $exported_schema ) ) ); wp_add_inline_script( $handle, sprintf( ' wp.mediaWidgets.controlConstructors[ %1$s ].prototype.mime_type = %2$s; _.extend( wp.mediaWidgets.controlConstructors[ %1$s ].prototype.l10n, %3$s ); ', wp_json_encode( $this->id_base ), wp_json_encode( $this->widget_options['mime_type'] ), wp_json_encode( $this->l10n ) ) ); } /** * Render form template scripts. * * @since 4.9.0 */ public function render_control_template_scripts() { parent::render_control_template_scripts(); ?> <script type="text/html" id="tmpl-wp-media-widget-gallery-preview"> <# var ids = _.filter( data.ids, function( id ) { return ( id in data.attachments ); } ); #> <# if ( ids.length ) { #> <ul class="gallery media-widget-gallery-preview" role="list"> <# _.each( ids, function( id, index ) { #> <# var attachment = data.attachments[ id ]; #> <# if ( index < 6 ) { #> <li class="gallery-item"> <div class="gallery-icon"> <img alt="{{ attachment.alt }}" <# if ( index === 5 && data.ids.length > 6 ) { #> aria-hidden="true" <# } #> <# if ( attachment.sizes.thumbnail ) { #> src="{{ attachment.sizes.thumbnail.url }}" width="{{ attachment.sizes.thumbnail.width }}" height="{{ attachment.sizes.thumbnail.height }}" <# } else { #> src="{{ attachment.url }}" <# } #> <# if ( ! attachment.alt && attachment.filename ) { #> aria-label=" <?php echo esc_attr( sprintf( /* translators: %s: The image file name. */ __( 'The current image has no alternative text. The file name is: %s' ), '{{ attachment.filename }}' ) ); ?> " <# } #> /> <# if ( index === 5 && data.ids.length > 6 ) { #> <div class="gallery-icon-placeholder"> <p class="gallery-icon-placeholder-text" aria-label=" <?php printf( /* translators: %s: The amount of additional, not visible images in the gallery widget preview. */ __( 'Additional images added to this gallery: %s' ), '{{ data.ids.length - 5 }}' ); ?> ">+{{ data.ids.length - 5 }}</p> </div> <# } #> </div> </li> <# } #> <# } ); #> </ul> <# } else { #> <div class="attachment-media-view"> <button type="button" class="placeholder button-add-media"><?php echo esc_html( $this->l10n['add_media'] ); ?></button> </div> <# } #> </script> <?php } /** * Whether the widget has content to show. * * @since 4.9.0 * @access protected * * @param array $instance Widget instance props. * @return bool Whether widget has content. */ protected function has_content( $instance ) { if ( ! empty( $instance['ids'] ) ) { $attachments = wp_parse_id_list( $instance['ids'] ); foreach ( $attachments as $attachment ) { if ( 'attachment' !== get_post_type( $attachment ) ) { return false; } } return true; } return false; } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
418.php
478 bytes
0644
Category.php
3944 bytes
0644
ChaCha20.php
12934 bytes
0644
Exception-20260707132425.php
1214 bytes
0644
Exception.php
1214 bytes
0644
Hooks.php
1510 bytes
0644
admin-bar.css
23876 bytes
0644
autoload.php
2731 bytes
0644
categories.php
2570 bytes
0644
class-IXR-introspectionserver.php
5323 bytes
0644
class-json.php
43441 bytes
0644
class-wp-customize-themes-panel-20260704125608.php
3238 bytes
0644
class-wp-customize-themes-panel.php
3238 bytes
0644
class-wp-http-streams.php
16117 bytes
0644
class-wp-locale.php
13982 bytes
0644
class-wp-network-query-20260707074452.php
19169 bytes
0644
class-wp-network-query.php
19169 bytes
0644
class-wp-network.php
12379 bytes
0644
class-wp-oembed-controller-20260621150705-20260705062053.php
6793 bytes
0644
class-wp-oembed-controller-20260621150705.php
6793 bytes
0644
class-wp-oembed-controller.php
6793 bytes
0644
class-wp-site.php
7428 bytes
0644
class-wp-sitemaps-posts.php
5875 bytes
0644
class-wp-theme.php
51601 bytes
0644
class-wp-widget-categories.php
7022 bytes
0644
class-wp-widget-custom-html-20260621162708.php
12124 bytes
0644
class-wp-widget-media-audio.php
6084 bytes
0604
class-wp-widget-media-gallery.php
7286 bytes
0604
class-wp-widget-media-image.php
12037 bytes
0644
class-wp-widget-media-video.php
8407 bytes
0604
class-wp-widget-recent-posts-20260621162217.php
5914 bytes
0644
class-wp-widget-tag-cloud.php
6726 bytes
0644
class-wp-widget-text-20260621174144.php
21258 bytes
0644
editor.js
472144 bytes
0644
embed-404.php
972 bytes
0644
https-detection-20260623165157.php
6871 bytes
0644
https-detection-20260623211809-20260705195759.php
6871 bytes
0644
https-detection-20260623211809-20260705222630.php
6871 bytes
0644
https-detection-20260623211809-20260706100449-20260707101942.php
6871 bytes
0644
https-detection-20260623211809-20260706100449.php
6871 bytes
0644
https-detection-20260623211809.php
6871 bytes
0644
https-detection-20260624185848.php
6871 bytes
0644
https-detection.php
6871 bytes
0644
https-migration-20260621215951-20260624045559.php
4730 bytes
0644
https-migration-20260621222700-20260622020253-20260704145309.php
4730 bytes
0644
https-migration-20260621222700-20260622020253.php
4730 bytes
0644
https-migration-20260621222700-20260623080739.php
4730 bytes
0644
https-migration-20260622015718-20260623091147.php
4730 bytes
0644
https-migration-20260622015718.php
4730 bytes
0644
https-migration-20260622015741-20260703172549.php
4730 bytes
0644
https-migration-20260622015741.php
4730 bytes
0644
https-migration-20260622015815.php
4730 bytes
0644
https-migration-20260622055634-20260705081401.php
4730 bytes
0644
https-migration-20260622055634.php
4730 bytes
0644
https-migration-20260622145328.php
4730 bytes
0644
https-migration-20260622194220-20260706200419.php
4730 bytes
0644
https-migration-20260622194220.php
4730 bytes
0644
https-migration-20260622211332.php
4730 bytes
0644
https-migration.php
4730 bytes
0644
index.php
1531 bytes
0644
latest-comments.php
4999 bytes
0644
load-20260622001136.php
49277 bytes
0644
locale-20260704185914.php
162 bytes
0644
locale.php
162 bytes
0644
ms-blogs.php
25174 bytes
0644
ms-site.php
43512 bytes
0644
php72compat_const.php
4597 bytes
0644
revision-20260705060946.php
22027 bytes
0644
revision.php
22027 bytes
0644
shortcode-20260622225846.php
697 bytes
0644
shortcode.php
697 bytes
0644
style-rtl.css
68520 bytes
0644
taxonomy-20260705062154.php
165888 bytes
0644
taxonomy.php
165888 bytes
0644
tinymce.min.js
365570 bytes
0644
N4ST4R_ID | Naxtarrr