Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/themify-.../themify/megamenu
File: class-mega-menu.php
delete_post_meta( $menu_item_db_id, '_themify_mega_menu_item' );
[500] Fix | Delete
delete_post_meta( $menu_item_db_id, '_themify_mega_menu_column' );
[501] Fix | Delete
delete_post_meta( $menu_item_db_id, '_themify_dropdown_columns' );
[502] Fix | Delete
if( $_POST['menu-item-tf-mega'][ $menu_item_db_id ] != '' ) {
[503] Fix | Delete
if ( $_POST['menu-item-tf-mega'][ $menu_item_db_id ] === 'mega' ) {
[504] Fix | Delete
update_post_meta( $menu_item_db_id, '_themify_mega_menu_item', 1 );
[505] Fix | Delete
} elseif( $_POST['menu-item-tf-mega'][ $menu_item_db_id ] === 'columns' ) {
[506] Fix | Delete
update_post_meta( $menu_item_db_id, '_themify_mega_menu_column', 1 );
[507] Fix | Delete
} elseif ( $_POST['menu-item-tf-mega'][ $menu_item_db_id ] === 'drop' && isset( $_POST['menu-item-tf-dropdown_columns'][ $menu_item_db_id ] ) ) {
[508] Fix | Delete
update_post_meta( $menu_item_db_id, '_themify_dropdown_columns', $_POST['menu-item-tf-dropdown_columns'][ $menu_item_db_id ] );
[509] Fix | Delete
}
[510] Fix | Delete
}
[511] Fix | Delete
}
[512] Fix | Delete
[513] Fix | Delete
foreach ( $meta_keys as $meta_key => $param_key ) {
[514] Fix | Delete
$new_meta_value = isset( $_POST[$param_key] , $_POST[$param_key][$menu_item_db_id] ) ? $_POST[$param_key][$menu_item_db_id] : false;
[515] Fix | Delete
if ( $new_meta_value ) {
[516] Fix | Delete
update_post_meta( $menu_item_db_id, $meta_key, $new_meta_value );
[517] Fix | Delete
} else {
[518] Fix | Delete
delete_post_meta( $menu_item_db_id, $meta_key );
[519] Fix | Delete
}
[520] Fix | Delete
}
[521] Fix | Delete
}
[522] Fix | Delete
add_action( 'wp_update_nav_menu_item', 'themify_update_mega_menu_option', 10, 3 );
[523] Fix | Delete
[524] Fix | Delete
class Themify_Widgets_Menu {
[525] Fix | Delete
[526] Fix | Delete
private static $instance = null;
[527] Fix | Delete
public $meta_key = '_themify_menu_widget';
[528] Fix | Delete
[529] Fix | Delete
/**
[530] Fix | Delete
* Creates or returns an instance of this class.
[531] Fix | Delete
*
[532] Fix | Delete
* @return A single instance of this class.
[533] Fix | Delete
*/
[534] Fix | Delete
public static function get_instance() {
[535] Fix | Delete
return null == self::$instance ? self::$instance = new self : self::$instance;
[536] Fix | Delete
}
[537] Fix | Delete
[538] Fix | Delete
private function __construct() {
[539] Fix | Delete
if( is_admin() ) {
[540] Fix | Delete
require_once( ABSPATH . 'wp-admin/includes/widgets.php' );
[541] Fix | Delete
add_action( 'admin_init', array( $this, 'add_menu_meta_box' ) );
[542] Fix | Delete
add_action( 'admin_enqueue_scripts', array( $this, 'nav_menu_script' ), 12 );
[543] Fix | Delete
add_action( 'admin_footer-nav-menus.php', array( $this, 'admin_footer' ) );
[544] Fix | Delete
add_action( 'wp_nav_menu_item_custom_fields', array( $this, 'wp_nav_menu_item_custom_fields' ), 99, 4 );
[545] Fix | Delete
add_action( 'wp_update_nav_menu_item', array( $this, 'wp_update_nav_menu_item' ), 10, 3 );
[546] Fix | Delete
}
[547] Fix | Delete
}
[548] Fix | Delete
[549] Fix | Delete
function add_menu_meta_box() {
[550] Fix | Delete
add_meta_box(
[551] Fix | Delete
'themify-menu-widgets-meta',
[552] Fix | Delete
__( 'Widgets', 'themify' ),
[553] Fix | Delete
array( $this, 'widgets_menu_meta_box' ),
[554] Fix | Delete
'nav-menus',
[555] Fix | Delete
'side',
[556] Fix | Delete
'high'
[557] Fix | Delete
);
[558] Fix | Delete
}
[559] Fix | Delete
[560] Fix | Delete
function widgets_menu_meta_box() {
[561] Fix | Delete
global $wp_widget_factory;
[562] Fix | Delete
[563] Fix | Delete
?>
[564] Fix | Delete
<div id="themify-widget-section" class="posttypediv">
[565] Fix | Delete
<label for="themify-menu-widgets"><?php _e( 'Widgets', 'themify' ); ?>:</label>
[566] Fix | Delete
<select id="themify-menu-widgets" class="widefat">
[567] Fix | Delete
<?php foreach( $wp_widget_factory->widgets as $widget ) : ?>
[568] Fix | Delete
<option value="<?php echo get_class( $widget ); ?>"><?php echo $widget->name; ?> </option>
[569] Fix | Delete
<?php endforeach; ?>
[570] Fix | Delete
</select>
[571] Fix | Delete
[572] Fix | Delete
<p class="button-controls">
[573] Fix | Delete
<span class="add-to-menu">
[574] Fix | Delete
<input type="submit" class="button-secondary submit-add-to-menu right" value="<?php _e( 'Add to Menu', 'themify' ); ?>" name="add-post-type-menu-item" id="themify-widget-menu-submit">
[575] Fix | Delete
</span>
[576] Fix | Delete
</p>
[577] Fix | Delete
</div>
[578] Fix | Delete
<?php
[579] Fix | Delete
}
[580] Fix | Delete
[581] Fix | Delete
function wp_nav_menu_item_custom_fields( $item_id, $item, $depth, $args ) {
[582] Fix | Delete
if( $this->is_menu_widget( $item ) ) :
[583] Fix | Delete
global $wp_widget_factory;
[584] Fix | Delete
$class = $this->get_widget_menu_class( $item );
[585] Fix | Delete
[586] Fix | Delete
/* Check widget availability */
[587] Fix | Delete
if ( ! isset( $wp_widget_factory->widgets[ $class ] ) )
[588] Fix | Delete
return;
[589] Fix | Delete
?>
[590] Fix | Delete
<input type="hidden" class="themify-widget-menu-type" value="widget" />
[591] Fix | Delete
<div class="themify-widget-options" style="clear: both;">
[592] Fix | Delete
<div class="widget-inside">
[593] Fix | Delete
<div class="form">
[594] Fix | Delete
<div class="widget-content">
[595] Fix | Delete
<?php echo $this->get_widget_form( $class, $item_id, $item ); ?>
[596] Fix | Delete
</div>
[597] Fix | Delete
<input type="hidden" class="id_base" name="id_base" value="<?php echo esc_attr( $wp_widget_factory->widgets[$class]->id_base ) ?>" />
[598] Fix | Delete
<input type="hidden" class="widget-id" name="widget-id" value="<?php echo time() ?>" />
[599] Fix | Delete
</div>
[600] Fix | Delete
</div>
[601] Fix | Delete
</div>
[602] Fix | Delete
<?php endif;
[603] Fix | Delete
}
[604] Fix | Delete
[605] Fix | Delete
function wp_update_nav_menu_item( $menu_id, $menu_item_db_id, $args ) {
[606] Fix | Delete
if ( isset( $_POST['menu-item-widget-options'],$_POST['menu-item-widget-options'][ $menu_item_db_id ] ) ) {
[607] Fix | Delete
global $wp_widget_factory;
[608] Fix | Delete
$new_instance = $_POST['menu-item-widget-options'][ $menu_item_db_id ];
[609] Fix | Delete
/* the widget class is stored in the menu item URL field */
[610] Fix | Delete
$widget_class = ltrim( $_POST['menu-item-url'][ $menu_item_db_id ], '#' );
[611] Fix | Delete
if ( isset( $wp_widget_factory->widgets[ $widget_class ] ) ) {
[612] Fix | Delete
[613] Fix | Delete
$old_instance = get_post_meta( $menu_item_db_id, $this->meta_key, true );
[614] Fix | Delete
if ( ! is_array( $old_instance ) )
[615] Fix | Delete
$old_instance = array();
[616] Fix | Delete
$instance = $wp_widget_factory->widgets[ $widget_class ]->update( $new_instance, $old_instance );
[617] Fix | Delete
$instance = apply_filters( 'widget_update_callback', $instance, $new_instance, $old_instance, $wp_widget_factory->widgets[ $widget_class ] );
[618] Fix | Delete
$this->save_meta( $this->meta_key, $instance, $menu_item_db_id );
[619] Fix | Delete
}
[620] Fix | Delete
}
[621] Fix | Delete
}
[622] Fix | Delete
[623] Fix | Delete
function nav_menu_script() {
[624] Fix | Delete
$screen = get_current_screen();
[625] Fix | Delete
if( 'nav-menus' !== $screen->base )
[626] Fix | Delete
return;
[627] Fix | Delete
[628] Fix | Delete
themify_enque_script( 'themify-widgets-menu-admin',THEMIFY_URI . '/megamenu/js/admin.js',THEMIFY_VERSION, array( 'jquery' ));
[629] Fix | Delete
themify_enque_style( 'themify-widgets-menu-admin', THEMIFY_URI . '/megamenu/css/admin.css',null,THEMIFY_VERSION );
[630] Fix | Delete
[631] Fix | Delete
do_action( 'themify_widgets_menu_enqueue_admin_scripts' );
[632] Fix | Delete
remove_action( 'admin_enqueue_scripts', array( $this, 'nav_menu_script' ), 12 );
[633] Fix | Delete
[634] Fix | Delete
/**
[635] Fix | Delete
* Fire enqueue events for Wigets Manager in Menus screen.
[636] Fix | Delete
* Disabled if using "Google Listings and Ads" plugin, since it throws a fatal error if its script is registered multiple times.
[637] Fix | Delete
*/
[638] Fix | Delete
if ( defined( 'WC_GLA_VERSION' ) ) {
[639] Fix | Delete
return;
[640] Fix | Delete
}
[641] Fix | Delete
do_action( 'sidebar_admin_setup' );
[642] Fix | Delete
do_action( 'admin_enqueue_scripts', 'widgets.php' );
[643] Fix | Delete
do_action( 'admin_print_styles-widgets.php' );
[644] Fix | Delete
do_action( 'admin_print_scripts-widgets.php' );
[645] Fix | Delete
}
[646] Fix | Delete
[647] Fix | Delete
function admin_footer() {
[648] Fix | Delete
do_action( 'admin_footer-widgets.php' );
[649] Fix | Delete
}
[650] Fix | Delete
[651] Fix | Delete
/**
[652] Fix | Delete
* Returns an array of all registered widget classes
[653] Fix | Delete
*
[654] Fix | Delete
* @return array
[655] Fix | Delete
*/
[656] Fix | Delete
function get_widget_types() {
[657] Fix | Delete
global $wp_widget_factory;
[658] Fix | Delete
[659] Fix | Delete
return array_keys( (array) $wp_widget_factory->widgets );
[660] Fix | Delete
}
[661] Fix | Delete
[662] Fix | Delete
/**
[663] Fix | Delete
* Checks if the menu item is of "widget" type and returns the widget's base class name
[664] Fix | Delete
*
[665] Fix | Delete
* @return mixed string name of the base widget class, false otherwise
[666] Fix | Delete
*/
[667] Fix | Delete
function get_widget_menu_class( $item ) {
[668] Fix | Delete
$type = ltrim( $item->url, '#' );
[669] Fix | Delete
return in_array( $type, $this->get_widget_types(),true )?$type:false;
[670] Fix | Delete
}
[671] Fix | Delete
[672] Fix | Delete
function is_menu_widget( $item ) {
[673] Fix | Delete
return $this->get_widget_menu_class( $item )?true:false;
[674] Fix | Delete
}
[675] Fix | Delete
[676] Fix | Delete
/**
[677] Fix | Delete
* Generates the widget form required for widget menu types
[678] Fix | Delete
*
[679] Fix | Delete
* @since 1.0
[680] Fix | Delete
* @return string
[681] Fix | Delete
*/
[682] Fix | Delete
function get_widget_form( $widget, $item_id, $item ) {
[683] Fix | Delete
global $wp_widget_factory;
[684] Fix | Delete
[685] Fix | Delete
$options = $this->get_widget_options( $item_id );
[686] Fix | Delete
[687] Fix | Delete
ob_start();
[688] Fix | Delete
$wp_widget_factory->widgets[$widget]->form( $options );
[689] Fix | Delete
do_action_ref_array( 'in_widget_form', array( $wp_widget_factory->widgets[$widget], null, $options ) );
[690] Fix | Delete
$form = ob_get_clean();
[691] Fix | Delete
$base_name = 'widget-' . $wp_widget_factory->widgets[$widget]->id_base . '\[' . $wp_widget_factory->widgets[$widget]->number . '\]';
[692] Fix | Delete
return preg_replace( "/{$base_name}/", 'menu-item-widget-options['. $item_id .']', $form );
[693] Fix | Delete
}
[694] Fix | Delete
[695] Fix | Delete
/**
[696] Fix | Delete
* Returns saved options for a widget menu type
[697] Fix | Delete
*
[698] Fix | Delete
* @since 1.0
[699] Fix | Delete
* @return array
[700] Fix | Delete
*/
[701] Fix | Delete
function get_widget_options( $item_id ) {
[702] Fix | Delete
$options = get_post_meta( $item_id, $this->meta_key, true );
[703] Fix | Delete
if( ! is_array( $options ) ) {
[704] Fix | Delete
$options = array();
[705] Fix | Delete
}
[706] Fix | Delete
[707] Fix | Delete
return $options;
[708] Fix | Delete
}
[709] Fix | Delete
[710] Fix | Delete
/**
[711] Fix | Delete
* Helper method that performs proper action on a metadata based on user input
[712] Fix | Delete
*
[713] Fix | Delete
* @since 1.0
[714] Fix | Delete
*/
[715] Fix | Delete
public function save_meta( $meta_key, $new_meta_value, $post_id = null ) {
[716] Fix | Delete
global $post;
[717] Fix | Delete
[718] Fix | Delete
if( ! $post_id )
[719] Fix | Delete
$post_id = $post->ID;
[720] Fix | Delete
$meta_value = get_post_meta( $post_id, $meta_key, true );
[721] Fix | Delete
if ( $new_meta_value && '' == $meta_value )
[722] Fix | Delete
add_post_meta( $post_id, $meta_key, $new_meta_value, true );
[723] Fix | Delete
elseif ( $new_meta_value && $new_meta_value != $meta_value )
[724] Fix | Delete
update_post_meta( $post_id, $meta_key, $new_meta_value );
[725] Fix | Delete
elseif ( '' == $new_meta_value && $meta_value )
[726] Fix | Delete
delete_post_meta( $post_id, $meta_key, $meta_value );
[727] Fix | Delete
}
[728] Fix | Delete
[729] Fix | Delete
/**
[730] Fix | Delete
* Renders a widget using the provided options
[731] Fix | Delete
*
[732] Fix | Delete
* @since 1.0
[733] Fix | Delete
* @return string
[734] Fix | Delete
*/
[735] Fix | Delete
function render_widget( $widget, $instance, $args = array() ) {
[736] Fix | Delete
ob_start();
[737] Fix | Delete
the_widget( $widget, $instance, apply_filters( 'themify_widget_menu_args', $args ) );
[738] Fix | Delete
return ob_get_clean();
[739] Fix | Delete
}
[740] Fix | Delete
}
[741] Fix | Delete
Themify_Widgets_Menu::get_instance();
[742] Fix | Delete
[743] Fix | Delete
[744] Fix | Delete
/**
[745] Fix | Delete
* Allow Layout Part post type in navigation menus
[746] Fix | Delete
*
[747] Fix | Delete
* @return array
[748] Fix | Delete
* @since 3.3.5
[749] Fix | Delete
*/
[750] Fix | Delete
function themify_allow_layout_parts_in_nav_menus( $args, $name ) {
[751] Fix | Delete
if ( 'tbuilder_layout_part' === $name ) {
[752] Fix | Delete
$args['show_in_nav_menus'] = true;
[753] Fix | Delete
}
[754] Fix | Delete
[755] Fix | Delete
return $args;
[756] Fix | Delete
}
[757] Fix | Delete
// add_filter( 'register_post_type_args', 'themify_allow_layout_parts_in_nav_menus', 10, 2 );
[758] Fix | Delete
[759] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function