[ Index ] |
PHP Cross Reference of BuddyPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Backward compatibility for the $bp->bp_options_nav global. 4 * 5 * @since 2.6.0 6 */ 7 8 // Exit if accessed directly. 9 defined( 'ABSPATH' ) || exit; 10 11 /** 12 * bp_options_nav backward compatibility class. 13 * 14 * This class is used to provide backward compatibility for extensions that access and modify 15 * the $bp->bp_options_nav global. 16 * 17 * @since 2.6.0 18 */ 19 class BP_Core_BP_Options_Nav_BackCompat extends BP_Core_BP_Nav_BackCompat { 20 /** 21 * Parent slug of the current nav item. 22 * 23 * @since 2.6.0 24 * @access protected 25 * @var string 26 */ 27 protected $parent_slug = ''; 28 29 /** 30 * Get a value of the nav array at the specified offset. 31 * 32 * @since 2.6.0 33 * 34 * @param mixed $offset Array offset. 35 * @return BP_Core_BP_Nav_BackCompat 36 */ 37 public function offsetGet( $offset ) { 38 _doing_it_wrong( 39 'bp_nav', 40 __( 'These globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ), 41 '2.6.0' 42 ); 43 44 if ( empty( $this->backcompat_nav[ $offset ] ) ) { 45 $nav = $this->get_nav( $offset ); 46 if ( $nav ) { 47 $subnavs = $this->get_component_nav( $offset )->get_secondary( array( 'parent_slug' => $offset ) ); 48 $subnav_keyed = array(); 49 if ( $subnavs ) { 50 foreach ( $subnavs as $subnav ) { 51 $subnav_keyed[ $subnav->slug ] = (array) $subnav; 52 } 53 } 54 55 $subnav_object = new self( $subnav_keyed ); 56 $subnav_object->set_component( $this->get_component() ); 57 $subnav_object->set_parent_slug( $offset ); 58 59 $this->backcompat_nav[ $offset ] = $subnav_object; 60 } 61 } 62 63 if ( isset( $this->backcompat_nav[ $offset ] ) ) { 64 return $this->backcompat_nav[ $offset ]; 65 } 66 67 return false; 68 } 69 70 /** 71 * Unset a nav array value at the specified offset. 72 * 73 * @since 2.6.0 74 * 75 * @param mixed $offset Array offset. 76 */ 77 public function offsetUnset( $offset ) { 78 _doing_it_wrong( 79 'bp_nav', 80 __( 'These globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ), 81 '2.6.0' 82 ); 83 84 $this->get_component_nav( $offset )->delete_nav( $offset, $this->get_parent_slug() ); 85 86 // Clear the cached nav. 87 unset( $this->backcompat_nav[ $offset ] ); 88 } 89 90 /** 91 * Get the parent slug of the current nav item. 92 * 93 * @since 2.6.0 94 * 95 * @return string 96 */ 97 public function get_parent_slug() { 98 return $this->parent_slug; 99 } 100 101 /** 102 * Set the parent slug of the current nav item. 103 * 104 * @since 2.6.0 105 */ 106 public function set_parent_slug( $slug ) { 107 $this->parent_slug = $slug; 108 } 109 110 /** 111 * Get the nav object corresponding to the specified offset. 112 * 113 * @since 2.6.0 114 * 115 * @param mixed $offset Array offset. 116 * @return bool|array 117 */ 118 public function get_nav( $offset ) { 119 $nav = parent::get_nav( $offset ); 120 121 if ( ! $nav ) { 122 $component_nav = $this->get_component_nav( $offset ); 123 $secondary_nav = $component_nav->get_secondary( array( 'slug' => $offset ), false ); 124 125 $nav = array(); 126 127 if ( empty( $primary_nav ) ) { 128 return $nav; 129 } 130 131 foreach ( $primary_nav as $item ) { 132 $nav[ $item->slug ] = (array) $item; 133 } 134 } 135 136 return $nav; 137 } 138 }
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 |