'300', 'width' => '400', 'alt' => '

'.__('The Flash plugin is required to view this object.', 'swfobj').'

', 'allowfullscreen' => 'false', 'required_player_version' => '8.0.0', 'express_install_swf' => WP_PLUGIN_URL.'/swfobj/expressInstall.swf' ); $saved_options = get_option($this->admin_options_saved); if (!empty($saved_options)) { foreach($saved_options as $key => $val) { $admin_options[$key] = $val; } } update_option($this->admin_options_saved, $admin_options); return $admin_options; } function init() { $this->get_options(); ?>

'."\n"; } // Add Javascript to end of page to register all swf objects. function swfobj_footer() { global $registered_objects; // register any swf files on the page if (count($registered_objects) > 0) { echo ' '."\n"; } } // [swfobj] shortcode handler function swfobj_func($atts, $content='') { global $registered_objects; $defaults = $this->get_options(); extract(shortcode_atts(array( 'src' => '', 'width' => $defaults['width'], 'height' => $defaults['height'], 'alt' => $defaults['alt'], 'id' => 'swfobj_'.count($registered_objects), 'name' => false, 'class' => false, 'align' => false, 'required_player_version' => $defaults['required_player_version'], 'express_install_swf' => $defaults['express_install_swf'], 'quality' => false, 'bgcolor' => false, 'getvars' => false, 'scale' => false, 'salign' => false, 'wmode' => false, 'base' => false, 'allownetworking' => false, 'allowscriptaccess' => false, // The following parameters are true/false only // TODO: Check if they are set to true or false, if not, ignore them? 'allowfullscreen' => $defaults['allowfullscreen'], 'flashvars' => false, 'loop' => false, 'menu' => false, 'play' => false, 'swliveconnect' => false, 'seamlesstabbing' => false, 'devicefont' => false ), $atts)); $extraparams = array( 'align' => false, 'allowfullscreen' => 'false', 'bgcolor' => false, 'getvars' => false, 'quality' => false, 'flashvars' => false, 'name' => false, 'scale' => false, 'salign' => false, 'loop' => false, 'menu' => false, 'play' => false, 'wmode' => false, 'base' => false, 'swliveconnect' => false, 'seamlesstabbing' => false, 'allownetworking' => false, 'allowscriptaccess' => false, 'devicefont' => false ); $params = ''; $attributes = ''; // loop through all params and get value foreach( $extraparams as $param => $default ){ if( ${$param} !== false && ${$param} != $default ){ $params .= "\n ".''; $attributes .= ' '.$param.'="'.${$param}.'"'; } } // Add this object to the array so it will be registered in the header $registered_objects[] = array('id' => $id, 'required_player_version' => $required_player_version, 'express_install_swf' => $express_install_swf); $swfobj = ' '.$params.' '.$alt.' '; return $swfobj; } function swfobj_options_page() { $options = $this->get_options(); if ($_POST['options_update']) { // Update current options to the values submitted foreach ($options as $option => $value) { if (isset($_POST[$option])) { $options[$option] = $_POST[$option]; } } update_option($this->admin_options_saved, $options); ?>

     

