[ Index ] |
PHP Cross Reference of BuddyPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * BP Sidebar Item Nav_Widget class. 4 * 5 * @since 3.0.0 6 * @version 10.0.0 7 */ 8 9 // Exit if accessed directly. 10 defined( 'ABSPATH' ) || exit; 11 12 /** 13 * BP Sidebar Item Nav_Widget. 14 * 15 * Adds a widget to move avatar/item nav into the sidebar. 16 * 17 * @since 3.0.0 18 */ 19 class BP_Nouveau_Object_Nav_Widget extends WP_Widget { 20 /** 21 * Constructor 22 * 23 * @since 3.0.0 24 * @since 9.0.0 Adds the `show_instance_in_rest` property to Widget options. 25 */ 26 public function __construct() { 27 $widget_ops = array( 28 'description' => __( 'Displays BuddyPress primary nav in the sidebar of your site. Make sure to use it as the first widget of the sidebar and only once.', 'buddypress' ), 29 'classname' => 'widget_nav_menu buddypress_object_nav', 30 'show_instance_in_rest' => true, 31 ); 32 33 parent::__construct( 34 'bp_nouveau_sidebar_object_nav_widget', 35 __( '(BuddyPress) Primary navigation', 'buddypress' ), 36 $widget_ops 37 ); 38 } 39 40 /** 41 * Register the widget 42 * 43 * @since 3.0.0 44 */ 45 public static function register_widget() { 46 register_widget( 'BP_Nouveau_Object_Nav_Widget' ); 47 } 48 49 /** 50 * Displays the output, the button to post new support topics 51 * 52 * @since 3.0.0 53 * 54 * @param mixed $args Arguments 55 * @param unknown $instance 56 */ 57 public function widget( $args, $instance ) { 58 if ( ! is_buddypress() || bp_is_group_create() ) { 59 return; 60 } 61 62 /** 63 * Filters the nav widget args for the BP_Nouveau_Object_Nav_Widget widget. 64 * 65 * @since 3.0.0 66 * 67 * @param array $value Array of arguments { 68 * @param bool $bp_nouveau_widget_title Whether or not to assign a title for the widget. 69 * } 70 */ 71 $item_nav_args = bp_parse_args( 72 $instance, 73 apply_filters( 74 'bp_nouveau_object_nav_widget_args', 75 array( 'bp_nouveau_widget_title' => true ) 76 ), 77 'widget_object_nav' 78 ); 79 80 $title = ''; 81 82 if ( ! empty( $item_nav_args['bp_nouveau_widget_title'] ) ) { 83 if ( bp_is_group() ) { 84 $title = bp_get_current_group_name(); 85 } elseif ( bp_is_user() ) { 86 $title = bp_get_displayed_user_fullname(); 87 } elseif ( bp_get_directory_title( bp_current_component() ) ) { 88 $title = bp_get_directory_title( bp_current_component() ); 89 } 90 } 91 92 /** 93 * Filters the BP_Nouveau_Object_Nav_Widget widget title. 94 * 95 * @since 3.0.0 96 * 97 * @param string $title The widget title. 98 * @param array $instance The settings for the particular instance of the widget. 99 * @param string $id_base Root ID for all widgets of this type. 100 */ 101 $title = apply_filters( 'widget_title', $title, $instance, $this->id_base ); 102 103 echo $args['before_widget']; 104 105 if ( ! empty( $title ) ) { 106 echo $args['before_title'] . $title . $args['after_title']; 107 } 108 109 if ( bp_is_user() ) { 110 bp_get_template_part( 'members/single/parts/item-nav' ); 111 } elseif ( bp_is_group() ) { 112 bp_get_template_part( 'groups/single/parts/item-nav' ); 113 } elseif ( bp_is_directory() ) { 114 bp_get_template_part( 'common/nav/directory-nav' ); 115 } 116 117 echo $args['after_widget']; 118 } 119 120 /** 121 * Update the new support topic widget options (title) 122 * 123 * @since 3.0.0 124 * 125 * @param array $new_instance The new instance options 126 * @param array $old_instance The old instance options 127 * 128 * @return array the instance 129 */ 130 public function update( $new_instance, $old_instance ) { 131 $instance = $old_instance; 132 $instance['bp_nouveau_widget_title'] = (bool) $new_instance['bp_nouveau_widget_title']; 133 134 return $instance; 135 } 136 137 /** 138 * Output the new support topic widget options form 139 * 140 * @since 3.0.0 141 * 142 * @param $instance Instance 143 * 144 * @return string HTML Output 145 */ 146 public function form( $instance ) { 147 $defaults = array( 148 'bp_nouveau_widget_title' => true, 149 ); 150 151 $instance = bp_parse_args( 152 (array) $instance, 153 $defaults, 154 'widget_object_nav_form' 155 ); 156 157 $bp_nouveau_widget_title = (bool) $instance['bp_nouveau_widget_title']; 158 ?> 159 160 <p> 161 <input class="checkbox" type="checkbox" <?php checked( $bp_nouveau_widget_title, true ); ?> id="<?php echo $this->get_field_id( 'bp_nouveau_widget_title' ); ?>" name="<?php echo $this->get_field_name( 'bp_nouveau_widget_title' ); ?>" /> 162 <label for="<?php echo $this->get_field_id( 'bp_nouveau_widget_title' ); ?>"><?php esc_html_e( 'Include navigation title', 'buddypress' ); ?></label> 163 </p> 164 165 <?php 166 } 167 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Nov 21 01:00:57 2024 | Cross-referenced by PHPXref 0.7.1 |