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 /** * @author Alex Rabe */ /** * @param int $galleryID */ function nggallery_sortorder( $galleryID = 0 ) { global $wpdb, $nggdb; $action_status = [ 'message' => '', 'status' => 'ok', ]; if ( $galleryID == 0 ) { return; } $galleryID = (int) $galleryID; if ( isset( $_POST['updateSortorder'] ) ) { check_admin_referer( 'ngg_updatesortorder' ); // get variable new sortorder. if ( ! empty( $_POST['sortorder'] ) ) { $sortArray = explode( ',', $_POST['sortorder'] ); } if ( is_array( $sortArray ) ) { $neworder = []; foreach ( $sortArray as $pid ) { $neworder[] = (int) $pid; } $sortindex = 1; foreach ( $neworder as $pic_id ) { $wpdb->query( $wpdb->prepare( "UPDATE `{$wpdb->nggpictures}` SET `sortorder` = %s WHERE `pid` = %d", [ $sortindex, $pic_id, ] ) ); ++$sortindex; } \Imagely\NGG\Util\Transient::flush( 'displayed_gallery_rendering' ); do_action( 'ngg_gallery_sort', $galleryID ); nggGallery::show_message( __( 'Sort order changed', 'nggallery' ) ); } } // look for presort args. $presort = isset( $_GET['presort'] ) ? $_GET['presort'] : false; $dir = ( isset( $_GET['dir'] ) && $_GET['dir'] == 'DESC' ) ? 'DESC' : 'ASC'; $sortitems = [ 'pid', 'filename', 'alttext', 'imagedate' ]; // ensure that nobody added some evil sorting :-). if ( in_array( $presort, $sortitems ) ) { $picturelist = $nggdb->get_gallery( $galleryID, $presort, $dir, false ); } else { $picturelist = $nggdb->get_gallery( $galleryID, 'sortorder', $dir, false ); } // This is the url without any presort variable. $clean_url = 'admin.php?page=nggallery-manage-gallery&mode=sort&gid=' . $galleryID; // If we go back then the mode should be edit. $back_url = 'admin.php?page=nggallery-manage-gallery&mode=edit&gid=' . $galleryID; // In the case somebody presort, then we take this url. if ( isset( $_GET['dir'] ) || isset( $_GET['presort'] ) ) { $base_url = $_SERVER['REQUEST_URI']; } else { $base_url = $clean_url; } ?> <script type="text/javascript"> (function($) { $(function() { if ($(this).data('ready')) return; // Enable sorting $(".jqui-sortable").sortable({ items: 'div.imageBox' }); $('#sortGallery').on('submit',function (e) { var serial = ""; var $images = $('div.imageBox'); for (var i = 0; i < $images.length; i++) { var image_id = $images[i].id.split('-').pop(); if (serial.length > 0) { serial = serial + ','; } serial = serial + image_id; } $('input[name=sortorder]').val(serial); }); // Listen for events in other frames if (window.Frame_Event_Publisher) { Frame_Event_Publisher.listen_for('attach_to_post:manage_galleries attach_to_post:manage_images', function () { window.location.href = window.location.href.toString(); }); } $(this).data('ready', true); }); })(jQuery); </script> <?php if ( $action_status['message'] != '' ) { ?> <div id="message" class="<?php echo esc_attr( ( $action_status['status'] == 'ok' ? 'updated' : $action_status['status'] ) ); ?> fade"> <p><strong><?php print $action_status['message']; ?></strong></p> </div> <?php } ?> <div class="wrap ngg_gallery_sort"> <div class="ngg_page_content_header"> <h3><?php esc_html_e( 'Sort Gallery', 'nggallery' ); ?></h3> </div> <div class='ngg_page_content_main'> <form id="sortGallery" method="POST" action="<?php print $clean_url; ?>" accept-charset="utf-8"> <div class="tablenav"> <div class="alignleft actions"> <?php wp_nonce_field( 'ngg_updatesortorder' ); ?> <input class="button-primary action" type="submit" name="updateSortorder" value="<?php print __( 'Update Sort Order', 'nggallery' ); ?>"/> </div> <div class="alignright actions"> <a href="<?php print \Imagely\NGG\Util\Router::esc_url( $back_url ); ?>" class="button-primary"> <?php esc_html_e( 'Back to gallery', 'nggallery' ); ?> </a> </div> </div> <input name="sortorder" type="hidden"/> <ul class="subsubsub"> <li><?php esc_html_e( 'Presort', 'nggallery' ); ?>:</li> <li><a href="<?php print esc_attr( remove_query_arg( 'presort', $base_url ) ); ?>" <?php if ( $presort == '' ) { print 'class="current"';} ?> ><?php esc_html_e( 'Unsorted', 'nggallery' ); ?></a> |</li> <li><a href="<?php print esc_attr( add_query_arg( 'presort', 'pid', $base_url ) ); ?>" <?php if ( $presort == 'pid' ) { print 'class="current"';} ?> ><?php esc_html_e( 'Image ID', 'nggallery' ); ?></a> |</li> <li><a href="<?php print esc_attr( add_query_arg( 'presort', 'filename', $base_url ) ); ?>" <?php if ( $presort == 'filename' ) { print 'class="current"';} ?> ><?php esc_html_e( 'Filename', 'nggallery' ); ?></a> |</li> <li><a href="<?php print esc_attr( add_query_arg( 'presort', 'alttext', $base_url ) ); ?>" <?php if ( $presort == 'alttext' ) { print 'class="current"';} ?> ><?php esc_html_e( 'Alt/Title text', 'nggallery' ); ?></a> |</li> <li><a href="<?php print esc_attr( add_query_arg( 'presort', 'imagedate', $base_url ) ); ?>" <?php if ( $presort == 'imagedate' ) { print 'class="current"';} ?> ><?php esc_html_e( 'Date/Time', 'nggallery' ); ?></a> |</li> <li><a href="<?php print esc_attr( add_query_arg( 'dir', 'ASC', $base_url ) ); ?>" <?php if ( $dir == 'ASC' ) { print 'class="current"';} ?> ><?php esc_html_e( 'Ascending', 'nggallery' ); ?></a> |</li> <li><a href="<?php print esc_attr( add_query_arg( 'dir', 'DESC', $base_url ) ); ?>" <?php if ( $dir == 'DESC' ) { print 'class="current"';} ?> ><?php esc_html_e( 'Descending', 'nggallery' ); ?></a></li> </ul> </form> <div id="debug" style="clear:both"></div> <div id='ngg-sort-gallery-container' class='jqui-sortable'> <?php if ( $picturelist ) { foreach ( $picturelist as $picture ) { ?> <div class="imageBox" id="pid-<?php print esc_attr( $picture->pid ); ?>"> <div class="imageBox_theImage" style="background-image:url('<?php print \Imagely\NGG\Util\Router::esc_url( $picture->thumbURL ); ?>')"> </div> <div class="imageBox_label"> <span><?php print esc_html( stripslashes( $picture->alttext ) ); ?></span> </div> </div> <?php } } ?> </div> </div> <!-- /ngg_page_content_main --> <?php do_action( 'ngg_sort_images_marketing_block' ); ?> </div> <?php }