'.$media_swfobj_title.''; } function media_upload_flash() { if ( isset($_POST['html-upload']) && !empty($_FILES) ) { // Upload File button was clicked $id = media_handle_upload('async-upload', $_REQUEST['post_id']); unset($_FILES); if ( is_wp_error($id) ) { $errors['upload_error'] = $id; $id = false; } } if ( !empty($_POST['insertonlybutton']) ) { $src = $_POST['insertonly']['src']; $title = stripslashes( htmlspecialchars ($_POST['insertonly']['post_title'], ENT_QUOTES)); $alt = stripslashes( htmlspecialchars ($_POST['insertonly']['post_content'], ENT_QUOTES)); if ( !empty($src) && !strpos($src, '://') ) { $src = "http://$src"; } // append any additional properties passed to the object. // I don't like that I'm doing the same thing here in two places // TODO: Need to make this so it only happens in one location. $extras = ''; if ( !empty($_POST['insertonly']['width']) && intval($_POST['insertonly']['width']) ) { $extras .= ' width="'.stripslashes( htmlspecialchars ($_POST['insertonly']['width'], ENT_QUOTES)).'"'; } if ( !empty($_POST['insertonly']['height']) && intval($_POST['insertonly']['height']) ) { $extras .= ' height="'.stripslashes( htmlspecialchars ($_POST['insertonly']['height'], ENT_QUOTES)).'"'; } if ( !empty($_POST['insertonly']['id']) ) { $extras .= ' id="'.stripslashes( htmlspecialchars ($_POST['insertonly']['id'], ENT_QUOTES)).'"'; } if ( !empty($_POST['insertonly']['name']) ) { $extras .= ' name="'.stripslashes( htmlspecialchars ($_POST['insertonly']['name'], ENT_QUOTES)).'"'; } if ( !empty($_POST['insertonly']['class']) ) { $extras .= ' class="'.stripslashes( htmlspecialchars ($_POST['insertonly']['class'], ENT_QUOTES)).'"'; } if ( isset($_POST['insertonly']['align']) ) { $extras .= ' align="'.$_POST['insertonly']['align'].'"'; } if ( isset($_POST['insertonly']['allowfullscreen']) ) { $extras .= ' allowfullscreen="'.$_POST['insertonly']['allowfullscreen'].'"'; } if ( !empty($_POST['insertonly']['required_player_version']) ) { $extras .= ' required_player_version="'.stripslashes( htmlspecialchars ($_POST['insertonly']['required_player_version'], ENT_QUOTES)).'"'; } if ( !empty($src) ) { $html = '[swfobj src="'.$src.'"'.( ($alt != '') ? ' alt="'.$alt.'"' : '' ).$extras.'] '; } return media_send_to_editor($html); } if ( !empty($_POST) ) { $return = media_upload_form_handler(); if ( is_string($return) ) return $return; if ( is_array($return) ) $errors = $return; } if ( isset($_POST['save']) ) { $errors['upload_notice'] = __('Saved.'); } if ( isset($_GET['tab']) && $_GET['tab'] == 'type_url' ) { return wp_iframe( 'media_upload_type_url_form', 'flash', $errors, $id ); } return wp_iframe( 'media_upload_type_form', 'flash', $errors, $id ); } function modify_post_mime_types($post_mime_types) { $post_mime_types['application/x-shockwave-flash'] = array(__('Flash', 'swfobj'), __('Manage Flash', 'swfobj'), __ngettext_noop('Flash (%s)', 'Flash (%s)', 'swfobj')); return $post_mime_types; } function flash_media_send_to_editor($html) { if ( isset($_POST['send']) ) { $keys = array_keys($_POST['send']); $send_id = (int) array_shift($keys); $flashobj = $_POST['attachments'][$send_id]; // only process Flash objects here if ( isset($flashobj['media_type']) && $flashobj['media_type'] == 'application/x-shockwave-flash' ) { $src = $flashobj['src']; $title = stripslashes( htmlspecialchars ($flashobj['post_title'], ENT_QUOTES)); $alt = stripslashes( htmlspecialchars ($flashobj['post_content'], ENT_QUOTES)); // append any additional properties passed to the object. $extras = ''; if ( !empty($flashobj['width']) && intval($flashobj['width']) ) { $extras .= ' width="'.stripslashes( htmlspecialchars ($flashobj['width'], ENT_QUOTES)).'"'; } if ( !empty($flashobj['height']) && intval($flashobj['height']) ) { $extras .= ' height="'.stripslashes( htmlspecialchars ($flashobj['height'], ENT_QUOTES)).'"'; } if ( !empty($flashobj['id']) ) { $extras .= ' id="'.stripslashes( htmlspecialchars ($flashobj['id'], ENT_QUOTES)).'"'; } if ( !empty($flashobj['name']) ) { $extras .= ' name="'.stripslashes( htmlspecialchars ($flashobj['name'], ENT_QUOTES)).'"'; } if ( !empty($flashobj['class']) ) { $extras .= ' class="'.stripslashes( htmlspecialchars ($flashobj['class'], ENT_QUOTES)).'"'; } if ( isset($flashobj['align']) ) { $extras .= ' align="'.$flashobj['align'].'"'; } if ( isset($flashobj['allowfullscreen']) ) { $extras .= ' allowfullscreen="'.$flashobj['allowfullscreen'].'"'; } if ( !empty($flashobj['required_player_version']) ) { $extras .= ' required_player_version="'.stripslashes( htmlspecialchars ($flashobj['required_player_version'], ENT_QUOTES)).'"'; } $html = '[swfobj src="'.$src.'"'.( ($alt != '') ? ' alt="'.$alt.'"' : '' ).$extras.'] '; } } return $html; } function flash_attachment_fields_to_edit($form_fields, $post) { if ( substr($post->post_mime_type, -5) == 'flash' ) { $form_fields['post_title']['required'] = true; unset( $form_fields['post_excerpt'] ); unset( $form_fields['url'] ); $form_fields['post_content']['label'] = __('Alternate html'); $form_fields['post_content']['helps'][] = __('Displayed when Flash is unavailable, e.g. "<p>Cool Flash game.</p>"'); $form_fields['size'] = array( 'label' => __('Size').' '.__('width/height').'', 'input' => 'html', 'html' => ' ' ); // Advanced options // sneaking in a hidden media_type input so only flash items are processed // by this plugin when they are inserted in the post. $form_fields['advanced_open'] = array( 'label' => __('Advanced Options'), 'input' => 'html', 'html' => '
'.__('Advanced Options').'
' ); $form_fields['align'] = array( 'label' => __('Alignment'), 'input' => 'html', 'html' => " \n", ); $form_fields['id'] = array( 'label' => __('ID') ); $form_fields['name'] = array( 'label' => __('Name') ); $form_fields['class'] = array( 'label' => __('Class') ); $form_fields['required_player_version']['label'] = __('Required Player'); $form_fields['required_player_version']['helps'][] = __('Minimum Flash player required to play this object.'); $form_fields['allowfullscreen'] = array ( 'label' => __('Allow Fullscreen Mode'), 'input' => 'html', 'html' => ' ' ); $form_fields['advanced_close'] = array( 'label' => __('Advanced Options'), 'input' => 'html', 'html' => '' ); } return $form_fields; } function swfobj_upload_header () { ?> * ' . __('Link text, e.g. "Lucy on YouTube"') . ' '; } // Function changed in WP 2.7 function type_url_form_flash() { //return type_form_flash(); return '
*

