![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/plugins/foogallery/includes/admin/ |
<?php /* * FooGallery Admin Gallery MetaBoxes class */ if ( ! class_exists( 'FooGallery_Admin_Gallery_Editor' ) ) { class FooGallery_Admin_Gallery_Editor { /** * Primary class constructor. */ public function __construct() { //adds a media button to the editor add_action( 'media_buttons', array( $this, 'add_media_button') ); //add a tinymce plugin add_action( 'admin_head', array( $this, 'add_tinymce_plugin' ) ); // Ajax calls for showing all galleries in the modal add_action( 'wp_ajax_foogallery_load_galleries', array( $this, 'ajax_galleries_html' ) ); add_action( 'wp_ajax_foogallery_tinymce_load_info', array( $this, 'ajax_get_gallery_info' ) ); } private function should_hide_editor_button() { return 'on' == foogallery_get_setting( 'hide_editor_button' ); } /** * Adds a gallery insert button into the editor * * @param string $editor_id the instance id of the current editor * * @return string $buttons the amended media buttons */ public function add_media_button( $editor_id ) { if ( $this->should_hide_editor_button() ) { return; } //render the gallery modal add_action( 'admin_footer', array( $this, 'render_gallery_modal' ) ); add_action( 'wp_footer', array( $this, 'render_gallery_modal' ) ); $url = FOOGALLERY_URL . 'css/admin-foogallery-gallery-piles.css'; wp_enqueue_style( 'admin-foogallery-gallery-piles', $url, array(), FOOGALLERY_VERSION ); $foogallery = FooGallery_Plugin::get_instance(); $foogallery->register_and_enqueue_js( 'admin-foogallery-editor.js' ); ?> <button type="button" class="button foogallery-modal-trigger" title="<?php esc_attr_e( sprintf( __( 'Add Gallery From %s', 'foogallery' ), foogallery_plugin_name() ) ); ?>" style="padding-left: .4em;" data-editor="<?php esc_attr_e( $editor_id ); ?>"> <span class="wp-media-buttons-icon dashicons dashicons-format-gallery"></span> <?php echo sprintf( __( 'Add %s', 'foogallery' ), foogallery_plugin_name() ); ?> </button> <?php } /** * Adds our custom plugin to the tinyMCE editor */ public function add_tinymce_plugin() { // get out if we do not want to add the button if ( $this->should_hide_editor_button() ) { return; } // check user permissions if ( ! current_user_can( 'edit_posts' ) && ! current_user_can( 'edit_pages' ) ) { return; } // check if WYSIWYG is enabled if ( 'true' == get_user_option( 'rich_editing' ) ) { add_filter( 'mce_external_plugins', array( $this, 'add_tinymce_js' ) ); add_filter( 'mce_css', array( $this, 'add_tinymce_css' ) ); add_action( 'admin_footer', array( $this, 'render_tinymce_nonce') ); } } /** * Include a plugin script into the editor * @param $plugin_array * * @return mixed */ public function add_tinymce_js( $plugin_array ) { $plugin_array['foogallery'] = FOOGALLERY_URL . 'js/admin-tinymce.js'; return $plugin_array; } /** * Include a plugin script into the editor * @param $mce_css * * @return string */ public function add_tinymce_css( $mce_css ) { if ( ! empty( $mce_css ) ) { $mce_css .= ','; } $mce_css .= FOOGALLERY_URL . 'css/admin-tinymce.css'; // . urlencode( '?v=' + FOOGALLERY_VERSION ); return $mce_css; } /** * Renders a nonce field that is used in our AJAX calls for the visual editor */ public function render_tinymce_nonce() { ?> <input id="foogallery-timnymce-action-nonce" type="hidden" value="<?php esc_url( wp_create_nonce( 'foogallery-timymce-nonce' ) ); ?>" /> <?php } /** * Renders the gallery modal for use in the editor */ public function render_gallery_modal() { ?> <style> .foogallery-modal-reload-container { display: inline-block; margin-left: 10px; } .foogallery-modal-reload-container a.button { margin-top:10px !important; } .foogallery-modal-reload-container a span { margin-top: 3px; } .foogallery-modal-reload-container .spinner { position: absolute; top: 15px; display: inline-block; margin-left: 5px; } .foogallery-add-gallery { background: #444; } .foogallery-add-gallery span::after { background: #ddd; -webkit-border-radius: 50%; border-radius: 50%; display: inline-block; content: '\f132'; -webkit-font-smoothing: antialiased; font: normal 75px/115px 'dashicons'; width: 100px; height: 100px; vertical-align: middle; text-align: center; color: #999; position: absolute; top: 40%; left: 50%; margin-left: -50px; margin-top: -50px; padding: 0; text-shadow: none; z-index: 4; text-indent: -4px; } .foogallery-add-gallery:hover span::after { background: #1E8CBE; color: #444; } </style> <?php wp_nonce_field( 'foogallery_load_galleries', 'foogallery_load_galleries', false ); ?> <div class="foogallery-modal-wrapper" style="display: none;"> <div class="media-modal wp-core-ui"> <button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text">Close media panel</span></span></button> <div class="media-modal-content"> <div class="media-frame wp-core-ui hide-menu hide-router foogallery-meta-wrap"> <div class="media-frame-title"> <h1> <?php _e( 'Choose a gallery to insert', 'foogallery' ); ?> <div class="foogallery-modal-reload-container"> <div class="spinner"></div> <a class="foogallery-modal-reload button" href="#"><span class="dashicons dashicons-update"></span> <?php _e( 'Reload', 'foogallery' ); ?></a> </div> </h1> </div> <div class="media-frame-content"> <div class="attachments-browser"> <ul class="foogallery-attachment-container attachments" style="padding-left: 8px; top: 1em;"> <div class="foogallery-modal-loading"><?php _e( 'Loading galleries...', 'foogallery' ); ?></div> </ul> <!-- end .foogallery-meta --> <div class="media-sidebar"> <div class="foogallery-modal-sidebar"> <h3><?php _e( 'Select A Gallery', 'foogallery' ); ?></h3> <p> <?php _e( 'Select a gallery by clicking it, and then click the "Insert Gallery" button to insert it into your content.', 'foogallery' ); ?> </p> <h3><?php _e( 'Add A Gallery', 'foogallery' ); ?></h3> <p> <?php _e( 'You can add a new gallery by clicking the "Add New Gallery" tile on the left. It will open in a new window.', 'foogallery' ); ?> </p> <p> <?php _e( 'Once you have finished adding a gallery, come back to this dialog and click the "Reload" button to see your newly created gallery.', 'foogallery' ); ?> </p> </div> <!-- end .foogallery-meta-sidebar --> </div> <!-- end .media-sidebar --> </div> <!-- end .attachments-browser --> </div> <!-- end .media-frame-content --> <div class="media-frame-toolbar"> <div class="media-toolbar"> <div class="media-toolbar-secondary"> <a href="#" class="foogallery-modal-cancel button media-button button-large button-secondary media-button-insert" title="<?php esc_attr_e( 'Cancel', 'foogallery' ); ?>"><?php _e( 'Cancel', 'foogallery' ); ?></a> </div> <div class="media-toolbar-primary"> <a href="#" class="foogallery-modal-insert button media-button button-large button-primary media-button-insert" disabled="disabled" title="<?php esc_attr_e( 'Insert Gallery', 'foogallery' ); ?>"><?php _e( 'Insert Gallery', 'foogallery' ); ?></a> </div> <!-- end .media-toolbar-primary --> </div> <!-- end .media-toolbar --> </div> <!-- end .media-frame-toolbar --> </div> <!-- end .media-frame --> </div> <!-- end .media-modal-content --> </div> <!-- end .media-modal --> <div class="media-modal-backdrop"></div> </div> <?php } function ajax_galleries_html() { if ( check_admin_referer( 'foogallery_load_galleries', 'foogallery_load_galleries' ) ) { echo $this->get_galleries_html_for_modal(); } die(); } function get_galleries_html_for_modal() { $galleries = foogallery_get_all_galleries(); ob_start(); foreach ( $galleries as $gallery ) { $img_src = foogallery_find_featured_attachment_thumbnail_src( $gallery, array( 'width' => get_option( 'thumbnail_size_w' ), 'height' => get_option( 'thumbnail_size_h' ), 'force_use_original_thumb' => true ) ); $images = $gallery->image_count(); $title = empty( $gallery->name ) ? sprintf( __( '%s #%s', 'foogallery' ), foogallery_plugin_name(), $gallery->ID ) : $gallery->name; ?> <li class="foogallery-pile"> <div class="foogallery-gallery-select" data-foogallery-id="<?php echo $gallery->ID; ?>"> <div style="display: table;"> <div style="display: table-cell; vertical-align: middle; text-align: center;"> <img src="<?php echo $img_src; ?>"/> <h3> <?php echo esc_html( $title ); ?> <span><?php echo $images; ?></span> </h3> </div> </div> </div> </li> <?php } ?> <li class="foogallery-pile"> <div class="foogallery-gallery-select foogallery-add-gallery"> <a href="<?php echo esc_url( foogallery_admin_add_gallery_url() ); ?>" target="_blank" class="thumbnail" style="display: table;"> <span></span> <div class="foogallery-gallery-select-inner" > <h3><?php _e( 'Add New Gallery', 'foogallery' ); ?></h3> </div> </a> </div> </li> <?php return ob_get_clean(); } function ajax_get_gallery_info() { $nonce = safe_get_from_request( 'nonce' ); wp_verify_nonce( $nonce, 'foogallery-timymce-nonce' ); $id = safe_get_from_request( 'foogallery_id' ); $gallery = FooGallery::get_by_id( $id ); $image_src = foogallery_find_featured_attachment_thumbnail_src( $gallery, array( 'width' => get_option( 'thumbnail_size_w' ), 'height' => get_option( 'thumbnail_size_h' ), 'force_use_original_thumb' => true ) ); $json_array = array( 'id' => $id, 'name' => $gallery->name, 'count' => $gallery->image_count(), 'src' => $image_src, ); header( 'Content-type: application/json' ); echo json_encode( $json_array ); die(); } } }