diff --git a/wp-content/wpalchemy/MediaAccess.php b/wp-content/wpalchemy/MediaAccess.php index 7eca1ea..47d0e44 100644 --- a/wp-content/wpalchemy/MediaAccess.php +++ b/wp-content/wpalchemy/MediaAccess.php @@ -43,6 +43,17 @@ class WPAlchemy_MediaAccess */ public $insert_button_label = null; + /** + * User defined label for the "Add Media" button, this + * can be set once or per field and button pair. + * + * @since 0.1 + * @access public + * @var string optional + * @see setInsertButtonLabel() + */ + public $button_label = null; + /** * Used to track the current groupname for pairing a field and button. * @@ -83,6 +94,7 @@ public function __construct(array $a = array()) define('WPALCHEMY_SEND_TO_EDITOR_ENABLED', true); } + } /** @@ -114,6 +126,13 @@ public function setInsertButtonLabel($label = 'Insert') return $this; } + public function setButtonLabel($button = 'Add Media') + { + $this->button_label = $button; + + return $this; + } + public function setTab($name) { $this->tab = $name; @@ -151,7 +170,7 @@ public function setGroupName($name) public function getField(array $attr) { $groupname = isset($attr['groupname']) ? $attr['groupname'] : $this->groupname ; - + $attr_default = array ( 'type' => 'text', @@ -200,8 +219,15 @@ public function getButtonLink($tab = null) $tab = ! empty($tab) ? $tab : $this->tab ; $tab = ! empty($tab) ? $tab : 'library' ; - - return 'media-upload.php?post_id=' . $post_ID . '&tab=' . $tab . '&TB_iframe=1'; + + $update_href = esc_url( add_query_arg( array( + 'post_id' => $post_ID, + 'tab' => $tab, + 'TB_iframe' => 1, + '_wpnonce' => wp_create_nonce('shiba_gallery_options'), + ), admin_url('upload.php') ) ); + + return $update_href; } /** @@ -218,8 +244,8 @@ public function getButtonLink($tab = null) public function getButtonClass($groupname = null) { $groupname = isset($groupname) ? $groupname : $this->groupname ; - - return $this->button_class_name . '-' . $groupname . ' thickbox'; + + return $this->button_class_name . '-' . $groupname . ' '; } /** @@ -254,17 +280,16 @@ public function getButton(array $attr = array()) $groupname = isset($attr['groupname']) ? $attr['groupname'] : $this->groupname ; $tab = isset($attr['tab']) ? $attr['tab'] : $this->tab ; - + $attr_default = array ( - 'label' => 'Add Media', - 'href' => $this->getButtonLink($tab), + 'label' => $this->button_label, 'class' => $this->getButtonClass($groupname) . ' button', ); if (isset($this->insert_button_label)) { - $attr_default['class'] .= " {label:'" . $this->insert_button_label . "'}"; + $attr_default['data-update'] = $this->insert_button_label; } ### @@ -289,9 +314,12 @@ public function getButton(array $attr = array()) array_push($elem_attr, $n . '="' . $v . '"'); } - ### + $link = $this->getButtonLink(); + - return '' . $label . ''; + ### + //return ''; + return ''.$label.''; } /** @@ -304,111 +332,89 @@ public function getButton(array $attr = array()) */ public function init() { + global $post_ID; $uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : NULL ; $file = basename(parse_url($uri, PHP_URL_PATH)); - if ($uri AND in_array($file, array('post.php', 'post-new.php'))) { - // include javascript for special functionality - ?> +_loop_data = new stdClass; - + $this->meta = array(); $this->types = array('post', 'page'); @@ -467,7 +467,7 @@ function WPAlchemy_MetaBox($arr) if (empty($this->template)) die('Meta box template file required'); // check for nonarray values - + $exc_inc = array ( 'exclude_template', @@ -497,13 +497,13 @@ function WPAlchemy_MetaBox($arr) // convert depreciated variables if ($this->lock_on_top) $this->lock = WPALCHEMY_LOCK_TOP; elseif ($this->lock_on_bottom) $this->lock = WPALCHEMY_LOCK_BOTTOM; - + add_action('admin_init', array($this,'_init')); // uses the default wordpress-importer plugin hook add_action('import_post_meta', array($this, '_import'), 10, 3); } - else + else { die('Associative array parameters required'); } @@ -524,7 +524,7 @@ function _import($post_id, $key, $value) // using $wp_import to get access to the raw postmeta data prior to it getting passed // through "maybe_unserialize()" in "plugins/wordpress-importer/wordpress-importer.php" // the "import_post_meta" action is called after "maybe_unserialize()" - + global $wp_import; foreach ( $wp_import->posts as $post ) @@ -538,7 +538,7 @@ function _import($post_id, $key, $value) // try to fix corrupted serialized data, specifically "\r\n" being converted to "\n" during wordpress XML export (WXR) // "maybe_unserialize()" fixes a wordpress bug which double serializes already serialized data during export/import $value = maybe_unserialize( preg_replace( '!s:(\d+):"(.*?)";!es', "'s:'.strlen('$2').':\"$2\";'", stripslashes( $meta['value'] ) ) ); - + update_post_meta( $post_id, $key, $value ); } } @@ -558,7 +558,7 @@ function _init() { // must be creating or editing a post or page if ( ! WPAlchemy_MetaBox::_is_post() AND ! WPAlchemy_MetaBox::_is_page()) return; - + if ( ! empty($this->output_filter)) { $this->add_filter('output', $this->output_filter); @@ -566,7 +566,7 @@ function _init() if ($this->can_output()) { - foreach ($this->types as $type) + foreach ($this->types as $type) { add_meta_box($this->id . '_metabox', $this->title, array($this, '_setup'), $type, $this->context, $this->priority); } @@ -626,7 +626,7 @@ function _init() /** * Used to insert STYLE or SCRIPT tags into the head, called on WordPress * admin_head action. - * + * * @since 1.3 * @access private * @see _foot() @@ -786,7 +786,7 @@ function _foot() ob_end_clean(); } - + // filter: foot if ($this->has_filter('foot')) { @@ -812,7 +812,7 @@ function _foot() function _setup() { $this->in_template = TRUE; - + // also make current post data available global $post; @@ -824,7 +824,7 @@ function _setup() // use include because users may want to use one templete for multiple meta boxes include $this->template; - + // create a nonce for verification echo ''; @@ -834,7 +834,7 @@ function _setup() /** * Used to properly prefix the filter tag, the tag is unique to the meta * box instance - * + * * @since 1.3 * @access private * @param string $tag name of the filter @@ -948,7 +948,7 @@ function has_action($tag, $function_to_check = FALSE) /** * Uses WordPress remove_action() function, see WordPress remove_action() - * + * * @since 1.3 * @access public * @link http://core.trac.wordpress.org/browser/trunk/wp-includes/plugin.php#L513 @@ -981,7 +981,7 @@ function do_action($tag, $arg = '') * @return bool * @see _is_page() */ - function _is_post() + private static function _is_post() { if ('post' == WPAlchemy_MetaBox::_is_post_or_page()) { @@ -1000,7 +1000,7 @@ function _is_post() * @return bool * @see _is_post() */ - function _is_page() + private static function _is_page() { if ('page' == WPAlchemy_MetaBox::_is_post_or_page()) { @@ -1019,7 +1019,7 @@ function _is_page() * @return string "post" or "page" * @see _is_post(), _is_page() */ - function _is_post_or_page() + private static function _is_post_or_page() { $post_type = WPAlchemy_MetaBox::_get_current_post_type(); @@ -1046,7 +1046,7 @@ function _is_post_or_page() * @since 1.4.6 * @return string [custom_post_type], page or post */ - function _get_current_post_type() + static function _get_current_post_type() { $uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : NULL ; @@ -1086,7 +1086,7 @@ function _get_current_post_type() * @since 1.4.8 * @return int post ID */ - function _get_post_id() + static function _get_post_id() { global $post; @@ -1102,7 +1102,7 @@ function _get_post_id() { return (integer) $post_id; } - + return null; } @@ -1118,10 +1118,10 @@ function can_output() $template_file = get_post_meta($post_id,'_wp_page_template',TRUE); } - if + if ( - !empty($this->exclude_category) OR - !empty($this->exclude_category_id) OR + !empty($this->exclude_category) OR + !empty($this->exclude_category_id) OR !empty($this->include_category) OR !empty($this->include_category_id) ) @@ -1129,10 +1129,10 @@ function can_output() $categories = wp_get_post_categories($post_id,'fields=all'); } - if + if ( - !empty($this->exclude_tag) OR - !empty($this->exclude_tag_id) OR + !empty($this->exclude_tag) OR + !empty($this->exclude_tag_id) OR !empty($this->include_tag) OR !empty($this->include_tag_id) ) @@ -1145,25 +1145,25 @@ function can_output() $can_output = TRUE; // include all - if + if ( - !empty($this->exclude_template) OR - !empty($this->exclude_category_id) OR - !empty($this->exclude_category) OR + !empty($this->exclude_template) OR + !empty($this->exclude_category_id) OR + !empty($this->exclude_category) OR !empty($this->exclude_tag_id) OR !empty($this->exclude_tag) OR !empty($this->exclude_post_id) OR - !empty($this->include_template) OR - !empty($this->include_category_id) OR - !empty($this->include_category) OR - !empty($this->include_tag_id) OR - !empty($this->include_tag) OR + !empty($this->include_template) OR + !empty($this->include_category_id) OR + !empty($this->include_category) OR + !empty($this->include_tag_id) OR + !empty($this->include_tag) OR !empty($this->include_post_id) ) { if (!empty($this->exclude_template)) { - if (in_array($template_file,$this->exclude_template)) + if (in_array($template_file,$this->exclude_template)) { $can_output = FALSE; } @@ -1173,7 +1173,7 @@ function can_output() { foreach ($categories as $cat) { - if (in_array($cat->term_id,$this->exclude_category_id)) + if (in_array($cat->term_id,$this->exclude_category_id)) { $can_output = FALSE; break; @@ -1185,11 +1185,11 @@ function can_output() { foreach ($categories as $cat) { - if + if ( in_array($cat->slug,$this->exclude_category) OR in_array($cat->name,$this->exclude_category) - ) + ) { $can_output = FALSE; break; @@ -1201,7 +1201,7 @@ function can_output() { foreach ($tags as $tag) { - if (in_array($tag->term_id,$this->exclude_tag_id)) + if (in_array($tag->term_id,$this->exclude_tag_id)) { $can_output = FALSE; break; @@ -1213,11 +1213,11 @@ function can_output() { foreach ($tags as $tag) { - if + if ( - in_array($tag->slug,$this->exclude_tag) OR + in_array($tag->slug,$this->exclude_tag) OR in_array($tag->name,$this->exclude_tag) - ) + ) { $can_output = FALSE; break; @@ -1227,7 +1227,7 @@ function can_output() if (!empty($this->exclude_post_id)) { - if (in_array($post_id,$this->exclude_post_id)) + if (in_array($post_id,$this->exclude_post_id)) { $can_output = FALSE; } @@ -1235,13 +1235,13 @@ function can_output() // excludes are not set use "include only" mode - if + if ( - empty($this->exclude_template) AND - empty($this->exclude_category_id) AND - empty($this->exclude_category) AND - empty($this->exclude_tag_id) AND - empty($this->exclude_tag) AND + empty($this->exclude_template) AND + empty($this->exclude_category_id) AND + empty($this->exclude_category) AND + empty($this->exclude_tag_id) AND + empty($this->exclude_tag) AND empty($this->exclude_post_id) ) { @@ -1250,7 +1250,7 @@ function can_output() if (!empty($this->include_template)) { - if (in_array($template_file,$this->include_template)) + if (in_array($template_file,$this->include_template)) { $can_output = TRUE; } @@ -1260,7 +1260,7 @@ function can_output() { foreach ($categories as $cat) { - if (in_array($cat->term_id,$this->include_category_id)) + if (in_array($cat->term_id,$this->include_category_id)) { $can_output = TRUE; break; @@ -1272,7 +1272,7 @@ function can_output() { foreach ($categories as $cat) { - if + if ( in_array($cat->slug,$this->include_category) OR in_array($cat->name,$this->include_category) @@ -1288,7 +1288,7 @@ function can_output() { foreach ($tags as $tag) { - if (in_array($tag->term_id,$this->include_tag_id)) + if (in_array($tag->term_id,$this->include_tag_id)) { $can_output = TRUE; break; @@ -1300,11 +1300,11 @@ function can_output() { foreach ($tags as $tag) { - if + if ( in_array($tag->slug,$this->include_tag) OR in_array($tag->name,$this->include_tag) - ) + ) { $can_output = TRUE; break; @@ -1314,7 +1314,7 @@ function can_output() if (!empty($this->include_post_id)) { - if (in_array($post_id,$this->include_post_id)) + if (in_array($post_id,$this->include_post_id)) { $can_output = TRUE; } @@ -1346,7 +1346,7 @@ function can_output() * @access private * @see _global_foot() */ - function _global_head() + static function _global_head() { // must be creating or editing a post or page if ( ! WPAlchemy_MetaBox::_is_post() AND ! WPAlchemy_MetaBox::_is_page()) return; @@ -1361,7 +1361,7 @@ function _global_head() jQuery(function($) { $(document).click(function(e) - { + { var elem = $(e.target); if (elem.attr('class') && elem.filter('[class*=dodelete]').length) @@ -1385,9 +1385,9 @@ function _global_head() { elem.parents('.wpa_group').remove(); } - + var the_group = elem.parents('.wpa_group'); - + if(the_group && the_group.attr('class')) { the_name = the_group.attr('class').match(/wpa_group-([a-zA-Z0-9_-]*)/i); @@ -1487,7 +1487,7 @@ function checkLoopLimit(name) } } } - + /* do an initial limit check, show or hide buttons */ $('[class*=docopy-]').each(function() { @@ -1510,7 +1510,7 @@ function checkLoopLimit(name) * @access private * @see _global_head() */ - function _global_foot() + static function _global_foot() { // must be creating or editing a post or page if ( ! WPAlchemy_MetaBox::_is_post() AND ! WPAlchemy_MetaBox::_is_page()) return; @@ -1588,7 +1588,7 @@ function _meta($post_id = NULL, $internal = FALSE) if ( ! empty($fields) AND is_array($fields)) { $meta = array(); - + foreach ($fields as $field) { $field_noprefix = preg_replace('/^' . $this->prefix . '/i', '', $field); @@ -1639,7 +1639,7 @@ function the_field($n, $hint = NULL) function have_value($n = NULL) { if ($this->get_the_value($n)) return TRUE; - + return FALSE; } @@ -1763,7 +1763,7 @@ function get_the_name($n = NULL) if (!is_null($n)) $the_field = $this->id . '[' . $this->name . '][' . $this->current . '][' . $n . ']' ; - else $the_field = $this->id . '[' . $this->name . '][' . $this->current . ']' ; + else $the_field = $this->id . '[' . $this->name . '][' . $this->current . ']' ; } else { @@ -2004,7 +2004,7 @@ function get_the_group_open($t = 'div') $loop_open = NULL; $loop_open_classes = array('wpa_loop', 'wpa_loop-' . $this->name); - + $css_class = array('wpa_group', 'wpa_group-'. $this->name); if ($this->is_first()) @@ -2050,12 +2050,12 @@ function the_group_close() function get_the_group_close() { $loop_close = NULL; - + if ($this->is_last()) { $loop_close = ''; } - + return 'group_tag . '>' . $loop_close; } @@ -2069,7 +2069,7 @@ function have_fields_and_multi($n, $options = NULL) { // use as stdClass object $options = (object)$options; - + $length = @$options->length; $this->_loop_data->limit = @$options->limit; @@ -2120,13 +2120,13 @@ function _loop($n,$length=NULL,$and_one=0) { $this->in_loop = TRUE; } - + $this->name = $n; $cnt = count(!empty($this->meta[$n])?$this->meta[$n]:NULL); $length = is_null($length) ? $cnt : $length ; - + if ($this->in_loop == 'multi' AND $cnt > $length) $length = $cnt; $this->length = $length; @@ -2171,11 +2171,11 @@ function _loop($n,$length=NULL,$and_one=0) * @since 1.0 * @access private */ - function _save($post_id) + function _save($post_id) { /** - * note: the "save_post" action fires for saving revisions and post/pages, - * when saving a post this function fires twice, once for a revision save, + * note: the "save_post" action fires for saving revisions and post/pages, + * when saving a post this function fires twice, once for a revision save, * and again for the post/page save ... the $post_id is different for the * revision save, this means that "get_post_meta()" will not work if trying * to get values for a revision (as it has no post meta data) @@ -2187,28 +2187,28 @@ function _save($post_id) */ $real_post_id = isset($_POST['post_ID']) ? $_POST['post_ID'] : NULL ; - + // check autosave if (defined('DOING_AUTOSAVE') AND DOING_AUTOSAVE AND !$this->autosave) return $post_id; - + // make sure data came from our meta box, verify nonce $nonce = isset($_POST[$this->id.'_nonce']) ? $_POST[$this->id.'_nonce'] : NULL ; if (!wp_verify_nonce($nonce, $this->id)) return $post_id; - + // check user permissions - if ($_POST['post_type'] == 'page') + if ($_POST['post_type'] == 'page') { if (!current_user_can('edit_page', $post_id)) return $post_id; } - else + else { if (!current_user_can('edit_post', $post_id)) return $post_id; } - + // authentication passed, save data - + $new_data = isset( $_POST[$this->id] ) ? $_POST[$this->id] : NULL ; - + WPAlchemy_MetaBox::clean($new_data); if (empty($new_data)) @@ -2242,7 +2242,7 @@ function _save($post_id) foreach ($new_data as $k => $v) { $field = $this->prefix . $k; - + array_push($new_fields,$field); $new_value = $new_data[$k]; @@ -2318,31 +2318,31 @@ function _save($post_id) * @access public * @param array the array to clean (passed by reference) */ - function clean(&$arr) + static function clean(&$arr) { if (is_array($arr)) { foreach ($arr as $i => $v) { - if (is_array($arr[$i])) + if (is_array($arr[$i])) { WPAlchemy_MetaBox::clean($arr[$i]); - - if (!count($arr[$i])) + + if (!count($arr[$i])) { unset($arr[$i]); } } - else + else { - if ('' == trim($arr[$i]) OR is_null($arr[$i])) + if ('' == trim($arr[$i]) OR is_null($arr[$i])) { unset($arr[$i]); } } } - if (!count($arr)) + if (!count($arr)) { $arr = array(); } @@ -2354,7 +2354,7 @@ function clean(&$arr) foreach ($keys as $key) { - if (!is_numeric($key)) + if (!is_numeric($key)) { $is_numeric = FALSE; break;