Displayed when Flash is unavailable, e.g. "<p>Cool Flash game.</p>"

Advanced Options

Minimum Flash player required to play this object.

'; } // Initialize the admin panel if (!function_exists("swfobj_ap")) { function swfobj_ap() { global $swfobj; if (!isset($swfobj)) { return; } if (function_exists('add_options_page')) { add_options_page(__('SwfObj Default Settings', 'swfobj'), 'SwfObj', 8, basename(__FILE__), array(&$swfobj, 'swfobj_options_page')); } } } // Actions and Filters if (isset($swfobj)) { // Actions add_action('wp_head', array(&$swfobj, 'swfobj_header'), 100); add_action('wp_footer', array(&$swfobj, 'swfobj_footer'), 100); add_action('admin_menu', 'swfobj_ap', 100); add_action('activate_swfobj/swfobj.php', array(&$swfobj, 'init')); add_action('media_buttons', array(&$swfobj, 'addMediaButton'), 20); add_action('media_upload_flash', array(&$swfobj, 'media_upload_flash')); add_action("admin_head_media_upload_type_form", array(&$swfobj, 'swfobj_upload_header'), 50); add_action("admin_head", array(&$swfobj, 'swfobj_upload_header'), 50); // Filters add_filter('post_mime_types', array(&$swfobj, 'modify_post_mime_types')); add_filter('async_upload_flash', 'get_media_item', 10, 2); add_filter('media_send_to_editor', array(&$swfobj, 'flash_media_send_to_editor')); add_filter('attachment_fields_to_edit', array(&$swfobj, 'flash_attachment_fields_to_edit'), 10, 2); // Shortcodes // check if shortcodes exist just so this plugin doesn't kill WordPress on versions < 2.5 if ( function_exists('add_shortcode') ) { add_shortcode('swfobj', array(&$swfobj, 'swfobj_func')); } } ?>