[buddypress-trac] [BuddyPress Trac] #8507: Implement __isset magic method in BP_Theme_Compat class
buddypress-trac
noreply at wordpress.org
Fri Jul 9 04:59:55 UTC 2021
#8507: Implement __isset magic method in BP_Theme_Compat class
-------------------------+-----------------------------
Reporter: sbrajesh | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Core | Version:
Severity: normal | Keywords: has-patch
-------------------------+-----------------------------
Hi,
The BP Theme_Compat(extended by the Nouveau/legacy) allows adding
arbitrary dynamic property. It is implemented via magic methods.
While the class implements the setter and getter, it does not implement
the __isset magic method.
That makes any code like following malfunction.
{{{
bp_nouveau()->test_var ="Hello";
if( ! empty( bp_nouveau()->test_var ) ){
echo "Works";
} else {
echo "Does not work";
}
}}}
It will print "Does not work".
This leads to a bug in the BP_Nouveau template function
{{{
bp_nouveau_has_nav()
}}}
If you are calling it for a custom component(we implemented a custom
component for one of our plugins), the expectation is that the following
code will run
{{{
} elseif ( ! empty( $bp_nouveau->object_nav ) ) {
$bp_nouveau->displayed_nav = $bp_nouveau->object_nav;
/**
* Use the filter to use your specific Navigation.
* Use the $n param to check for your custom object.
*
* @since 3.0.0
*
* @param array $nav The list of item navigations
generated by the BP_Core_Nav API.
* @param array $n The arguments of the Navigation loop.
*/
$nav = apply_filters( 'bp_nouveau_get_nav', $nav, $n );
}
}}}
(line 844-858 in bp-nouveau/includes/template-tags.php)
But it will never run.
The code
{{{
! empty( $bp_nouveau->object_nav )
}}}
will always return false even when the object_nav property is set.
I am attaching a patch. Will it be feasible to have it fixed in the next
release?
Thank you
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/8507>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
More information about the buddypress-trac
mailing list