function ultimate_widget_order_callback(){ check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' ); if ( !current_user_can('edit_theme_options') ) die('-1'); unset( $_POST['savewidgets'], $_POST['action'] ); $sidebars =ultimatum_get_sidebars_widgets(); if ( is_array($_POST['sidebars']) ) { foreach ( $_POST['sidebars'] as $key => $val ) { $sb = array(); if ( !empty($val) ) { $val = explode(',', $val); foreach ( $val as $k => $v ) { if ( strpos($v, 'widget-') === false ) continue; $sb[$k] = substr($v, strpos($v, '_') + 1); } } $sidebars[$key] = $sb; } ultimatum_set_sidebars_widgets($sidebars); die('1'); } die('-1'); }
/** * Meta widget used to display the control form for a widget. * * Called from dynamic_sidebar(). * * @since 2.5.0 * * @param array $sidebar_args * @return array */ function wp_widget_control( $sidebar_args ) { global $wp_registered_widgets, $wp_registered_widget_controls; $sidebars_widgets = ultimatum_get_sidebars_widgets(); $widget_id = $sidebar_args['widget_id']; $sidebar_id = isset($sidebar_args['id']) ? $sidebar_args['id'] : false; $key = $sidebar_id ? array_search( $widget_id, $sidebars_widgets[$sidebar_id] ) : '-1'; // position of widget in sidebar $control = isset($wp_registered_widget_controls[$widget_id]) ? $wp_registered_widget_controls[$widget_id] : array(); $widget = $wp_registered_widgets[$widget_id]; $id_format = $widget['id']; $widget_number = isset($control['params'][0]['number']) ? $control['params'][0]['number'] : ''; $id_base = isset($control['id_base']) ? $control['id_base'] : $widget_id; $multi_number = isset($sidebar_args['_multi_num']) ? $sidebar_args['_multi_num'] : ''; $add_new = isset($sidebar_args['_add']) ? $sidebar_args['_add'] : ''; $query_arg = array( 'editwidget' => $widget['id'] ); if ( $add_new ) { $query_arg['addnew'] = 1; if ( $multi_number ) { $query_arg['num'] = $multi_number; $query_arg['base'] = $id_base; } } else { $query_arg['sidebar'] = $sidebar_id; $query_arg['key'] = $key; } // We aren't showing a widget control, we're outputing a template for a mult-widget control if ( isset($sidebar_args['_display']) && 'template' == $sidebar_args['_display'] && $widget_number ) { // number == -1 implies a template where id numbers are replaced by a generic '__i__' $control['params'][0]['number'] = -1; // with id_base widget id's are constructed like {$id_base}-{$id_number} if ( isset($control['id_base']) ) $id_format = $control['id_base'] . '-__i__'; } $wp_registered_widgets[$widget_id]['callback'] = $wp_registered_widgets[$widget_id]['_callback']; unset($wp_registered_widgets[$widget_id]['_callback']); $widget_title = esc_html( strip_tags( $sidebar_args['widget_name'] ) ); $has_form = 'noform'; echo $sidebar_args['before_widget']; ?> <div class="widget-top"> <div class="widget-title-action"> <a class="widget-action hide-if-no-js" href="#available-widgets"></a> <a class="widget-control-edit hide-if-js" href="<?php echo esc_url( add_query_arg( $query_arg ) ); ?>"><span class="edit"><?php _e('Edit', 'ultimatum'); ?></span><span class="add"><?php _e('Add', 'ultimatum'); ?></span></a> </div> <div class="widget-title"><h4><?php echo $widget_title ?><span class="in-widget-title"></span></h4></div> </div> <div class="widget-inside"> <form action="" method="post"> <div class="widget-content"> <?php if ( isset($control['callback']) ) $has_form = call_user_func_array( $control['callback'], $control['params'] ); else echo "\t\t<p>" . __('There are no options for this widget.', 'ultimatum') . "</p>\n"; ?> </div> <input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr($id_format); ?>" /> <input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr($id_base); ?>" /> <input type="hidden" name="widget-width" class="widget-width" value="<?php if (isset( $control['width'] )) echo esc_attr($control['width']); ?>" /> <input type="hidden" name="widget-height" class="widget-height" value="<?php if (isset( $control['height'] )) echo esc_attr($control['height']); ?>" /> <input type="hidden" name="widget_number" class="widget_number" value="<?php echo esc_attr($widget_number); ?>" /> <input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr($multi_number); ?>" /> <input type="hidden" name="add_new" class="add_new" value="<?php echo esc_attr($add_new); ?>" /> <div class="widget-control-actions"> <div class="alignleft"> <a class="widget-control-remove" href="#remove"><?php _e('Delete', 'ultimatum'); ?></a> | <a class="widget-control-close" href="#close"><?php _e('Close', 'ultimatum'); ?></a> </div> <div class="alignright<?php if ( 'noform' === $has_form ) echo ' widget-control-noform'; ?>"> <?php submit_button( __( 'Save','ultimatum' ), 'button-primary widget-control-save right', 'savewidget', false, array( 'id' => 'widget-' . esc_attr( $id_format ) . '-savewidget' ) ); ?> <span class="spinner"></span> </div> <br class="clear" /> </div> </form> </div> <div class="widget-description"> <?php echo ( $widget_description = wp_widget_description($widget_id) ) ? "$widget_description\n" : "$widget_title\n"; ?> </div> <?php echo $sidebar_args['after_widget']; return $sidebar_args; }
/** * * This file is a core Ultimatum file and should not be edited. * * @category Ultimatum * @package Templates * @author Wonder Foundry http://www.wonderfoundry.com * @license http://www.opensource.org/licenses/gpl-license.php GPL v2.0 (or later) * @link http://ultimatumtheme.com * @version 2.38 */ function ultimate_dynamic_sidebar($responsive=false,$index = 1,$grid=null) { global $wp_registered_sidebars, $wp_registered_widgets; if ( is_int($index) ) { $index = "sidebar-$index"; echo $index; } else { $index = sanitize_title($index); foreach ( (array) $wp_registered_sidebars as $key => $value ) { if ( sanitize_title($value['name']) == $index ) { $index = $key; break; } } } $ultimatum_sidebars_widgets = ultimatum_get_sidebars_widgets(); $sidebar["name"] = $index; $sidebar["id"] = $index; $did_one = false; if(isset($ultimatum_sidebars_widgets[$index])): foreach ( (array) $ultimatum_sidebars_widgets[$index] as $id ) { if ( !isset($wp_registered_widgets[$id]) ) continue; $params = array_merge( array( array_merge( $sidebar, array('widget_id' => $id, 'widget_name' => $wp_registered_widgets[$id]['name']) ) ), (array) $wp_registered_widgets[$id]['params'] ); $classname_ = ''; foreach ( (array) $wp_registered_widgets[$id]['classname'] as $cn ) { if ( is_string($cn) ) $classname_ .= '_' . $cn; elseif ( is_object($cn) ) $classname_ .= '_' . get_class($cn); } $classname_ = ltrim($classname_, '_'); $col = str_replace('sidebar', 'col',$index); global $wpdb; $csstable = $wpdb->prefix.ULTIMATUM_PREFIX.'_css'; $query = "SELECT * FROM $csstable WHERE `container`='$col' AND `element`='general'"; $fecth = $wpdb->get_row($query,ARRAY_A); if($fecth){ $properties =unserialize($fecth['properties']); } $lw=0; $rw=0; if(isset($properties['padding-left'])){ $lw = str_replace('px','', $properties['padding-left']); } if(isset($properties['padding-right'])){ $rw = str_replace('px','', $properties['padding-right']); } $tag = (get_ultimatum_option('tags', 'multi_widget') ? get_ultimatum_option('tags', 'multi_widget') : 'h3'); if(is_singular()){ $tag = (get_ultimatum_option('tags', 'single_widget') ? get_ultimatum_option('tags', 'single_widget') :'h3'); } $params[0]['grid_width']=$grid-($lw+$rw); $params[0]['before_widget']='<div class="widget '.$classname_.' inner-container">'; $params[0]['after_widget']='</div>'; $params[0]['before_title']=' <'.$tag.' class="element-title">'; $params[0]['after_title'] = '</'.$tag.'>'; $params[0]['responsivetheme']=$responsive; $params = apply_filters( 'dynamic_sidebar_params', $params ); /* We will visit this again in Ultimatum 3.0 echo '<pre>'; print_r($wp_registered_widgets[$id]); echo '</pre>'; $wopt = $wp_registered_widgets[$id]['callback'][0]->option_name; $nr = $wp_registered_widgets[$id]['params'][0]['number']; $opt = get_option($wopt); echo '<pre>'; print_r($opt[$nr]); echo '</pre>'; */ $callback = $wp_registered_widgets[$id]['callback']; do_action( 'dynamic_sidebar', $wp_registered_widgets[$id] ); if ( is_callable($callback) ) { call_user_func_array($callback, $params); $did_one = true; } //3954 } endif; return $did_one; }