BP_Attachment_Avatar::script_data()

Build script datas for the Uploader UI.

Description

Return

(array) The javascript localization data.

Source

File: bp-core/classes/class-bp-attachment-avatar.php

357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
public function script_data() {
    // Get default script data.
    $script_data = parent::script_data();
 
    // Defaults to Avatar Backbone script.
    $js_scripts = array( 'bp-avatar' );
 
    // Default object.
    $object = '';
 
    // Get the possible item ids.
    $user_id  = $this->get_user_id();
    $group_id = $this->get_group_id();
 
    if ( ! empty( $user_id ) ) {
        // Should we load the the Webcam Avatar javascript file.
        if ( bp_avatar_use_webcam() ) {
            $js_scripts = array( 'bp-webcam' );
        }
 
        $script_data['bp_params'] = array(
            'object'     => 'user',
            'item_id'    => $user_id,
            'has_avatar' => bp_get_user_has_avatar( $user_id ),
            'nonces'  => array(
                'set'    => wp_create_nonce( 'bp_avatar_cropstore' ),
                'remove' => wp_create_nonce( 'bp_delete_avatar_link' ),
            ),
        );
 
        // Set feedback messages.
        $script_data['feedback_messages'] = array(
            1 => __( 'There was a problem cropping your profile photo.', 'buddyboss' ),
            2 => __( 'Your new profile photo was uploaded successfully.', 'buddyboss' ),
            3 => __( 'There was a problem deleting your profile photo. Please try again.', 'buddyboss' ),
            4 => __( 'Your profile photo was deleted successfully!', 'buddyboss' ),
        );
    } elseif ( ! empty( $group_id ) ) {
        $script_data['bp_params'] = array(
            'object'     => 'group',
            'item_id'    => $group_id,
            'has_avatar' => bp_get_group_has_avatar( $group_id ),
            'nonces'     => array(
                'set'    => wp_create_nonce( 'bp_avatar_cropstore' ),
                'remove' => wp_create_nonce( 'bp_group_avatar_delete' ),
            ),
        );
 
        // Set feedback messages.
        $script_data['feedback_messages'] = array(
            1 => __( 'There was a problem cropping the group profile photo.', 'buddyboss' ),
            2 => __( 'The group profile photo was uploaded successfully.', 'buddyboss' ),
            3 => __( 'There was a problem deleting the group profile photo. Please try again.', 'buddyboss' ),
            4 => __( 'The group profile photo was deleted successfully!', 'buddyboss' ),
        );
    } else {
 
        /**
         * Use this filter to include specific BuddyPress params for your object.
         * e.g. Blavatar.
         *
         * @since BuddyPress 2.3.0
         *
         * @param array $value The avatar specific BuddyPress parameters.
         */
        $script_data['bp_params'] = apply_filters( 'bp_attachment_avatar_params', array() );
    }
 
    // Include the specific css.
    $script_data['extra_css'] = array( 'bp-avatar' );
 
    // Include the specific css.
    $script_data['extra_js']  = $js_scripts;
 
    // Set the object to contextualize the filter.
    if ( isset( $script_data['bp_params']['object'] ) ) {
        $object = $script_data['bp_params']['object'];
    }
 
    /**
     * Use this filter to override/extend the avatar script data.
     *
     * @since BuddyPress 2.3.0
     *
     * @param array  $script_data The avatar script data.
     * @param string $object      The object the avatar belongs to (eg: user or group).
     */
    return apply_filters( 'bp_attachment_avatar_script_data', $script_data, $object );
}

Changelog

Changelog
Version Description
BuddyPress 2.3.0 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.