mirror of
				https://github.com/mashirozx/sakura.git
				synced 2025-05-29 01:49:21 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			119 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * Media Uploader Using the WordPress Media Library.
 | |
|  *
 | |
|  * Parameters:
 | |
|  * - string $_id - A token to identify this field (the name).
 | |
|  * - string $_value - The value of the field, if present.
 | |
|  * - string $_desc - An optional description of the field.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| if ( ! function_exists( 'optionsframework_uploader' ) ) :
 | |
| 
 | |
| function optionsframework_uploader( $_id, $_value, $_desc = '', $_name = '' ) {
 | |
| 
 | |
| 	$optionsframework_settings = get_option( 'optionsframework' );
 | |
| 
 | |
| 	// Gets the unique option id
 | |
| 	if ( isset( $optionsframework_settings['id'] ) ) {
 | |
| 		$option_name = $optionsframework_settings['id'];
 | |
| 	}
 | |
| 	else {
 | |
| 		$option_name = 'options_framework_theme';
 | |
| 	};
 | |
| 
 | |
| 	$output = '';
 | |
| 	$id = '';
 | |
| 	$class = '';
 | |
| 	$int = '';
 | |
| 	$value = '';
 | |
| 	$name = '';
 | |
| 
 | |
| 	$id = strip_tags( strtolower( $_id ) );
 | |
| 
 | |
| 	// If a value is passed and we don't have a stored value, use the value that's passed through.
 | |
| 	if ( $_value != '' && $value == '' ) {
 | |
| 		$value = $_value;
 | |
| 	}
 | |
| 
 | |
| 	if ( $_name != '' ) {
 | |
| 		$name = $_name;
 | |
| 	}
 | |
| 	else {
 | |
| 		$name = $option_name.'['.$id.']';
 | |
| 	}
 | |
| 
 | |
| 	if ( $value ) {
 | |
| 		$class = ' has-file';
 | |
| 	}
 | |
| 	$output .= '<input id="' . $id . '" class="upload' . $class . '" type="text" name="'.$name.'" value="' . $value . '" placeholder="' . __('Choose file', 'sakura') .'" />' . "\n";
 | |
| 	if ( function_exists( 'wp_enqueue_media' ) ) {
 | |
| 		if ( ( $value == '' ) ) {
 | |
| 			$output .= '<input id="upload-' . $id . '" class="upload-button button" type="button" value="' . __( 'Upload', 'sakura' ) . '" />' . "\n";
 | |
| 		} else {
 | |
| 			$output .= '<input id="remove-' . $id . '" class="remove-file button" type="button" value="' . __( 'Remove', 'sakura' ) . '" />' . "\n";
 | |
| 		}
 | |
| 	} else {
 | |
| 		$output .= '<p><i>' . __( 'Upgrade your version of WordPress for full media support.', 'sakura' ) . '</i></p>';
 | |
| 	}
 | |
| 
 | |
| 	if ( $_desc != '' ) {
 | |
| 		$output .= '<span class="of-metabox-desc">' . $_desc . '</span>' . "\n";
 | |
| 	}
 | |
| 
 | |
| 	$output .= '<div class="screenshot" id="' . $id . '-image">' . "\n";
 | |
| 
 | |
| 	if ( $value != '' ) {
 | |
| 		$remove = '<a class="remove-image">Remove</a>';
 | |
| 		$image = preg_match( '/(^.*\.jpg|jpeg|png|gif|ico*)/i', $value );
 | |
| 		if ( $image ) {
 | |
| 			$output .= '<img src="' . $value . '" alt="" />'.$remove.'';
 | |
| 		} else {
 | |
| 			$parts = explode( "/", $value );
 | |
| 			for( $i = 0; $i < sizeof( $parts ); ++$i ) {
 | |
| 				$title = $parts[$i];
 | |
| 			}
 | |
| 
 | |
| 			// No output preview if it's not an image.
 | |
| 			$output .= '';
 | |
| 
 | |
| 			// Standard generic output if it's not an image.
 | |
| 			$title = __( 'View File', 'sakura' );
 | |
| 			$output .= '<div class="no-image"><span class="file_link"><a href="' . $value . '" target="_blank" rel="external">'.$title.'</a></span></div>';
 | |
| 		}
 | |
| 	}
 | |
| 	$output .= '</div>' . "\n";
 | |
| 	return $output;
 | |
| }
 | |
| 
 | |
| endif;
 | |
| 
 | |
| /**
 | |
|  * Enqueue scripts for file uploader
 | |
|  */
 | |
| 
 | |
| if ( ! function_exists( 'optionsframework_media_scripts' ) ) :
 | |
| 
 | |
| add_action( 'admin_enqueue_scripts', 'optionsframework_media_scripts' );
 | |
| 
 | |
| function optionsframework_media_scripts( $hook ) {
 | |
| 
 | |
| 	$menu = optionsframework_menu_settings();
 | |
| 
 | |
| 	if ( 'appearance_page_' . $menu['menu_slug'] != $hook )
 | |
| 		return;
 | |
| 
 | |
| 	if ( function_exists( 'wp_enqueue_media' ) )
 | |
| 		wp_enqueue_media();
 | |
| 	wp_register_script( 'of-media-uploader', OPTIONS_FRAMEWORK_DIRECTORY .'js/media-uploader.js', array( 'jquery' ) );
 | |
| 	wp_enqueue_script( 'of-media-uploader' );
 | |
| 	wp_localize_script( 'of-media-uploader', 'optionsframework_l10n', array(
 | |
| 		'upload' => __( 'Upload', 'sakura' ),
 | |
| 		'remove' => __( 'Remove', 'sakura' )
 | |
| 	) );
 | |
| }
 | |
| 
 | |
| endif;
 |