Changeset 12983
- Timestamp:
- 07/01/2021 08:54:10 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-templates/bp-nouveau/includes/classes.php
r12976 r12983 4 4 * 5 5 * @since 3.0.0 6 * @version 3.1.06 * @version 9.0.0 7 7 */ 8 8 … … 45 45 public function __construct( $args = array() ) { 46 46 foreach ( $args as $arg ) { 47 $r = bp_parse_args( 48 (array) $arg, 49 array( 50 'id' => '', 51 'position' => 99, 52 'component' => '', 53 'must_be_logged_in' => true, 54 'block_self' => false, 55 'parent_element' => false, 56 'parent_attr' => array(), 57 'button_element' => 'a', 58 'button_attr' => array(), 59 'link_text' => '', 60 ), 61 'buttons_group_constructor' 62 ); 63 64 // Just don't set the button if a param is missing 65 if ( empty( $r['id'] ) || empty( $r['component'] ) || empty( $r['link_text'] ) ) { 66 continue; 67 } 68 69 $r['id'] = sanitize_key( $r['id'] ); 70 71 // If the button already exist don't add it 72 if ( isset( $this->group[ $r['id'] ] ) ) { 73 continue; 74 } 75 76 /* 77 * If, in bp_nouveau_get_*_buttons(), we pass through a false value for 'parent_element' 78 * but we have attributtes for it in the array, let's default to setting a div. 79 * 80 * Otherwise, the original false value will be passed through to BP buttons. 81 * @todo: this needs review, probably trying to be too clever 82 */ 83 if ( ( ! empty( $r['parent_attr'] ) ) && false === $r['parent_element'] ) { 84 $r['parent_element'] = 'div'; 85 } 86 87 $this->group[ $r['id'] ] = $r; 47 $this->add( $arg ); 88 48 } 89 49 } … … 173 133 'buttons_group_update' 174 134 ); 175 } 176 } 135 } else { 136 $this->add( $params ); 137 } 138 } 139 } 140 141 /** 142 * Adds a button. 143 * 144 * @since 9.0.0 145 * 146 * @param array $args Required. See the __constructor for a description of this argument. 147 * @return bool true on success, false on failure to add. 148 */ 149 private function add( $args ) { 150 $r = bp_parse_args( 151 (array) $args, 152 array( 153 'id' => '', 154 'position' => 99, 155 'component' => '', 156 'must_be_logged_in' => true, 157 'block_self' => false, 158 'parent_element' => false, 159 'parent_attr' => array(), 160 'button_element' => 'a', 161 'button_attr' => array(), 162 'link_text' => '', 163 ), 164 'buttons_group_constructor' 165 ); 166 167 // Just don't set the button if a param is missing 168 if ( empty( $r['id'] ) || empty( $r['component'] ) || empty( $r['link_text'] ) ) { 169 return false; 170 } 171 172 $r['id'] = sanitize_key( $r['id'] ); 173 174 // If the button already exist don't add it 175 if ( isset( $this->group[ $r['id'] ] ) ) { 176 return false; 177 } 178 179 /* 180 * If, in bp_nouveau_get_*_buttons(), we pass through a false value for 'parent_element' 181 * but we have attributtes for it in the array, let's default to setting a div. 182 * 183 * Otherwise, the original false value will be passed through to BP buttons. 184 * @todo: this needs review, probably trying to be too clever 185 */ 186 if ( ( ! empty( $r['parent_attr'] ) ) && false === $r['parent_element'] ) { 187 $r['parent_element'] = 'div'; 188 } 189 190 $this->group[ $r['id'] ] = $r; 191 return true; 177 192 } 178 193 }
Note: See TracChangeset
for help on using the changeset viewer.