Server IP : 15.235.198.142 / Your IP : 216.73.216.190 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/rhodeworks/wp-content/plugins/nextgen-gallery/src/Legacy/admin/ |
Upload File : |
<?php function nggallery_manage_gallery_main() { global $ngg; $action_status = [ 'message' => '', 'status' => 'ok', ]; // Build the pagination for more than 25 galleries. $_GET['paged'] = isset( $_GET['paged'] ) && ( $_GET['paged'] > 0 ) ? absint( $_GET['paged'] ) : 1; $items_per_page = apply_filters( 'ngg_manage_galleries_items_per_page', 25 ); $start = ( $_GET['paged'] - 1 ) * $items_per_page; if ( ! empty( $_GET['order'] ) && in_array( strtoupper( $_GET['order'] ), [ 'DESC', 'ASC' ] ) ) { $order = $_GET['order']; } else { $order = apply_filters( 'ngg_manage_galleries_items_order', 'ASC' ); } if ( ! empty( $_GET['orderby'] ) && in_array( $_GET['orderby'], [ 'gid', 'title', 'author' ] ) ) { $orderby = $_GET['orderby']; } else { $orderby = apply_filters( 'ngg_manage_galleries_items_orderby', 'gid' ); } $gallery_mapper = \Imagely\NGG\DataMappers\Gallery::get_instance(); $total_number_of_galleries = $gallery_mapper->count(); $query = $gallery_mapper->select(); if ( ! empty( $_GET['gs'] ) ) { $gs = sanitize_text_field( wp_unslash( $_GET['gs'] ) ); $query->where( [ 'title LIKE %s', '%' . trim( $gs ) . '%' ] ); } else { $gs = null; } $gallerylist = $query->order_by( $orderby, $order ) ->limit( $items_per_page, $start ) ->run_query(); $wp_list_table = new _NGG_Galleries_List_Table( 'nggallery-manage-gallery' ); ?> <script> var $ = jQuery; // Listen for frame events $(function() { if ($(this).data('ready')) { return; } if (window.Frame_Event_Publisher) { // If a new gallery is added, refresh the page Frame_Event_Publisher.listen_for('attach_to_post:new_gallery attach_to_post:manage_images attach_to_post:images_added',function(){ window.location.href = window.location.href.toString(); }); } $(this).data('ready', true); }); function checkAll(form) { for (var i = 0, n = form.elements.length; i < n; i++) { if (form.elements[i].type === "checkbox") { if (form.elements[i].name === "doaction[]") { if (form.elements[i].checked == true) { form.elements[i].checked = false; } else { form.elements[i].checked = true; } } } } } function getNumChecked(form) { var num = 0; for (var i = 0, n = form.elements.length; i < n; i++) { if (form.elements[i].type === "checkbox") { if(form.elements[i].name === "doaction[]") { if (form.elements[i].checked == true) { num++; } } } } return num; } // this function check for a the number of selected images, sumbmit false when no one selected function checkSelected() { if (typeof document.activeElement == "undefined" && document.addEventListener) { document.addEventListener("focus", function (e) { document.activeElement = e.target; }, true); } if (document.activeElement.name === 'post_paged') { return true; } var numchecked = getNumChecked(document.getElementById('editgalleries')); if (numchecked < 1) { alert('<?php echo esc_js( __( 'No images selected', 'nggallery' ) ); ?>'); return false; } var actionId = $('#bulkaction').val(); switch (actionId) { case "resize_images": showDialog('resize_images', '<?php echo esc_js( __( 'Resize images', 'nggallery' ) ); ?>'); return false; break; case "new_thumbnail": showDialog('new_thumbnail', '<?php echo esc_js( __( 'Create new thumbnails', 'nggallery' ) ); ?>'); return false; break; } return confirm( '<?php printf( esc_js( __( "You are about to start the bulk edit for %s galleries \n \n 'Cancel' to stop, 'OK' to proceed.", 'nggallery' ) ), "' + numchecked + '" ); ?>' ); } function showDialog(windowId, title) { var form = document.getElementById('editgalleries'); var elementlist = ""; for (var i = 0, n = form.elements.length; i < n; i++) { if (form.elements[i].type == "checkbox") { if (form.elements[i].name == "doaction[]") { if (form.elements[i].checked == true) { if (elementlist == "") { elementlist = form.elements[i].value; } else { elementlist += "," + form.elements[i].value; } } } } } $("#" + windowId + "_bulkaction").val(jQuery("#bulkaction").val()); $("#" + windowId + "_imagelist").val(elementlist); // now show the dialog $("#" + windowId).dialog({ width: 640, resizable: false, modal: true, title: title, position: { my: 'center', at: 'center', of: window.parent } }); $("#" + windowId + ' .dialog-cancel').on('click', function() { $("#" + windowId).dialog("close"); }); $('.ui-dialog-titlebar-close').text('X'); } function showAddGallery() { $("#addGallery").dialog({ width: 640, resizable: false, modal: true, title: '<?php echo esc_js( __( 'Add new gallery', 'nggallery' ) ); ?>', position: { my: 'center', at: 'center', of: window.parent } }); $("#addGallery .dialog-cancel").on('click', function() { $("#addGallery").dialog("close"); }); } </script> <?php if ( isset( $action_status ) && $action_status['message'] != '' ) { ?> <div id="message" class="<?php echo ( $action_status['status'] == 'ok' ? 'updated' : $action_status['status'] ); ?> fade"> <p> <strong><?php echo $action_status['message']; ?></strong> </p> </div> <?php } ?> <div class="wrap ngg_manage_galleries"> <div class="ngg_page_content_header"> <h3> <?php echo _n( 'Manage Galleries', 'Manage Galleries', 2, 'nggallery' ); ?> </h3> </div> <div class='ngg_page_content_main'> <div class="search-box-wrapper"> <form class="search-form" action="" method="get"> <div class="search-box"> <input type="hidden" id="page-name" name="page" value="nggallery-manage-gallery"/> <input type="text" id="media-search-input" name="s" placeholder="<?php esc_attr_e( 'Search Images', 'nggallery' ); ?>" value="<?php the_search_query(); ?>"/> <input type="submit" value="<?php esc_attr_e( 'Search Images', 'nggallery' ); ?>" class="button-primary"/> </div> </form> <form class="search-form" action="" method="get"> <div class="search-box"> <input type="hidden" id="page-name" name="page" value="nggallery-manage-gallery"/> <input type="text" id="gallery-search-input" name="gs" placeholder="<?php esc_attr_e( 'Search Galleries', 'nggallery' ); ?>" value="<?php print ! empty( $_GET['gs'] ) ? esc_attr( trim( $_GET['gs'] ) ) : ''; ?>"/> <input type="submit" value="<?php esc_attr_e( 'Search Galleries', 'nggallery' ); ?>" class="button-primary"/> </div> </form> </div> <form id="editgalleries" class="nggform" method="POST" action="<?php echo \Imagely\NGG\Util\Router::esc_url( $ngg->manage_page->base_page . '&orderby=' . $orderby . '&order=' . $order . '&paged=' . $_GET['paged'] ); ?>" accept-charset="utf-8"> <?php wp_nonce_field( 'ngg_bulkgallery' ); ?> <input type="hidden" name="nggpage" value="manage-galleries"/> <div class="tablenav top"> <div class="alignleft actions"> <?php if ( function_exists( 'json_encode' ) ) { ?> <select name="bulkaction" id="bulkaction"> <option value="no_action"> <?php esc_html_e( 'Bulk actions', 'nggallery' ); ?></option> <option value="delete_gallery"><?php esc_html_e( 'Delete', 'nggallery' ); ?></option> <option value="set_watermark"> <?php esc_html_e( 'Set watermark', 'nggallery' ); ?></option> <option value="new_thumbnail"> <?php esc_html_e( 'Create new thumbnails', 'nggallery' ); ?></option> <option value="resize_images"> <?php esc_html_e( 'Resize images', 'nggallery' ); ?></option> <option value="import_meta"> <?php esc_html_e( 'Import metadata', 'nggallery' ); ?></option> <option value="recover_images"><?php esc_html_e( 'Recover from backup', 'nggallery' ); ?></option> </select> <input name="showThickbox" class="button-primary" type="submit" value="<?php esc_attr_e( 'Apply', 'nggallery' ); ?>" onclick="if (!checkSelected()) return false;"/> <?php } ?> <?php if ( current_user_can( 'NextGEN Upload images' ) && nggGallery::current_user_can( 'NextGEN Add new gallery' ) ) { ?> <input name="doaction" class="button-primary action" type="submit" onclick="showAddGallery(); return false;" value="<?php esc_attr_e( 'Add new gallery', 'nggallery' ); ?>"/> <?php } ?> </div> <?php $ngg->manage_page->pagination( 'top', $_GET['paged'], $total_number_of_galleries, $items_per_page ); ?> </div> <?php // Allows for additional content to be injected between the bulk actions and the actual tabular data. do_action( 'ngg_manage_galleries_above_table' ); ?> <table class="wp-list-table widefat" cellspacing="0"> <thead> <tr> <?php $wp_list_table->print_column_headers( true ); ?> </tr> </thead> <tfoot> <tr> <?php $wp_list_table->print_column_headers( false ); ?> </tr> </tfoot> <tbody id="the-list"> <?php if ( $gallerylist ) { // get the columns. $gallery_columns = $wp_list_table->get_columns(); $hidden_columns = get_hidden_columns( 'nggallery-manage-gallery' ); foreach ( $gallerylist as $gallery ) { $alternate = ( ! isset( $alternate ) || $alternate == 'class="alternate"' ) ? '' : 'class="alternate"'; $gid = $gallery->gid; $name = ( empty( $gallery->title ) ) ? $gallery->name : $gallery->title; $author_user = get_userdata( (int) $gallery->author ); ?> <tr id="gallery-<?php echo $gid; ?>" <?php echo $alternate; ?>> <?php foreach ( $gallery_columns as $gallery_column_key => $column_display_name ) { $class = "class='{$gallery_column_key} column-{$gallery_column_key}'"; $style = ''; if ( in_array( $gallery_column_key, $hidden_columns ) ) { $style = ' style="display:none;"'; } $attributes = "{$class}{$style}"; switch ( $gallery_column_key ) { case 'cb': ?> <th scope="row" class="column-cb check-column"> <?php if ( nggAdmin::can_manage_this_gallery( $gallery->author ) ) { ?> <input name="doaction[]" type="checkbox" value="<?php echo $gid; ?>"/> <?php } ?> </th> <?php break; case 'id': ?> <td <?php echo $attributes; ?>> <?php echo $gid; ?> </td> <?php break; case 'title': ?> <td class="title column-title"> <?php if ( nggAdmin::can_manage_this_gallery( $gallery->author ) ) { ?> <a href="<?php echo wp_nonce_url( $ngg->manage_page->base_page . '&mode=edit&gid=' . $gid, 'ngg_editgallery' ); ?>" class='edit' title="<?php esc_attr_e( 'Edit', 'nggallery' ); ?>"> <?php echo esc_html( \Imagely\NGG\Display\I18N::translate( $name ) ); ?> </a> <?php } else { ?> <?php echo esc_html( \Imagely\NGG\Display\I18N::translate( $gallery->title ) ); ?> <?php } ?> <div class="row-actions"></div> </td> <?php break; case 'description': ?> <td <?php echo $attributes; ?>> <?php echo esc_html( \Imagely\NGG\Display\I18N::translate( $gallery->galdesc ) ); ?> </td> <?php break; case 'author': $author_string = $author_user === false ? __( 'Deleted user', 'nggallery' ) : $author_user->display_name; ?> <td <?php echo $attributes; ?>> <?php echo esc_html( $author_string ); ?> </td> <?php break; case 'page_id': ?> <td <?php echo $attributes; ?>> <?php echo $gallery->pageid; ?> </td> <?php break; case 'quantity': global $wpdb; $gallery->counter = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->nggpictures} WHERE galleryid = %d", $gallery->{$gallery->id_field} ) ); ?> <td <?php echo $attributes; ?>> <?php echo $gallery->counter; ?> </td> <?php break; default: ?> <td <?php echo $attributes; ?>> <?php do_action( 'ngg_manage_gallery_custom_column', $gallery_column_key, $gid ); ?> </td> <?php break; } } // end foreach ?> </tr> <?php } // end foreach } else { echo '<tr><td colspan="7" align="center"><strong>' . esc_html__( 'No entries found', 'nggallery' ) . '</strong></td></tr>'; } ?> </tbody> </table> <div class="tablenav bottom"> <?php $ngg->manage_page->pagination( 'bottom', $_GET['paged'], $total_number_of_galleries, $items_per_page ); ?> </div> </form> <?php do_action( 'ngg_manage_galleries_marketing_block' ); ?> </div> <!-- /.ngg_page_content_main --> </div> <!-- /.wrap --> <!-- #addGallery --> <div id="addGallery" style="display: none;"> <form id="form-tags" method="POST" accept-charset="utf-8"> <?php wp_nonce_field( 'ngg_bulkgallery' ); ?> <input type="hidden" name="nggpage" value="manage-galleries"/> <table width="100%" border="0" cellspacing="3" cellpadding="3"> <tr> <td> <strong><?php esc_html_e( 'New Gallery', 'nggallery' ); ?>:</strong> <input type="text" size="35" name="galleryname" value=""/> <br/> <?php if ( ! is_multisite() ) { ?> <?php esc_html_e( 'Create a new , empty gallery below the folder', 'nggallery' ); ?> <strong><?php echo $ngg->options['gallerypath']; ?></strong> <br/> <?php } ?> <i>(<?php esc_html_e( 'Allowed characters for file and folder names are', 'nggallery' ); ?>: a-z, A-Z, 0-9, -, _)</i> </td> </tr> <?php do_action( 'ngg_add_new_gallery_form' ); ?> <tr align="right"> <td class="submit"> <input class="button-primary" type="submit" name="addgallery" value="<?php esc_attr_e( 'OK', 'nggallery' ); ?>"/> <input class="button-primary dialog-cancel" type="reset" value=" <?php esc_attr_e( 'Cancel', 'nggallery' ); ?> "/> </td> </tr> </table> </form> </div> <!-- /#addGallery --> <!-- #resize_images --> <div id="resize_images" style="display: none;"> <form id="form-resize-images" method="POST" accept-charset="utf-8"> <?php wp_nonce_field( 'ngg_bulkgallery' ); ?> <input type="hidden" id="resize_images_imagelist" name="TB_imagelist" value=""/> <input type="hidden" id="resize_images_bulkaction" name="TB_bulkaction" value=""/> <input type="hidden" name="nggpage" value="manage-galleries"/> <table width="100%" border="0" cellspacing="3" cellpadding="3"> <tr valign="top"> <td> <strong><?php esc_html_e( 'Resize Images to', 'nggallery' ); ?>:</strong> </td> <td> <input type="text" size="5" name="imgWidth" value="<?php echo esc_attr( $ngg->options['imgWidth'] ); ?>"/> x <input type="text" size="5" name="imgHeight" value="<?php echo esc_attr( $ngg->options['imgHeight'] ); ?>"/> <br/> <small><?php esc_html_e( 'Width x height (in pixel). NextGEN Gallery will keep ratio size', 'nggallery' ); ?></small> </td> </tr> <tr align="right"> <td colspan="2" class="submit"> <input class="button-primary" type="submit" name="TB_ResizeImages" value="<?php esc_attr_e( 'OK', 'nggallery' ); ?>"/> <input class="button-primary dialog-cancel" type="reset" value=" <?php esc_attr_e( 'Cancel', 'nggallery' ); ?> "/> </td> </tr> </table> </form> </div> <!-- /#resize_images --> <!-- #new_thumbnail --> <div id="new_thumbnail" style="display: none;"> <form id="form-new-thumbnail" method="POST" accept-charset="utf-8"> <?php wp_nonce_field( 'ngg_bulkgallery' ); ?> <input type="hidden" id="new_thumbnail_imagelist" name="TB_imagelist" value=""/> <input type="hidden" id="new_thumbnail_bulkaction" name="TB_bulkaction" value=""/> <input type="hidden" name="nggpage" value="manage-galleries"/> <table width="100%" border="0" cellspacing="3" cellpadding="3"> <tr valign="top"> <th align="left"> <?php esc_html_e( 'Width x height (in pixel)', 'nggallery' ); ?> </th> <td> <?php include __DIR__ . '/thumbnails-template.php'; ?> </td> </tr> <tr valign="top"> <th align="left"> <?php esc_html_e( 'Set fix dimension', 'nggallery' ); ?> </th> <td> <input type="checkbox" name="thumbfix" value="1" <?php checked( '1', $ngg->options['thumbfix'] ); ?>/> <br/> <small><?php esc_html_e( 'Ignore the aspect ratio, no portrait thumbnails', 'nggallery' ); ?></small> </td> </tr> <tr align="right"> <td colspan="2" class="submit"> <input class="button-primary" type="submit" name="TB_NewThumbnail" value="<?php esc_attr_e( 'OK', 'nggallery' ); ?>"/> <input class="button-primary dialog-cancel" type="reset" value=" <?php esc_attr_e( 'Cancel', 'nggallery' ); ?> "/> </td> </tr> </table> </form> </div> <!-- /#new_thumbnail --> <?php } /** * Constructor class to create the table layout * * @package WordPress * @subpackage List_Table * @since 1.8.0 * @access private */ class _NGG_Galleries_List_Table extends WP_List_Table { public $_screen; public $_columns; function __construct( $screen ) { if ( is_string( $screen ) ) { $screen = convert_to_screen( $screen ); } $this->_screen = $screen; $this->_columns = []; add_filter( 'manage_' . $screen->id . '_columns', [ &$this, 'get_columns' ], 0 ); } function get_column_info() { $columns = get_column_headers( $this->_screen ); $hidden = get_hidden_columns( $this->_screen ); $_sortable = $this->get_sortable_columns(); foreach ( $_sortable as $id => $data ) { if ( empty( $data ) ) { continue; } $data = (array) $data; if ( ! isset( $data[1] ) ) { $data[1] = false; } $sortable[ $id ] = $data; } return [ $columns, $hidden, $sortable, null ]; } // define the columns to display, the syntax is 'internal name' => 'display name'. function get_columns() { $columns = []; $columns['cb'] = '<input name="checkall" type="checkbox" onclick="checkAll(document.getElementById(\'editgalleries\'));"/>'; $columns['id'] = __( 'ID', 'nggallery' ); $columns['title'] = _n( 'Gallery', 'Galleries', 1, 'nggallery' ); $columns['description'] = __( 'Description', 'nggallery' ); $columns['author'] = __( 'Author', 'nggallery' ); $columns['page_id'] = __( 'Page ID', 'nggallery' ); $columns['quantity'] = _n( 'Image', 'Images', 2, 'nggallery' ); $columns = apply_filters( 'ngg_manage_gallery_columns', $columns ); return $columns; } function get_sortable_columns() { return [ 'id' => [ 'gid', true ], 'title' => 'title', 'author' => 'author', ]; } }