BP_Core_BP_Options_Nav_BackCompat
bp_options_nav backward compatibility class.
Description Description
This class is used to provide backward compatibility for extensions that access and modify the $bp->bp_options_nav global.
Source Source
File: bp-core/classes/class-bp-core-bp-options-nav-backcompat.php
class BP_Core_BP_Options_Nav_BackCompat extends BP_Core_BP_Nav_BackCompat {
/**
* Parent slug of the current nav item.
*
* @since 2.6.0
* @access protected
* @var string
*/
protected $parent_slug = '';
/**
* Get a value of the nav array at the specified offset.
*
* @since 2.6.0
*
* @param mixed $offset Array offset.
* @return BP_Core_BP_Nav_BackCompat
*/
public function offsetGet( $offset ) {
_doing_it_wrong(
'bp_nav',
__( 'These globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ),
'2.6.0'
);
if ( empty( $this->backcompat_nav[ $offset ] ) ) {
$nav = $this->get_nav( $offset );
if ( $nav ) {
$subnavs = $this->get_component_nav( $offset )->get_secondary( array( 'parent_slug' => $offset ) );
$subnav_keyed = array();
if ( $subnavs ) {
foreach ( $subnavs as $subnav ) {
$subnav_keyed[ $subnav->slug ] = (array) $subnav;
}
}
$subnav_object = new self( $subnav_keyed );
$subnav_object->set_component( $this->get_component() );
$subnav_object->set_parent_slug( $offset );
$this->backcompat_nav[ $offset ] = $subnav_object;
}
}
if ( isset( $this->backcompat_nav[ $offset ] ) ) {
return $this->backcompat_nav[ $offset ];
}
return false;
}
/**
* Unset a nav array value at the specified offset.
*
* @since 2.6.0
*
* @param mixed $offset Array offset.
*/
public function offsetUnset( $offset ) {
_doing_it_wrong(
'bp_nav',
__( 'These globals should not be used directly and are deprecated. Please use the BuddyPress nav functions instead.', 'buddypress' ),
'2.6.0'
);
$this->get_component_nav( $offset )->delete_nav( $offset, $this->get_parent_slug() );
// Clear the cached nav.
unset( $this->backcompat_nav[ $offset ] );
}
/**
* Get the parent slug of the current nav item.
*
* @since 2.6.0
*
* @return string
*/
public function get_parent_slug() {
return $this->parent_slug;
}
/**
* Set the parent slug of the current nav item.
*
* @since 2.6.0
*/
public function set_parent_slug( $slug ) {
$this->parent_slug = $slug;
}
/**
* Get the nav object corresponding to the specified offset.
*
* @since 2.6.0
*
* @param mixed $offset Array offset.
* @return bool|array
*/
public function get_nav( $offset ) {
$nav = parent::get_nav( $offset );
if ( ! $nav ) {
$component_nav = $this->get_component_nav( $offset );
$secondary_nav = $component_nav->get_secondary( array( 'slug' => $offset ), false );
$nav = array();
if ( empty( $primary_nav ) ) {
return $nav;
}
foreach ( $primary_nav as $item ) {
$nav[ $item->slug ] = (array) $item;
}
}
return $nav;
}
}
Changelog Changelog
| Version | Description |
|---|---|
| 2.6.0 | Introduced. |
Methods Methods
- get_nav — Get the nav object corresponding to the specified offset.
- get_parent_slug — Get the parent slug of the current nav item.
- offsetGet — Get a value of the nav array at the specified offset.
- offsetUnset — Unset a nav array value at the specified offset.
- set_parent_slug — Set the parent slug of the current nav item.