| | 1 | <?php |
| | 2 | /** |
| | 3 | * BuddyPress - Members Settings Screen Notifications |
| | 4 | * |
| | 5 | * @since 2.6.0 |
| | 6 | * |
| | 7 | * @package BuddyPress |
| | 8 | * @subpackage bp-legacy |
| | 9 | */ |
| | 10 | |
| | 11 | /** This action is documented in bp-templates/bp-legacy/buddypress/members/single/settings/profile.php */ |
| | 12 | do_action( 'bp_before_member_settings_template' ); ?> |
| | 13 | |
| | 14 | <form action="<?php echo bp_displayed_user_domain() . bp_get_settings_slug() . '/screen-notifications'; ?>" method="post" class="standard-form" id="settings-form"> |
| | 15 | |
| | 16 | <p><?php _e('Enable or disable on screen display of notifications.', 'buddypress'); ?></p> |
| | 17 | |
| | 18 | <?php |
| | 19 | $components = bp_notifications_get_registered_components(); |
| | 20 | |
| | 21 | // Fudge xprofile component. |
| | 22 | $profile = array_search( 'xprofile', $components ); |
| | 23 | if ( false !== $profile ) { |
| | 24 | $components[] = 'profile'; |
| | 25 | unset( $components[ $profile ] ); |
| | 26 | } |
| | 27 | |
| | 28 | sort( $components, SORT_STRING ); |
| | 29 | |
| | 30 | // Initialize registered notification actions. |
| | 31 | bp_notifications_init_registered_actions(); |
| | 32 | |
| | 33 | foreach ( $components as $component ) : |
| | 34 | $enabled = bp_get_user_meta( bp_loggedin_user_id(), "notifications_{$component}_enabled", true ); |
| | 35 | if ( '' === $enabled ) { |
| | 36 | $enabled = 1; |
| | 37 | } |
| | 38 | |
| | 39 | $action_count = ! empty( buddypress()->notifications->actions[$component] ) ? count( buddypress()->notifications->actions[$component] ) : 0; |
| | 40 | ?> |
| | 41 | |
| | 42 | <fieldset class="<?php echo $component; ?>"> |
| | 43 | |
| | 44 | <?php bp_notifications_component_settings_title( $component, 'legend' ); ?> |
| | 45 | |
| | 46 | <label for="<?php esc_attr_e( "{$component}-notification-enable" ); ?>"> |
| | 47 | <input type="checkbox" name="<?php esc_attr_e( "{$component}[enabled]" ); ?>" data-component="<?php esc_attr_e( $component ); ?>" id="<?php esc_attr_e( "{$component}-notification-enable" ); ?>" value="1" <?php checked( $enabled, 1, true ) ?>/> |
| | 48 | |
| | 49 | <?php esc_html_e( 'Enable screen notifications for this component', 'buddypress' ); ?> |
| | 50 | </label> |
| | 51 | |
| | 52 | <?php if ( ! empty( buddypress()->notifications->actions[$component] ) ) : ?> |
| | 53 | |
| | 54 | <table class="notification-settings" id="<?php esc_attr_e( "{$component}-screen-notification-settings" ); ?>"> |
| | 55 | <thead> |
| | 56 | <tr> |
| | 57 | <th class="icon"> </th> |
| | 58 | <th> </th> |
| | 59 | <th class="yes"><?php _e( 'Yes', 'buddypress' ) ?></th> |
| | 60 | <th class="no"><?php _e( 'No', 'buddypress' )?></th> |
| | 61 | </tr> |
| | 62 | </thead> |
| | 63 | |
| | 64 | <tbody> |
| | 65 | <?php |
| | 66 | foreach ( buddypress()->notifications->actions[$component] as $action => $val ) : |
| | 67 | $action = sanitize_key( $action ); |
| | 68 | |
| | 69 | $enabled = bp_get_user_meta( bp_loggedin_user_id(), "notifications_{$component}_{$action}_enabled", true ); |
| | 70 | if ( '' === $enabled ) { |
| | 71 | $enabled = 1; |
| | 72 | } |
| | 73 | ?> |
| | 74 | |
| | 75 | <tr id="<?php esc_html_e( "{$component}-{$action}" ); ?>" class="<?php esc_attr_e( "{$component}-screen-notification-singular" ); ?>"> |
| | 76 | <td> </td> |
| | 77 | <td><?php esc_html_e( $val['settings_label' ] ); ?></td> |
| | 78 | <td class="yes"><input type="radio" name="<?php esc_attr_e( "{$component}[{$action}]" ); ?>" id="<?php esc_attr_e( "{$component}-notification-{$action}-yes" ); ?>" value="1" <?php checked( $enabled, 1, true ) ?>/><label for="<?php esc_attr_e( "{$component}-notification-{$action}-yes" ); ?>" class="bp-screen-reader-text"><?php _e( 'Yes', 'buddypress' ); ?></label></td> |
| | 79 | <td class="no"><input type="radio" name="<?php esc_attr_e( "{$component}[{$action}]" ); ?>" id="<?php esc_attr_e( "{$component}-notification-{$action}-no" ); ?>" value="0" <?php checked( $enabled, 0, true ) ?>/><label for="<?php esc_attr_e( "{$component}-notification-{$action}-no" ); ?>" class="bp-screen-reader-text"><?php _e( 'No', 'buddypress' ); ?></label></td> |
| | 80 | </tr> |
| | 81 | |
| | 82 | <?php |
| | 83 | endforeach; |
| | 84 | ?> |
| | 85 | </tbody> |
| | 86 | </table> |
| | 87 | |
| | 88 | |
| | 89 | |
| | 90 | <?php endif; ?> |
| | 91 | </fieldset> |
| | 92 | <?php endforeach; ?> |
| | 93 | |
| | 94 | <script type="text/javascript"> |
| | 95 | // This will be moved to bp-legacy's buddypress.js file. Or maybe not? |
| | 96 | jQuery(function($){ |
| | 97 | $('#settings-form input[type=checkbox]').each(function( index, elem ) { |
| | 98 | toggleSettingsComponentFields( $(this) ); |
| | 99 | }); |
| | 100 | |
| | 101 | $('#settings-form').on('click', 'input[type=checkbox]', function(e) { |
| | 102 | toggleSettingsComponentFields( $(this) ); |
| | 103 | }); |
| | 104 | |
| | 105 | function toggleSettingsComponentFields( elem ) { |
| | 106 | var component = $( elem ).data( 'component' ); |
| | 107 | |
| | 108 | if ( elem.is(':checked') ) { |
| | 109 | $('#' + component + '-screen-notification-settings').fadeIn('fast'); |
| | 110 | } else { |
| | 111 | $('#' + component + '-screen-notification-settings').fadeOut('fast'); |
| | 112 | } |
| | 113 | } |
| | 114 | }); |
| | 115 | </script> |
| | 116 | |
| | 117 | <?php |
| | 118 | |
| | 119 | /** |
| | 120 | * Fires before the display of the submit button for user notification saving. |
| | 121 | * |
| | 122 | * @since 2.6.0 |
| | 123 | */ |
| | 124 | do_action( 'bp_members_screen_notification_settings_before_submit' ); ?> |
| | 125 | |
| | 126 | <div class="submit"> |
| | 127 | <input type="submit" name="screen-notifications-submit" value="<?php esc_attr_e( 'Save Changes', 'buddypress' ); ?>" id="submit" class="auto" /> |
| | 128 | </div> |
| | 129 | |
| | 130 | <?php |
| | 131 | |
| | 132 | /** |
| | 133 | * Fires after the display of the submit button for user notification saving. |
| | 134 | * |
| | 135 | * @since 2.6.0 |
| | 136 | */ |
| | 137 | do_action( 'bp_members_screen_notification_settings_after_submit' ); ?> |
| | 138 | |
| | 139 | <?php wp_nonce_field( 'bp_settings_screen_notifications' ); ?> |
| | 140 | |
| | 141 | </form> |
| | 142 | |
| | 143 | <?php |
| | 144 | |
| | 145 | /** This action is documented in bp-templates/bp-legacy/buddypress/members/single/settings/profile.php */ |
| | 146 | do_action( 'bp_after_member_settings_template' ); |