Namespaced classes
-
Hi mate!
There seems to be some problem with your new patch for namespaces… All my namespaced widgets are shown in the admin but when I try to save I get problem. Because it then try to instance with double \\ slashes instead of single \ slash. Then my autoloader tries to load the class again and it will crash because of the class is already defined.
My\Namespace\Widget
My\\Namespace\\WidgetHere is my fix to get it to work. Just change the first row and replace slashes with one. ??
function siteorigin_panels_the_widget( $widget, $instance, $grid, $cell, $panel, $is_first, $is_last ) { $widget = str_replace('\\\\', '\\', $widget); if ( !class_exists( $widget ) ) return; $the_widget = new $widget; $classes = array( 'panel', 'widget' ); if ( !empty( $the_widget->id_base ) ) $classes[] = 'widget_' . $the_widget->id_base; if ( $is_first ) $classes[] = 'panel-first-child'; if ( $is_last ) $classes[] = 'panel-last-child'; $the_widget->widget( array( 'before_widget' => '<div class="' . esc_attr( implode( ' ', $classes ) ) . '" id="panel-' . $grid . '-' . $cell . '-' . $panel . '">', 'after_widget' => '</div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', 'widget_id' => 'widget-' . $grid . '-' . $cell . '-' . $panel ), $instance ); }
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
- The topic ‘Namespaced classes’ is closed to new replies.