array(
'name' => __( 'WooFramework Internal Container' ),
),
'public' => true,
'show_ui' => false,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => false,
'supports' => array( 'title', 'editor' ),
'query_var' => false,
'can_export' => true,
'show_in_nav_menus' => false
) );
} // End woothemes_mlu_init()
} // End IF Statement
/*-----------------------------------------------------------------------------------*/
/* woothemes_mlu_css */
/*
/* Add the Thickbox CSS file and specific loading and button images to the header
/* on the pages where this function is called.
/*-----------------------------------------------------------------------------------*/
if ( ! function_exists( 'woothemes_mlu_css' ) ) {
function woothemes_mlu_css () {
$_html = '';
$_html .= '' . "\n";
$_html .= '' . "\n";
echo $_html;
} // End woothemes_mlu_css()
} // End IF Statement
/*-----------------------------------------------------------------------------------*/
/* woothemes_mlu_js */
/*
/* Register and enqueue (load) the necessary JavaScript file for working with the
/* Media Library-driven AJAX File Uploader Module.
/*-----------------------------------------------------------------------------------*/
if ( ! function_exists( 'woothemes_mlu_js' ) ) {
function woothemes_mlu_js () {
// Register custom scripts for the Media Library AJAX uploader.
wp_register_script( 'woo-medialibrary-uploader', get_template_directory_uri() . '/functions/js/woo-medialibrary-uploader.js', array( 'jquery', 'thickbox' ) );
wp_enqueue_script( 'woo-medialibrary-uploader' );
wp_enqueue_script( 'media-upload' );
} // End woothemes_mlu_js()
} // End IF Statement
/*-----------------------------------------------------------------------------------*/
/* woothemes_medialibrary_uploader */
/*
/* WooThemes 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 $_mode - The display mode of the field.
/* - string $_desc - An optional description of the field.
/* - int $_postid - An optional post id (used in the meta boxes).
/*
/* Dependencies:
/* - woothemes_mlu_get_silentpost()
/*-----------------------------------------------------------------------------------*/
if ( ! function_exists( 'woothemes_medialibrary_uploader' ) ) {
function woothemes_medialibrary_uploader ( $_id, $_value, $_mode = 'full', $_desc = '', $_postid = 0 ) {
$output = '';
$id = '';
$class = '';
$int = '';
$value = '';
$id = strip_tags( strtolower( $_id ) );
// If a post id is present, use it. Otherwise, search for one based on the $_id.
if ( $_postid != 0 ) {
$int = $_postid;
} else {
$int = woothemes_mlu_get_silentpost( $id ); // Change for each field, using a "silent" post. If no post is present, one will be created.
} // End IF Statement
// If we're on a post add/edit screen, call the post meta value.
if ( $_mode == 'postmeta' ) {
$value = get_post_meta( $_postid, $id, true );
} else {
$value = get_option( $id );
} // End IF Statement
// 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;
} // End IF Statement
if ( $value ) { $class = ' has-file'; } // End IF Statement
// $output .= '' . "\n";
$output .= '' . "\n";
$output .= '' . "\n";
if ( $_desc != '' ) {
$output .= '' . $_desc . '' . "\n";
} // End IF Statement
// $output .= '' . __( 'Upload' ) . '';
$output .= '
' . "\n";
if ( $value != '' ) {
$remove = 'Remove';
$image = preg_match( '/(^.*\.jpg|jpeg|png|gif|ico*)/i', $value );
if ( $image ) {
$output .= ''.$remove.'';
} else {
$parts = explode( "/", $value );
for( $i = 0; $i < sizeof( $parts ); ++$i ) {
$title = $parts[$i];
} // End FOR Loop
// No output preview if it's not an image.
$output .= '';
// Standard generic output if it's not an image.
$title = __( 'View File', 'woothemes' );
$output .= '
';
} // End IF Statement
} // End IF Statement
$output .= '
' . "\n";
return $output;
} // End woothemes_medialibrary_uploader()
} // End IF Statement
/*-----------------------------------------------------------------------------------*/
/* woothemes_mlu_get_silentpost */
/*
/* Use "silent" posts in the database to store relationships for images.
/* This also creates the facility to collect galleries of, for example, logo images.
/*
/* Return: $_postid.
/*
/* If no "silent" post is present, one will be created with the type "wooframework"
/* and the post_name of "woo-wf-$_token".
/*
/* Example Usage:
/* woothemes_mlu_get_silentpost ( 'woo_logo' );
/*-----------------------------------------------------------------------------------*/
if ( ! function_exists( 'woothemes_mlu_get_silentpost' ) ) {
function woothemes_mlu_get_silentpost ( $_token ) {
global $wpdb;
$_id = 0;
// Check if the token is valid against a whitelist.
// $_whitelist = array( 'woo_logo', 'woo_custom_favicon', 'woo_body_img', 'woo_ad_top_image' );
// Sanitise the token.
$_token = strtolower( str_replace( ' ', '_', $_token ) );
// if ( in_array( $_token, $_whitelist ) ) {
if ( $_token ) {
// Tell the function what to look for in a post.
$_args = array( 'post_type' => 'wooframework', 'post_name' => 'woo-wf-' . $_token, 'post_status' => 'draft', 'comment_status' => 'closed', 'ping_status' => 'closed' );
// Look in the database for a "silent" post that meets our criteria.
$query = 'SELECT ID FROM ' . $wpdb->posts . ' WHERE post_parent = 0';
foreach ( $_args as $k => $v ) {
$query .= ' AND ' . $k . ' = "' . $v . '"';
} // End FOREACH Loop
$query .= ' LIMIT 1';
$_posts = $wpdb->get_row( $query );
// If we've got a post, loop through and get it's ID.
if ( count( $_posts ) ) {
$_id = $_posts->ID;
} else {
// If no post is present, insert one.
// Prepare some additional data to go with the post insertion.
$_words = explode( '_', $_token );
$_title = join( ' ', $_words );
$_title = ucwords( $_title );
$_post_data = array( 'post_title' => $_title );
$_post_data = array_merge( $_post_data, $_args );
$_id = wp_insert_post( $_post_data );
} // End IF Statement
} // End IF Statement
// echo 'POST - ' . $_token . ' ' . $_id;
return $_id;
} // End woothemes_mlu_get_silentpost()
} // End IF Statement
/*-----------------------------------------------------------------------------------*/
/* woothemes_mlu_insidepopup */
/*
/* Trigger code inside the Media Library popup.
/*-----------------------------------------------------------------------------------*/
if ( ! function_exists( 'woothemes_mlu_insidepopup' ) ) {
function woothemes_mlu_insidepopup () {
if ( isset( $_REQUEST['is_woothemes'] ) && $_REQUEST['is_woothemes'] == 'yes' ) {
add_action( 'admin_head', 'woothemes_mlu_js_popup' );
add_filter( 'media_upload_tabs', 'woothemes_mlu_modify_tabs' );
} // End IF Statement
} // End woothemes_mlu_insidepopup()
} // End IF Statement
if ( ! function_exists( 'woothemes_mlu_js_popup' ) ) {
function woothemes_mlu_js_popup () {
$_woo_title = $_REQUEST['woo_title'];
if ( ! $_woo_title ) { $_woo_title = 'file'; } // End IF Statement
?>