Changeset 13000
- Timestamp:
- 07/14/2021 10:52:40 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 8 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Gruntfile.js
r12999 r13000 34 34 '!bp-templates/bp-nouveau/css/buddypress.css', 35 35 '!bp-templates/bp-nouveau/css/twenty*.css', 36 '!bp-templates/bp-nouveau/css/primary-nav.css', 36 37 '!bp-core/admin/css/hello.css', 37 38 '!bp-members/css/blocks/member.css', … … 120 121 ext: '.css', 121 122 flatten: true, 122 src: ['bp-templates/bp-nouveau/sass/buddypress.scss', 'bp-templates/bp-nouveau/sass/twenty*.scss' ],123 src: ['bp-templates/bp-nouveau/sass/buddypress.scss', 'bp-templates/bp-nouveau/sass/twenty*.scss', 'bp-templates/bp-nouveau/sass/primary-nav.scss'], 123 124 dest: SOURCE_DIR + 'bp-templates/bp-nouveau/css/' 124 125 }, -
trunk/src/bp-core/classes/class-bp-core.php
r12999 r13000 296 296 'block_globals' => array( 297 297 'bp/login-form' => array( 298 'widget_classnames' => array 298 'widget_classnames' => array( 'widget_bp_core_login_widget', 'buddypress' ), 299 299 ) 300 300 ) -
trunk/src/bp-templates/bp-nouveau/includes/functions.php
r12997 r13000 4 4 * 5 5 * @since 3.0.0 6 * @version 8.0.06 * @version 9.0.0 7 7 */ 8 8 … … 1490 1490 return apply_filters( 'bp_nouveau_get_component_slug', $slug, $component_id ); 1491 1491 } 1492 1493 /** 1494 * Registers the 'bp/primary-nav' Widget Block. 1495 * 1496 * @since 9.0.0 1497 * 1498 * @param array $blocks The Core Blocks list. 1499 * @return array The Core Blocks list. 1500 */ 1501 function bp_nouveau_register_primary_nav_widget_block( $blocks = array() ) { 1502 $editor_style = bp_locate_template_asset( 'css/primary-nav.css' ); 1503 1504 $blocks['bp/primary-nav'] = array( 1505 'name' => 'bp/primary-nav', 1506 'editor_script' => 'bp-primary-nav-block', 1507 'editor_script_url' => trailingslashit( buddypress()->plugin_url . 'bp-core' ) . 'js/blocks/primary-nav.js', 1508 'editor_script_deps' => array( 1509 'wp-blocks', 1510 'wp-element', 1511 'wp-components', 1512 'wp-i18n', 1513 'wp-block-editor', 1514 'bp-block-data', 1515 'bp-block-components', 1516 ), 1517 'editor_style' => 'bp-primary-nav-block', 1518 'editor_style_url' => $editor_style['uri'], 1519 'attributes' => array( 1520 'displayTitle' => array( 1521 'type' => 'boolean', 1522 'default' => true, 1523 ), 1524 ), 1525 'render_callback' => 'bp_nouveau_render_primary_nav_block', 1526 ); 1527 1528 return $blocks; 1529 } 1530 add_filter( 'bp_core_register_blocks', 'bp_nouveau_register_primary_nav_widget_block', 20, 1 ); 1531 1532 /** 1533 * Registers the 'bp/primary-nav' Widget Block classnames. 1534 * 1535 * @since 9.0.0 1536 * 1537 * @param array $block_globals The list of global properties for Core blocks. 1538 * @return array The list of global properties for Core blocks. 1539 */ 1540 function bp_nouveau_register_core_block_globals( $block_globals = array() ) { 1541 $block_globals['bp/primary-nav'] = array( 1542 'widget_classnames' => array( 'widget_nav_menu', 'buddypress_object_nav', 'buddypress' ), 1543 ); 1544 1545 return $block_globals; 1546 } 1547 add_filter( 'bp_core_block_globals', 'bp_nouveau_register_core_block_globals', 10, 1 ); 1548 1549 /** 1550 * Unregister the 'bp/primary-nav' Block from the post context. 1551 * 1552 * @since 9.0.0 1553 */ 1554 function bp_nouveau_unregister_blocks_for_post_context() { 1555 unregister_block_type( 'bp/primary-nav' ); 1556 } 1557 add_action( 'load-post.php', 'bp_nouveau_unregister_blocks_for_post_context' ); 1558 add_action( 'load-post-new.php', 'bp_nouveau_unregister_blocks_for_post_context' ); 1559 1560 /** 1561 * Callback function to render the BP Primary Nav Block. 1562 * 1563 * @since 9.0.0 1564 * 1565 * @param array $attributes The block attributes. 1566 * @return string HTML output. 1567 */ 1568 function bp_nouveau_render_primary_nav_block( $attributes = array() ) { 1569 $widget_content = ''; 1570 $widget_title = ''; 1571 $block_args = bp_parse_args( 1572 $attributes, 1573 array( 1574 'displayTitle' => true, 1575 ), 1576 'widget_object_nav' 1577 ); 1578 1579 // Previewing the Block inside the editor. 1580 if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) { 1581 $widget_title = bp_get_loggedin_user_fullname(); 1582 1583 ob_start(); 1584 1585 // Temporary override the displayed user by the logged in one. 1586 add_filter( 'bp_displayed_user_id', 'bp_loggedin_user_id' ); 1587 1588 bp_get_template_part( 'members/single/parts/item-nav' ); 1589 $widget_content = ob_get_clean(); 1590 1591 // Remove the temporary override. 1592 remove_filter( 'bp_displayed_user_id', 'bp_loggedin_user_id' ); 1593 } else { 1594 ob_start(); 1595 1596 if ( bp_is_user() ) { 1597 $widget_title = bp_get_displayed_user_fullname(); 1598 bp_get_template_part( 'members/single/parts/item-nav' ); 1599 } elseif ( bp_is_group() ) { 1600 $widget_title = bp_get_current_group_name(); 1601 bp_get_template_part( 'groups/single/parts/item-nav' ); 1602 } elseif ( bp_is_directory() ) { 1603 $widget_title = bp_get_directory_title( bp_current_component() ); 1604 bp_get_template_part( 'common/nav/directory-nav' ); 1605 } 1606 1607 $widget_content = ob_get_clean(); 1608 } 1609 1610 if ( ! $widget_content ) { 1611 return ''; 1612 } 1613 1614 // Set the Block's title. 1615 if ( true === $block_args['displayTitle'] ) { 1616 $widget_content = sprintf( 1617 '<h2 class="widget-title">%1$s</h2> 1618 %2$s', 1619 esc_html( $widget_title ), 1620 $widget_content 1621 ); 1622 } 1623 1624 // Only add a block wrapper if not loaded into a Widgets sidebar. 1625 if ( ! did_action( 'dynamic_sidebar_before' ) ) { 1626 $classnames = 'widget_nav_menu buddypress_object_nav buddypress widget'; 1627 $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) ); 1628 1629 return sprintf( 1630 '<div %1$s>%2$s</div>', 1631 $wrapper_attributes, 1632 $widget_content 1633 ); 1634 } 1635 1636 return $widget_content; 1637 }
Note: See TracChangeset
for help on using the changeset viewer.