本文整理汇总了PHP中bp_is_single_item函数的典型用法代码示例。如果您正苦于以下问题:PHP bp_is_single_item函数的具体用法?PHP bp_is_single_item怎么用?PHP bp_is_single_item使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bp_is_single_item函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: is_group
/**
* Are we looking at something that needs group theme compatibility?
*
* @since 1.7.0
*/
public function is_group()
{
// Bail if not looking at a group.
if (!bp_is_groups_component()) {
return;
}
// Group Directory.
if (!bp_current_action() && !bp_current_item()) {
bp_update_is_directory(true, 'groups');
/**
* Fires at the start of the group theme compatibility setup.
*
* @since 1.1.0
*/
do_action('groups_directory_groups_setup');
add_filter('bp_get_buddypress_template', array($this, 'directory_template_hierarchy'));
add_action('bp_template_include_reset_dummy_post_data', array($this, 'directory_dummy_post'));
add_filter('bp_replace_the_content', array($this, 'directory_content'));
// Creating a group.
} elseif (bp_is_groups_component() && bp_is_current_action('create')) {
add_filter('bp_get_buddypress_template', array($this, 'create_template_hierarchy'));
add_action('bp_template_include_reset_dummy_post_data', array($this, 'create_dummy_post'));
add_filter('bp_replace_the_content', array($this, 'create_content'));
// Group page.
} elseif (bp_is_single_item()) {
add_filter('bp_get_buddypress_template', array($this, 'single_template_hierarchy'));
add_action('bp_template_include_reset_dummy_post_data', array($this, 'single_dummy_post'));
add_filter('bp_replace_the_content', array($this, 'single_content'));
}
}
示例2: bp_checkins_is_group_places_area
function bp_checkins_is_group_places_area()
{
if (bp_is_groups_component() && bp_is_single_item() && bp_is_current_action('checkins') && bp_action_variable(0) == 'places') {
return true;
} else {
return false;
}
}
示例3: bp_checkins_is_group_checkins_area
function bp_checkins_is_group_checkins_area()
{
if (!(int) bp_get_option('bp-checkins-activate-component') || '' == bp_get_option('bp-checkins-activate-component')) {
return false;
}
if (bp_is_groups_component() && bp_is_single_item() && bp_is_current_action('checkins')) {
return true;
} else {
return false;
}
}
示例4: cbox_fix_bbp_new_topic_button
/**
* Temporarily fix the "New Topic" button when using bbPress with BP.
*
* @todo Remove this when bbPress addresses this.
*/
function cbox_fix_bbp_new_topic_button()
{
// if groups isn't active, stop now!
if (!bp_is_active('groups')) {
return;
}
// if bbPress 2 isn't enabled, stop now!
if (!function_exists('bbpress')) {
return;
}
// remove the 'New Topic' button
// this is done because the 'bp_get_group_new_topic_button' filter doesn't
// work properly
remove_action('bp_group_header_actions', 'bp_group_new_topic_button');
// version of bp_is_group_forum() that works with bbPress 2
$is_group_forum = bp_is_single_item() && bp_is_groups_component() && bp_is_current_action('forum');
// If these conditions are met, this button should not be displayed
if (!is_user_logged_in() || !$is_group_forum || bp_is_group_forum_topic() || bp_group_is_user_banned()) {
return false;
}
// create function to output new topic button
$new_button = create_function('', "\n\t\t// do not show in sidebar\n\t\tif ( did_action( 'open_sidebar' ) )\n\t\t\treturn;\n\n\t\t// render the button\n\t\tbp_button( array(\n\t\t\t'id' => 'new_topic',\n\t\t\t'component' => 'groups',\n\t\t\t'must_be_logged_in' => true,\n\t\t\t'block_self' => true,\n\t\t\t'wrapper_class' => 'group-button',\n\t\t\t'link_href' => '#new-post', // anchor modified\n\t\t\t'link_class' => 'group-button', // removed a link_class here\n\t\t\t'link_id' => 'new-topic-button',\n\t\t\t'link_text' => __( 'New Topic', 'buddypress' ),\n\t\t\t'link_title' => __( 'New Topic', 'buddypress' ),\n\t\t) );\n\t");
// add our customized 'New Topic' button
add_action('bp_group_header_actions', $new_button);
}
示例5: widget_community_nav
//.........这里部分代码省略.........
echo site_url();
?>
/<?php
echo BP_FORUMS_SLUG;
?>
/" title="<?php
_e('Forums', 'cc');
?>
"><?php
_e('Forums', 'cc');
?>
</a>
</li>
<?php
}
?>
<?php
}
?>
<?php
if (bp_is_active('blogs') && is_multisite()) {
?>
<li<?php
if (bp_is_blogs_component()) {
?>
class="selected"<?php
}
?>
>
<a href="<?php
echo site_url();
?>
/<?php
echo BP_BLOGS_SLUG;
?>
/" title="<?php
_e('Blogs', 'cc');
?>
"><?php
_e('Blogs', 'cc');
?>
</a>
</li>
<?php
}
?>
</ul>
<?php
if (bp_is_single_item() || bp_is_user()) {
?>
<?php
if (bp_is_group()) {
?>
<div id="community-single-nav" class="widget-title" >
<ul class="item-list">
<h3 class="widgettitle"><?php
_e('@ Group', 'cc');
?>
</h3>
<?php
bp_get_options_nav();
?>
<?php
do_action('bp_group_options_nav');
?>
</ul>
</div>
<?php
}
?>
<?php
if (bp_is_user()) {
?>
<div id="community-single-nav" class="widget-title" >
<ul class="item-list">
<h3 class="widgettitle"><?php
_e('@ Member', 'cc');
?>
</h3>
<?php
bp_get_displayed_user_nav();
?>
<?php
do_action('bp_group_options_nav');
?>
</ul>
</div>
<?php
}
?>
<?php
}
?>
</div>
<?php
}
示例6: bp_get_template_part
<div id="item-header" role="complementary">
<?php
bp_get_template_part('members/single/member-header');
?>
</div>
<!-- #item-header -->
</section>
<?php
}
?>
<?php
if (sq_option('bp_full_group', 0) == 1 && bp_is_single_item() && bp_is_groups_component()) {
?>
<?php
if (bp_has_groups()) {
while (bp_groups()) {
bp_the_group();
?>
<section class="alternate-color bp-full-width-profile">
<div id="item-header" role="complementary">
<?php
bp_get_template_part('groups/single/group-header');
?>
示例7: bp_dtheme_ajax_querystring
/**
* This function looks scarier than it actually is. :)
* Each object loop (activity/members/groups/blogs/forums) contains default parameters to
* show specific information based on the page we are currently looking at.
* The following function will take into account any cookies set in the JS and allow us
* to override the parameters sent. That way we can change the results returned without reloading the page.
* By using cookies we can also make sure that user settings are retained across page loads.
*
* @return string Query string for the activity/members/groups/blogs/forums loops
* @since BuddyPress (1.2)
*/
function bp_dtheme_ajax_querystring($query_string, $object)
{
if (empty($object)) {
return '';
}
// Set up the cookies passed on this AJAX request. Store a local var to avoid conflicts
if (!empty($_POST['cookie'])) {
$_BP_COOKIE = wp_parse_args(str_replace('; ', '&', urldecode($_POST['cookie'])));
} else {
$_BP_COOKIE =& $_COOKIE;
}
$qs = array();
/**
* Check if any cookie values are set. If there are then override the default params passed to the
* template loop
*/
// Activity stream filtering on action
if (!empty($_BP_COOKIE['bp-' . $object . '-filter']) && '-1' != $_BP_COOKIE['bp-' . $object . '-filter']) {
$qs[] = 'type=' . $_BP_COOKIE['bp-' . $object . '-filter'];
$qs[] = 'action=' . $_BP_COOKIE['bp-' . $object . '-filter'];
}
if (!empty($_BP_COOKIE['bp-' . $object . '-scope'])) {
if ('personal' == $_BP_COOKIE['bp-' . $object . '-scope']) {
$user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id();
$qs[] = 'user_id=' . $user_id;
}
// Activity stream scope only on activity directory.
if ('all' != $_BP_COOKIE['bp-' . $object . '-scope'] && !bp_displayed_user_id() && !bp_is_single_item()) {
$qs[] = 'scope=' . $_BP_COOKIE['bp-' . $object . '-scope'];
}
}
// If page and search_terms have been passed via the AJAX post request, use those.
if (!empty($_POST['page']) && '-1' != $_POST['page']) {
$qs[] = 'page=' . $_POST['page'];
}
$object_search_text = bp_get_search_default_text($object);
if (!empty($_POST['search_terms']) && $object_search_text != $_POST['search_terms'] && 'false' != $_POST['search_terms'] && 'undefined' != $_POST['search_terms']) {
$qs[] = 'search_terms=' . $_POST['search_terms'];
}
// Now pass the querystring to override default values.
$query_string = empty($qs) ? '' : join('&', (array) $qs);
$object_filter = '';
if (isset($_BP_COOKIE['bp-' . $object . '-filter'])) {
$object_filter = $_BP_COOKIE['bp-' . $object . '-filter'];
}
$object_scope = '';
if (isset($_BP_COOKIE['bp-' . $object . '-scope'])) {
$object_scope = $_BP_COOKIE['bp-' . $object . '-scope'];
}
$object_page = '';
if (isset($_BP_COOKIE['bp-' . $object . '-page'])) {
$object_page = $_BP_COOKIE['bp-' . $object . '-page'];
}
$object_search_terms = '';
if (isset($_BP_COOKIE['bp-' . $object . '-search-terms'])) {
$object_search_terms = $_BP_COOKIE['bp-' . $object . '-search-terms'];
}
$object_extras = '';
if (isset($_BP_COOKIE['bp-' . $object . '-extras'])) {
$object_extras = $_BP_COOKIE['bp-' . $object . '-extras'];
}
return apply_filters('bp_dtheme_ajax_querystring', $query_string, $object, $object_filter, $object_scope, $object_page, $object_search_terms, $object_extras);
}
示例8: bp_modify_page_title
/**
* Filter the page title for BuddyPress pages.
*
* @since BuddyPress (1.5.0)
*
* @see wp_title()
* @global object $bp BuddyPress global settings.
*
* @param string $title Original page title.
* @param string $sep How to separate the various items within the page title.
* @param string $seplocation Direction to display title.
* @return string New page title.
*/
function bp_modify_page_title( $title, $sep = '', $seplocation = '' ) {
global $bp;
// If this is not a BP page, just return the title produced by WP
if ( bp_is_blog_page() ) {
return $title;
}
// If this is a 404, let WordPress handle it
if ( is_404() ) {
return $title;
}
// If this is the front page of the site, return WP's title
if ( is_front_page() || is_home() ) {
return $title;
}
$title = '';
// Displayed user
if ( bp_get_displayed_user_fullname() && ! is_404() ) {
// Get the component's ID to try and get its name
$component_id = $component_name = bp_current_component();
// Use the component nav name
if ( ! empty( $bp->bp_nav[$component_id] ) ) {
// Remove counts that are added by the nav item
$span = strpos( $bp->bp_nav[ $component_id ]['name'], '<span' );
if ( false !== $span ) {
$component_name = substr( $bp->bp_nav[ $component_id ]['name'], 0, $span - 1 );
} else {
$component_name = $bp->bp_nav[ $component_id ]['name'];
}
// Fall back on the component ID
} elseif ( ! empty( $bp->{$component_id}->id ) ) {
$component_name = ucwords( $bp->{$component_id}->id );
}
// Append action name if we're on a member component sub-page
if ( ! empty( $bp->bp_options_nav[ $component_id ] ) && ! empty( $bp->canonical_stack['action'] ) ) {
$component_subnav_name = wp_filter_object_list( $bp->bp_options_nav[ $component_id ], array( 'slug' => bp_current_action() ), 'and', 'name' );
if ( $component_subnav_name ) {
$component_subnav_name = array_shift( $component_subnav_name );
} else {
$component_subnav_name = '';
}
} else {
$component_subnav_name = '';
}
// If on the user profile's landing page, just use the fullname
if ( bp_is_current_component( $bp->default_component ) && bp_get_requested_url() === bp_displayed_user_domain() ) {
$title = bp_get_displayed_user_fullname();
// Use component name on member pages
} else {
// If we have a subnav name, add it separately for localization
if ( ! empty( $component_subnav_name ) ) {
// translators: construct the page title. 1 = user name, 2 = component name, 3 = separator, 4 = component subnav name
$title = strip_tags( sprintf( __( '%1$s %3$s %2$s %3$s %4$s', 'buddypress' ), bp_get_displayed_user_fullname(), $component_name, $sep, $component_subnav_name ) );
} else {
// translators: construct the page title. 1 = user name, 2 = component name, 3 = separator
$title = strip_tags( sprintf( __( '%1$s %3$s %2$s', 'buddypress' ), bp_get_displayed_user_fullname(), $component_name, $sep ) );
}
}
// A single group
} elseif ( bp_is_active( 'groups' ) && ! empty( $bp->groups->current_group ) && ! empty( $bp->bp_options_nav[ $bp->groups->current_group->slug ] ) ) {
$subnav = isset( $bp->bp_options_nav[ $bp->groups->current_group->slug ][ bp_current_action() ]['name'] ) ? $bp->bp_options_nav[ $bp->groups->current_group->slug ][ bp_current_action() ]['name'] : '';
// translators: 1 = group name, 2 = group nav section name, 3 = separator
$title = sprintf( __( '%1$s %3$s %2$s', 'buddypress' ), $bp->bp_options_title, $subnav, $sep );
// A single item from a component other than groups
} elseif ( bp_is_single_item() ) {
// translators: 1 = component item name, 2 = component nav section name, 3 = separator
$title = sprintf( __( '%1$s %3$s %2$s', 'buddypress' ), $bp->bp_options_title, $bp->bp_options_nav[ bp_current_item() ][ bp_current_action() ]['name'], $sep );
// An index or directory
} elseif ( bp_is_directory() ) {
$current_component = bp_current_component();
//.........这里部分代码省略.........
示例9: setup_title
/**
* Set up the title for pages and <title>.
*/
public function setup_title()
{
if (bp_is_groups_component()) {
$bp = buddypress();
if (bp_is_my_profile() && !bp_is_single_item()) {
$bp->bp_options_title = _x('Memberships', 'My Groups page <title>', 'buddypress');
} elseif (!bp_is_my_profile() && !bp_is_single_item()) {
$bp->bp_options_avatar = bp_core_fetch_avatar(array('item_id' => bp_displayed_user_id(), 'type' => 'thumb', 'alt' => sprintf(__('Profile picture of %s', 'buddypress'), bp_get_displayed_user_fullname())));
$bp->bp_options_title = bp_get_displayed_user_fullname();
// We are viewing a single group, so set up the
// group navigation menu using the $this->current_group global.
} elseif (bp_is_single_item()) {
$bp->bp_options_title = $this->current_group->name;
$bp->bp_options_avatar = bp_core_fetch_avatar(array('item_id' => $this->current_group->id, 'object' => 'group', 'type' => 'thumb', 'avatar_dir' => 'group-avatars', 'alt' => __('Group Profile Photo', 'buddypress')));
if (empty($bp->bp_options_avatar)) {
$bp->bp_options_avatar = '<img src="' . esc_url(bp_core_avatar_default_thumb()) . '" alt="' . esc_attr__('No Group Profile Photo', 'buddypress') . '" class="avatar" />';
}
}
}
parent::setup_title();
}
示例10: groups_add_forum_where_sql
/**
* Add WHERE clauses to bbPress query for group-specific data and access protection.
*
* @param string $sql
* @return string
*/
function groups_add_forum_where_sql($sql = '')
{
global $bp;
// Define locale variable
$parts = array();
// Set this for groups
$parts['groups'] = "(gm.meta_key = 'forum_id' AND gm.meta_value = t.forum_id)";
// Restrict to public...
$parts['private'] = "g.status = 'public'";
/**
* ...but do some checks to possibly remove public restriction.
*
* Decide if private are visible
*/
// Are we in our own profile?
if (bp_is_my_profile()) {
unset($parts['private']);
} elseif (bp_current_user_can('bp_moderate')) {
unset($parts['private']);
} elseif (bp_is_single_item()) {
unset($parts['private']);
}
// Check the SQL filter that was passed
if (!empty($sql)) {
$parts['passed'] = $sql;
}
// Assemble Voltron
$parts_string = implode(' AND ', $parts);
// Set it to the global filter
$bp->groups->filter_sql = $parts_string;
// Return the global filter
return $bp->groups->filter_sql;
}
示例11: bp_modify_page_title
/**
* Filter the page title for BuddyPress pages.
*
* @since 1.5.0
*
* @see wp_title()
* @global object $bp BuddyPress global settings.
*
* @param string $title Original page title.
* @param string $sep How to separate the various items within the page title.
* @param string $seplocation Direction to display title.
* @return string New page title.
*/
function bp_modify_page_title($title = '', $sep = '»', $seplocation = 'right')
{
global $bp, $paged, $page, $_wp_theme_features;
// If this is not a BP page, just return the title produced by WP.
if (bp_is_blog_page()) {
return $title;
}
// If this is a 404, let WordPress handle it.
if (is_404()) {
return $title;
}
// If this is the front page of the site, return WP's title.
if (is_front_page() || is_home()) {
return $title;
}
// Return WP's title if not a BuddyPress page.
if (!is_buddypress()) {
return $title;
}
// Setup an empty title parts array.
$title_parts = array();
// Is there a displayed user, and do they have a name?
$displayed_user_name = bp_get_displayed_user_fullname();
// Displayed user.
if (!empty($displayed_user_name) && !is_404()) {
// Get the component's ID to try and get its name.
$component_id = $component_name = bp_current_component();
// Set empty subnav name.
$component_subnav_name = '';
// Use the component nav name.
if (!empty($bp->bp_nav[$component_id])) {
$component_name = _bp_strip_spans_from_title($bp->bp_nav[$component_id]['name']);
// Fall back on the component ID.
} elseif (!empty($bp->{$component_id}->id)) {
$component_name = ucwords($bp->{$component_id}->id);
}
// Append action name if we're on a member component sub-page.
if (!empty($bp->bp_options_nav[$component_id]) && !empty($bp->canonical_stack['action'])) {
$component_subnav_name = wp_filter_object_list($bp->bp_options_nav[$component_id], array('slug' => bp_current_action()), 'and', 'name');
if (!empty($component_subnav_name)) {
$component_subnav_name = array_shift($component_subnav_name);
}
}
// If on the user profile's landing page, just use the fullname.
if (bp_is_current_component($bp->default_component) && bp_get_requested_url() === bp_displayed_user_domain()) {
$title_parts[] = $displayed_user_name;
// Use component name on member pages.
} else {
$title_parts = array_merge($title_parts, array_map('strip_tags', array($displayed_user_name, $component_name)));
// If we have a subnav name, add it separately for localization.
if (!empty($component_subnav_name)) {
$title_parts[] = strip_tags($component_subnav_name);
}
}
// A single group.
} elseif (bp_is_active('groups') && !empty($bp->groups->current_group) && !empty($bp->bp_options_nav[$bp->groups->current_group->slug])) {
$subnav = isset($bp->bp_options_nav[$bp->groups->current_group->slug][bp_current_action()]['name']) ? $bp->bp_options_nav[$bp->groups->current_group->slug][bp_current_action()]['name'] : '';
$title_parts = array($bp->bp_options_title, $subnav);
// A single item from a component other than groups.
} elseif (bp_is_single_item()) {
$title_parts = array($bp->bp_options_title, $bp->bp_options_nav[bp_current_item()][bp_current_action()]['name']);
// An index or directory.
} elseif (bp_is_directory()) {
$current_component = bp_current_component();
// No current component (when does this happen?).
$title_parts = array(_x('Directory', 'component directory title', 'buddypress'));
if (!empty($current_component)) {
$title_parts = array(bp_get_directory_title($current_component));
}
// Sign up page.
} elseif (bp_is_register_page()) {
$title_parts = array(__('Create an Account', 'buddypress'));
// Activation page.
} elseif (bp_is_activation_page()) {
$title_parts = array(__('Activate Your Account', 'buddypress'));
// Group creation page.
} elseif (bp_is_group_create()) {
$title_parts = array(__('Create a Group', 'buddypress'));
// Blog creation page.
} elseif (bp_is_create_blog()) {
$title_parts = array(__('Create a Site', 'buddypress'));
}
// Strip spans.
$title_parts = array_map('_bp_strip_spans_from_title', $title_parts);
// Sep on right, so reverse the order.
if ('right' == $seplocation) {
$title_parts = array_reverse($title_parts);
//.........这里部分代码省略.........
示例12: bp_activity_user_can_delete
/**
* Determine if the current user can delete an activity item.
*
* @since BuddyPress (1.2.0)
*
* @global object $activities_template {@link BP_Activity_Template}
* @uses apply_filters() To call the 'bp_activity_user_can_delete' hook
*
* @param object $activity Optional. Falls back on the current item in the loop.
* @return bool True if can delete, false otherwise.
*/
function bp_activity_user_can_delete($activity = false)
{
global $activities_template;
// Try to use current activity if none was passed
if (empty($activity) && !empty($activities_template->activity)) {
$activity = $activities_template->activity;
}
// If current_comment is set, we'll use that in place of the main activity
if (isset($activity->current_comment)) {
$activity = $activity->current_comment;
}
// Assume the user cannot delete the activity item
$can_delete = false;
// Only logged in users can delete activity
if (is_user_logged_in()) {
// Community moderators can always delete activity (at least for now)
if (bp_current_user_can('bp_moderate')) {
$can_delete = true;
}
// Users are allowed to delete their own activity. This is actually
// quite powerful, because doing so also deletes all comments to that
// activity item. We should revisit this eventually.
if (isset($activity->user_id) && (int) $activity->user_id === bp_loggedin_user_id()) {
$can_delete = true;
}
// Viewing a single item, and this user is an admin of that item
if (bp_is_single_item() && bp_is_item_admin()) {
$can_delete = true;
}
}
/**
* Filters whether the current user can delete an activity item.
*
* @since BuddyPress (1.5.0)
*
* @param bool $can_delete Whether the user can delete the item.
* @param object $activity Current activity item object.
*/
return (bool) apply_filters('bp_activity_user_can_delete', $can_delete, $activity);
}
示例13: setup_nav
/**
* Set up your component's navigation.
*
* The navigation elements created here are responsible for the main site navigation (eg
* Profile > Activity > Mentions), as well as the navigation in the BuddyBar. WP Admin Bar
* navigation is broken out into a separate method; see
* BP_course_Component::setup_admin_bar().
*
* @global obj $bp
*/
function setup_nav($main_nav = array(), $sub_nav = array())
{
$show_for_displayed_user = apply_filters('wplms_user_profile_courses', false);
$main_nav = array('name' => sprintf(__('Courses <span>%s</span>', 'vibe'), bp_course_get_total_course_count_for_user()), 'slug' => BP_COURSE_SLUG, 'position' => 5, 'screen_function' => 'bp_course_my_courses', 'show_for_displayed_user' => $show_for_displayed_user, 'default_subnav_slug' => BP_COURSE_SLUG);
// Add 'course' to the main navigation
if (function_exists('vibe_get_option')) {
$course_view = vibe_get_option('course_view');
if (isset($course_view) && $course_view) {
$main_nav['show_for_displayed_user'] = $show_for_displayed_user;
//Change for admin
}
}
$course_link = trailingslashit(bp_loggedin_user_domain() . BP_COURSE_SLUG);
// Determine user to use
if (bp_displayed_user_domain()) {
$user_domain = bp_displayed_user_domain();
} elseif (bp_loggedin_user_domain()) {
$user_domain = bp_loggedin_user_domain();
} else {
$user_domain = false;
}
if (!empty($user_domain)) {
$user_access = bp_is_my_profile();
$user_access = apply_filters('wplms_user_profile_courses', $user_access);
$sub_nav[] = array('name' => __('My Courses', 'vibe'), 'slug' => BP_COURSE_SLUG, 'parent_url' => $course_link, 'parent_slug' => BP_COURSE_SLUG, 'screen_function' => 'bp_course_my_courses', 'user_has_access' => $user_access, 'position' => 10);
bp_core_new_subnav_item(array('name' => __('Results', 'vibe'), 'slug' => BP_COURSE_RESULTS_SLUG, 'parent_slug' => BP_COURSE_SLUG, 'parent_url' => $course_link, 'screen_function' => 'bp_course_my_results', 'position' => 30, 'user_has_access' => $user_access));
bp_core_new_subnav_item(array('name' => __('Stats', 'vibe'), 'slug' => BP_COURSE_STATS_SLUG, 'parent_slug' => BP_COURSE_SLUG, 'parent_url' => $course_link, 'screen_function' => 'bp_course_stats', 'position' => 40, 'user_has_access' => $user_access));
$sub_nav[] = array('name' => __('Instructing Courses', 'vibe'), 'slug' => BP_COURSE_INSTRUCTOR_SLUG, 'parent_url' => $course_link, 'parent_slug' => BP_COURSE_SLUG, 'screen_function' => 'bp_course_instructor_courses', 'user_has_access' => bp_is_my_profile_intructor(), 'position' => 50);
parent::setup_nav($main_nav, $sub_nav);
}
// If your component needs additional navigation menus that are not handled by
// BP_Component::setup_nav(), you can register them manually here. For course,
// if your component needs a subsection under a user's Settings menu, add
// it like this. See bp_course_screen_settings_menu() for more info
/*global $bp;
$bp->is_single_item=true; // Extra comments : BuddyPress never detects a single course page
$bp->current_component=BP_COURSE_SLUG; // Extra comments : BuddyPress successfully detects Course
$bp->current_item=$bp->current_action='fikka-dynamics'; // Extra comments : Only Works if we force the current item variable. Never really works.
*/
if (bp_is_course_component() && bp_is_single_item()) {
// Reset sub nav
$sub_nav = array();
// Add 'courses' to the main navigation
$main_nav = array('name' => __('Home', 'vibe'), 'slug' => get_current_course_slug(), 'position' => -1, 'screen_function' => 'bp_screen_course_home', 'default_subnav_slug' => $this->default_extension, 'item_css_id' => $this->id);
/*
BELOW Part has to hacked to build a custom Menu system. BuddyPress never really detects MENUS properly
// Add the "Home" subnav item, as this will always be present
$sub_nav[] = array(
'name' => _e( 'CURRICULUM', 'vibe' ),
'slug' => 'structure',
'parent_url' => $course_link,
'parent_slug' => get_current_course_slug(),
'screen_function' => 'bp_screen_course_structure',
'position' => 10,
'item_css_id' => 'structure'
);
$sub_nav[] = array(
'name' => _x( 'Home', 'Course home', 'vibe' ),
'slug' => 'home',
'parent_url' => $course_link,
'parent_slug' => $this->current_group->slug,
'screen_function' => 'bp_screen_course_home',
'position' => 10,
'item_css_id' => 'home'
);
/*
// If this is a private course, and the user is not a
// member and does not have an outstanding invitation,
// show a "Request Membership" nav item.
if ( is_user_logged_in() && !user_check_course_subscribe()){
$sub_nav[] = array(
'name' => __( 'Subscribe Course', 'vibe' ),
'slug' => 'subscribe-course',
'parent_url' => bp_get_course_permalink(),
'parent_slug' => get_current_course_slug(),
'screen_function' => 'bp_screen_course_subscribe',
'position' => 30
);
}
if ( is_user_logged_in() && user_check_course_subscribe()){
$sub_nav[] = array(
'name' => __( 'Course Status', 'vibe' ),
'slug' => 'course-continue',
'parent_url' => bp_get_course_permalink(),
//.........这里部分代码省略.........
示例14: bp_activity_user_can_delete
/**
* Determine if the current user can delete an activity item.
*
* @since BuddyPress (1.2)
*
* @global object $activities_template {@link BP_Activity_Template}
* @uses apply_filters() To call the 'bp_activity_user_can_delete' hook
*
* @param object $activity Optional. Falls back on the current item in the loop.
* @return bool True if can delete, false otherwise.
*/
function bp_activity_user_can_delete($activity = false)
{
global $activities_template;
if (!$activity) {
$activity = $activities_template->activity;
}
if (isset($activity->current_comment)) {
$activity = $activity->current_comment;
}
$can_delete = false;
if (bp_current_user_can('bp_moderate')) {
$can_delete = true;
}
if (is_user_logged_in() && $activity->user_id == bp_loggedin_user_id()) {
$can_delete = true;
}
if (bp_is_item_admin() && bp_is_single_item()) {
$can_delete = true;
}
return apply_filters('bp_activity_user_can_delete', $can_delete, $activity);
}
示例15: define
*/
// Exit if accessed directly
if (!defined('ABSPATH')) {
exit;
}
// Set 'BP_SHOW_DISPLAYNAME_ON_PROFILE' constant if not already defined
if (!defined('BP_SHOW_DISPLAYNAME_ON_PROFILE')) {
define('BP_SHOW_DISPLAYNAME_ON_PROFILE', true);
}
if ((bool) BP_SHOW_DISPLAYNAME_ON_PROFILE === true) {
// only show the display name for the <h1> tag on a member profile
add_action('bp_before_member_header', create_function('', 'remove_filter( "bp_displayed_user_fullname", "ray_bp_displayed_user_fullname" );'), 99);
// add back the username filter
add_action('bp_before_member_header_meta', create_function('', 'add_filter( "bp_displayed_user_fullname", "ray_bp_displayed_user_fullname" );'), 0);
// support for BP Lists
if (function_exists('bp_is_lists_component') && bp_is_lists_component() && bp_is_single_item()) {
add_filter('bp_displayed_user_fullname', 'ray_bp_displayed_user_fullname');
}
} else {
add_filter('bp_displayed_user_fullname', 'ray_bp_displayed_user_fullname');
}
/* UTILITY *********************************************************/
/**
* Returns either the username or user nicename depending on the BuddyPress
* username compatibility mode.
*
* @since 0.6
*
* @param obj $userdata Object The userdata that includes the user_login and user_nicename.
* @mixed String on success; boolean false on failure
*/