WordPress.org

Ready to get started?Download WordPress

Forums

Buddypress Xprofile Custom Fields Type
[resolved] [resolved] upload audio (mp3) and play it in profile (2 posts)

  1. noizeburger
    Member
    Posted 8 months ago #

    As I tried many ways to let my users upload audio files to their profiles I've finally found my way in using this plugin and a little bit of code in my bp-custom.php. I also had to modify "bp-xprofile-custom-fields-type.php"
    For the output of the audio-files I use MP3 jPlayer but you can also use audio-shortcode [audio] or try any other audioplugin that has shortcode. It's easy to implement.

    For your interest:

    1. make a fieldgroup with some fields of the type "file". name the fields for example song 1, song 2, song 3.

    2. edit "bp-xprofile-custom-fields-type.php" and add "mp3" as allowed extension (you need to do this two times - in my case it's line 1294 and 1364 - search for the line "$ext_allowed = array('doc','docx','pdf');"

    3. add the following code to your bp-custom.php:

    function my_show_field($value_to_return, $type, $id, $value) {
        if ($type == 'file') {
            $value = str_replace("<p>", "", $value);
            $value = str_replace("</p>", "", $value);
            $field = new BP_XProfile_Field($id);
            if ($field->name == 'song 1') {
                $uploads = wp_upload_dir();;
    			$value_to_return = '<p>[mp3t track="'.$uploads['baseurl'].$value.'"]</p>';
            }
    		if ($field->name == 'song 2') {
                $uploads = wp_upload_dir();;
    			$value_to_return = '<p>[mp3t track="'.$uploads['baseurl'].$value.'"]</p>';
            }
    		if ($field->name == 'song 3') {
                $uploads = wp_upload_dir();;
    			$value_to_return = '<p>[mp3t track="'.$uploads['baseurl'].$value.'"]</p>';
            }
        }
        return $value_to_return;
    }

    4. copy the part of the code `if ($field->name == 'song 1') {
    $uploads = wp_upload_dir();;
    $value_to_return = '<p>[mp3t track="'.$uploads['baseurl'].$value.'"]</p>';
    }` as often as you need it and apply the right fieldname (song 1, song 2,...)

    5. Install your audio plugin, look at its shortcode (in my case MP3 jPlayer) - if you want to use wordpress core [audio]-shortcode, just replace [mp3t track= with [audio src=

    6. upload your files and have fun!

    What is missing now, is a way to display songtitle - if you use MP3 jPlayer, you can name the file with the display name, but that's just a rough workaround. Maybe I find a way or donmik does?

    http://wordpress.org/plugins/buddypress-xprofile-custom-fields-type/

  2. donmik
    Member
    Plugin Author

    Posted 8 months ago #

    Great work! Now, I have too much work, but I hope I can integrate this in my plugin or in the FAQ in next days.

    Thanks!

Reply

You must log in to post.

About this Plugin

About this Topic