Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'wordpress'

Viewing 25 results - 11,976 through 12,000 (of 32,685 total)
  • Author
    Search Results
  • #177344
    @mercime
    Participant
    #177338
    Prometheus Fire
    Participant

    I’m trying to create a tabbed interface in my theme so that each extended profile group displays in its own tab. There are different ways to do it, here is one: http://wordpress.org/plugins/buddypress-profile-tabs/

    But I’m building this into a theme and don’t want to use a plugin (especially one that loads external JS). I did try using part of that plugin inside profile.php, but wasn’t happy with the result since the method it uses is to use JS to add #tab to each profile group. This results in a jumping of the page, even when I apply the CSS.

    Chris Coyier has a better solution here: http://css-tricks.com/functional-css-tabs-revisited/
    It doesn’t involve Javascript and it prevents the page jumping around to #links that the other solution causes.

    Here is the problem I am having:
    In order to use Chris’s solution I need to get the id’s of the input type of radio (shown in the code below) to read as id=”tab-1″, id=”tab-2″, etc for each profile group in the loop. I know there is a php way of doing it, but I don’t understand how. Once I get the id’s numbered sequentially in the output, adding the CSS is a simple issue.

    <div class="profile-tab">
    				
       <input type="radio" id="tab" name="profile-tab-group" checked>
          <label for="tab"><?php bp_the_profile_group_name(); ?></label>
    
       <table class="profile-fields">
          <?php while ( bp_profile_fields() ) : bp_the_profile_field(); ?>
             <?php if ( bp_field_has_data() ) : ?>
                <tr<?php bp_field_css_class(); ?>>
                   <td class="label"><?php bp_the_profile_field_name(); ?></td>
                   <td class="data"><?php bp_the_profile_field_value(); ?></td>
                </tr>
            <?php endif; ?>
    
             <?php do_action( 'bp_profile_field_item' ); ?>
    
          <?php endwhile; ?>
    
       </table> <!-- end profile-fields -->
    
    </div> <!-- end profile-tab -->
    #177336
    Prometheus Fire
    Participant

    I’m trying to create a tabbed interface in my theme so that each extended profile group displays in its own tab. There are different ways to do it, here is one: http://wordpress.org/plugins/buddypress-profile-tabs/

    But I’m building this into a theme and don’t want to use a plugin (especially one that loads external JS). I did try using part of that plugin inside profile.php, but wasn’t happy with the result since the method it uses is to use JS to add #tab to each profile group. This results in a jumping of the page, even when I apply the CSS.

    Chris Coyier has a better solution here: http://css-tricks.com/functional-css-tabs-revisited/
    It doesn’t involve Javascript and it prevents the page jumping around to #links that the other solution causes.

    Here is the problem I am having:
    In order to use Chris’s solution I need to get the id’s of the input type of radio (shown in the code below) to read as id=”tab-1″, id=”tab-2″, etc for each profile group in the loop. I know there is a php way of doing it, but I don’t understand how. Once I get the id’s numbered sequentially in the output, adding the CSS is a simple issue.

    
    <div class="profile-tab">
    				
       <input type="radio" id="tab" name="profile-tab-group" checked>
          <label for="tab"><?php bp_the_profile_group_name(); ?></label>
    
       <table class="profile-fields">
          <?php while ( bp_profile_fields() ) : bp_the_profile_field(); ?>
             <?php if ( bp_field_has_data() ) : ?>
                <tr<?php bp_field_css_class(); ?>>
                   <td class="label"><?php bp_the_profile_field_name(); ?></td>
                   <td class="data"><?php bp_the_profile_field_value(); ?></td>
                </tr>
            <?php endif; ?>
    
             <?php do_action( 'bp_profile_field_item' ); ?>
    
          <?php endwhile; ?>
    
       </table> <!-- end profile-fields -->
    
    </div> <!-- end profile-tab -->
    quince85
    Participant

    Hi,
    I’m trying to make my theme compatible with bp.
    I read http://codex.buddypress.org/legacy/wordpress-to-buddypress-theme/
    but I can’t seem to find the BP Template Pack plugin.
    Any suggestions? (http://unicefchallenge.com)

    Thnaks

    Hugo Ashmore
    Participant

    This is more a WP question, you can remove the comments by passing an empty array back to comment form in the template file, have a read of this post on WP support:
    https://wordpress.org/support/topic/remove-markup-notes-from-below-twenty-twelve-comments-box

    P.S. when you state you have tried something please actually say what it was you tried as it may have a bearing on the matter.

    #177260
    jakeman35
    Participant

    Hi,

    I installed BuddyPress version 1.9.1 on the existing WordPress 3.8 instance. I have 700+ registered users on my site, but I’m only one showing up as a member in BuddyPress. I must be missing something obvious; is there a way to bring all the existing WordPress users to show up as BuddyPress members, perhaps with a participant role?

    Thank you,

    Jake

    #177250
    Squirrel
    Participant

    Thanks for your feedback everyone.
    @hnla Yes you are right, I would be responsible to support it as a premium theme. So I will have to submit it to the directory and just spend a bit more time developing it I guess.
    @ubernaut thanks I hope it would be useful to people.
    @henrywright I have been thinking the same thing.

    I will remove it from my website and develop it to go into the WordPress depository- hopefully it will one day- will take a while though unfortunately because I’m busy doing an art course now.

    Chris

    #177248
    Tearstone
    Participant

    I have run into an issue where I converted a vBulletin forum over to bbpress/buddypress combination.

    I really do not quite understand why, but over the course of the past week since the migration. Me and my users have been getting non-stop emails 50-100 a day with @mentions. The longer a user has been involved in the community, the worse it got. I started out by completely disabling emails from WordPress, then I found r-a-y’s no mention plug-in. I’m hoping that does the trick.

    Either way, there should be a way to disable certain notifications or messages transmitted from Buddypress.

    Kudos to all the devs that work on this project! Thank you.

    #177225
    Paul Wong-Gibbs
    Keymaster

    Now fixed in trunk for BP 2.0. Thanks for the report and the fix, @glyndavidson

    https://buddypress.trac.wordpress.org/changeset/7740

    #177221
    glyndavidson
    Participant
    #177215
    Paul Wong-Gibbs
    Keymaster
    #177214
    Paul Wong-Gibbs
    Keymaster

    Please report this as a bug on buddypress.trac.wordpress.org. Thanks.

    #177213
    Paul Wong-Gibbs
    Keymaster

    Bug reports for BuddyPress.org itself should also be reported on buddypress.trac.wordpress.org, please.

    #177189
    gerardbeekmans
    Participant

    Hello! I would like to force my incompatible theme to work with Buddypress even though the theme author has said it won’t.

    Here’s the extra info required first before explaining further:

    WP 3.8
    WP-directory or subdomain install? Not sure…
    WP-root or in a subdirectory? Root.
    Upgrade from a previous version of WP? If so, from which? Yes, the one directly previous to 3.8 however buddypress was just installed a day before upgrading.
    WordPress functioning properly? Yes.
    Version of BP are you running? 1.9.1
    Upgrade from a previous version of BP? No

    8. Do you have any plugins other than BuddyPress installed and activated?Yes – Advanced custom fields, askimet, author image, better wordpress recent comments, dashboard notepad, exclude pages from navigation, fancier author box, go – responsive pricing & compare tables, google analytics for wordpress, jetpack, nrelate related content, roster slider (and slidervilla taxonomies addon), rumbletalk chat, s2 member framework (and pro addon), User bookmarks, visual form builder (and magic addon), W3 total cache, widget logic, widgets on pages, wp google fonts, WP Show IDs.
    Standard BuddyPress themes or customized themes? Standard – have not selected a theme, could not find anywhere to select any kind of theme at all.
    Modified the core files in any way? No
    Have any custom functions in bp-custom.php? No
    No bbPress, but will add in future.
    List of any errors in your server’s log files. No errors.
    Hosting? Self hosted on husband’s server.
    Is your server running? Linux

    Basic Trouble Shooting:

    I already know that the theme will not work with buddypress – they’ve advised someone of this in their comments section.

    I have reverted to standard WP theme, and after doing so, buddypress profile pages etc. will appear, but using the Solitudo theme, it shows “archive” as the title.

    Saw this post: http://buddypress.org/support/topic/page-title-all-say-archive/ and my husband will look into that the wp_title() function

    Have also contacted theme author to find out where we can get started to modify the theme to accept buddypress, waiting to hear back.

    In the mean time, any tips, tricks, advice you can provide my husband as far as forcing my theme to work with buddypress? Or are any of the additional plugins I have installed potentially causing a problem? I can deactivate all plugins and then reactivate, but I’m new to WP and not sure if doing so would re-set all of the settings for each plugin.

    Activating a different theme and then reactivating my solitudo child theme, for instance, caused some settings to disappear that I have to re-do now so I’d rather avoid that if you know for sure one of the listed plugins causes an issue.

    Thanks for any advice you can give! Warm regards!

    #177185
    modemlooper
    Moderator

    You can also use a plugin and add css

    https://wordpress.org/plugins/reaktiv-css-builder

    #177164
    shallowjeff
    Participant

    Hi,
    I need help. I’ve managed to get rid of the auto linking default function within the profile section of my members page, but am unable to place anything that has java and/or button qualities. I have a place for “profile widgets” but instead of the actual widget, I get an H-ref ugly link. http://www.poetsatwork.com

    For example:
    I paste this,

    <SCRIPT charset=”utf-8″ type=”text/javascript” src=”http://ws-na.amazon-adsystem.com/widgets/q?rt=tf_cw&ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Flovecourses-20%2F8010%2F5a411cc7-5346-4d91-86c2-9808086e235e&Operation=GetScriptTemplate”> </SCRIPT> <NOSCRIPT>Amazon.com Widgets</NOSCRIPT>

    On the page it shows this,

    <a-HREF=”http://ws-na.amazon-adsystem.com/widgets/q?rt=tf_cw&ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Flovecourses-20%2F8010%2F5a411cc7-5346-4d91-86c2-9808086e235e&Operation=NoScript=” Amazon.com Widgets

    This is the same for all link type images/widgets I place within BP. The stuff I put on the sidebars within wordpress works fine.

    Why? I’m sure it’s a filter/function, but not sure where/what to change.

    Here is my code:buddypress-xprofile-custom-fields-type/bp-xprofile-custom-fields-type.php
    THE CODE I USED TO GET RID OF AUTO LINKING IS ON THE VERY BOTTOM, THANKS http://www.poetsatwork.com

    
    /*
    Plugin Name: Buddypress Xprofile Custom Fields Type
    Plugin URI: https://github.com/donmik/buddypress-xprofile-custom-fields-type/
    Description: Buddypress installation required!! Add more custom fields type to extended profiles in buddypress: Birthdate, Email, Web, Datepicker. If you need more fields type, you are free to add them yourself or request us at miguel@donmik.com.
    Version: 1.5.8.4
    Author: donmik
    Author URI: http://donmik.com
    */
    //load text domain
    function bxcft_load_textdomain() {
    $locale = apply_filters( 'bxcft_load_load_textdomain_get_locale', get_locale() );
    // if load .mo file
    if ( !empty( $locale ) ) {
    $mofile_default = sprintf( '%slang/%s.mo', plugin_dir_path(__FILE__), $locale );
    $mofile = apply_filters( 'bxcft_load_textdomain_mofile', $mofile_default );
    
    if ( file_exists( $mofile ) )
    load_textdomain( “bxcft”, $mofile );
    }
    }
    add_action ( 'bp_init', 'bxcft_load_textdomain', 2 );
    
    function bxcft_add_new_xprofile_field_type($field_types){
    $new_field_types = array('birthdate', 'email', 'web', 'datepicker',
    'select_custom_post_type', 'multiselect_custom_post_type',
    'checkbox_acceptance', 'image', 'file', 'color', 'number');
    $field_types = array_merge($field_types, $new_field_types);
    return $field_types;
    }
    add_filter( 'xprofile_field_types', 'bxcft_add_new_xprofile_field_type' );
    
    function bxcft_admin_render_new_xprofile_field_type($field, $echo = true) {
    $html = ”;
    switch ( $field->type ) {
    case 'number':
    $html .= '<input type=”number” name=”field_'.$field->id.'” id=”'.$field->id.'” class=”input-number” />';
    break;
    
    case 'color':
    $html .= '<input type=”color” name=”field_'.$field->id.'” id=”'.$field->id.'” class=”input-color” />';
    break;
    
    case 'image':
    case 'file':
    $html .= '<input type=”file” name=”field_'.$field->id.'” id=”'.$field->id.'” class=”input-file” /> ';
    break;
    
    case 'checkbox_acceptance':
    $html .= '<input type=”checkbox” name=”field_'.$field->id.'” id=”'.$field->id.'” class=”input-checkbox” value=”” /> ';
    $html .= $field->description;
    $field->description = ”;
    break;
    
    case 'select_custom_post_type':
    $childs = $field->get_children();
    if (isset($childs) && count($childs) > 0 && is_object($childs[0])) {
    // Get the name of custom post type.
    $custom_post_type = $childs[0]->name;
    // Get the posts of custom post type.
    $loop = new WP_Query(array('posts_per_page' => -1, 'post_type' => $custom_post_type, 'orderby' => 'title', 'order' => 'ASC' ));
    }
    $select_custom_post_type = BP_XProfile_ProfileData::get_value_byid( $field->id );
    $html .= '<select name=”field_'.$field->id.'” id=”field_'.$field->id.'”>';
    if (isset($loop)) {
    foreach ($loop->posts as $post) {
    $html .= '<option value=”'.$post->ID.'”>'.$post->post_title.'</option>';
    }
    }
    $html .= '</select>';
    break;
    
    case “multiselect_custom_post_type”:
    $childs = $field->get_children();
    if (isset($childs) && count($childs) > 0 && is_object($childs[0])) {
    // Get the name of custom post type.
    $custom_post_type = $childs[0]->name;
    // Get the posts of custom post type.
    $loop = new WP_Query(array('posts_per_page' => -1, 'post_type' => $custom_post_type, 'orderby' => 'title', 'order' => 'ASC' ));
    }
    $select_custom_post_type = BP_XProfile_ProfileData::get_value_byid( $field->id );
    $html .= '<select name=”field_'.$field->id.'” id=”field_'.$field->id.'” multiple=”multiple”>';
    if (isset($loop)) {
    foreach ($loop->posts as $post) {
    $html .= '<option value=”'.$post->ID.'”>'.$post->post_title.'</option>';
    }
    }
    $html .= '</select>';
    break;
    
    case “datepicker”:
    $html .= '<input type=”date” name=”field_'.$field->id.'” id=”'.$field->id.'” class=”input” value=”” />';
    break;
    
    case “web”:
    $html .= '<input type=”url” name=”field_'.$field->id.'” id=”'.$field->id.'” class=”input” placeholder=”'.__('yourwebsite.com', 'bxcft').'” value=”” />';
    break;
    
    case “email”:
    $html .= '<input type=”email” name=”field_'.$field->id.'” id=”'.$field->id.'” class=”input” placeholder=”'.__('example@mail.com', 'bxcft').'” value=”” />';
    break;
    
    case “birthdate”:
    $date = BP_XProfile_ProfileData::get_value_byid( $field->id );
    
    // Set day, month, year defaults
    $day = ”;
    $month = ”;
    $year = ”;
    
    if ( !empty( $date ) ) {
    
    // If Unix timestamp
    if ( is_numeric( $date ) ) {
    $day = date( 'j', $date );
    $month = date( 'F', $date );
    $year = date( 'Y', $date );
    
    // If MySQL timestamp
    } else {
    $day = mysql2date( 'j', $date );
    $month = mysql2date( 'F', $date, false ); // Not localized, so that selected() works below
    $year = mysql2date( 'Y', $date );
    }
    }
    
    // Check for updated posted values, and errors preventing
    // them from being saved first time.
    if ( !empty( $_POST['field_' . $field->id . '_day'] ) ) {
    if ( $day != $_POST['field_' . $field->id . '_day'] ) {
    $day = $_POST['field_' . $field->id . '_day'];
    }
    }
    
    if ( !empty( $_POST['field_' . $field->id . '_month'] ) ) {
    if ( $month != $_POST['field_' . $field->id . '_month'] ) {
    $month = $_POST['field_' . $field->id . '_month'];
    }
    }
    
    if ( !empty( $_POST['field_' . $field->id . '_year'] ) ) {
    if ( $year != date( “j”, $_POST['field_' . $field->id . '_year'] ) ) {
    $year = $_POST['field_' . $field->id . '_year'];
    }
    }
    
    // Day.
    $html .= '<select name=”field_'.$field->id.'_day” id=”field_'.$field->id.'_day”>';
    $html .= '<option value=””' . selected( $day, ”, false ) . '>–</option>';
    for ( $i = 1; $i < 32; ++$i ) {
    $html .= '<option value=”' . $i .'”' . selected( $day, $i, false ) . '>' . $i . '</option>';
    }
    $html .= '</select>';
    
    // Month.
    $html .= '<select name=”field_'.$field->id.'_month” id=”field_'.$field->id.'_month”>';
    $eng_months = array( 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' );
    $months = array(
    __( 'January', 'buddypress' ),
    __( 'February', 'buddypress' ),
    __( 'March', 'buddypress' ),
    __( 'April', 'buddypress' ),
    __( 'May', 'buddypress' ),
    __( 'June', 'buddypress' ),
    __( 'July', 'buddypress' ),
    __( 'August', 'buddypress' ),
    __( 'September', 'buddypress' ),
    __( 'October', 'buddypress' ),
    __( 'November', 'buddypress' ),
    __( 'December', 'buddypress' )
    );
    $html .= '<option value=””' . selected( $month, ”, false ) . '>——</option>';
    for ( $i = 0; $i < 12; ++$i ) {
    $html .= '<option value=”' . $eng_months[$i] . '”' . selected( $month, $eng_months[$i], false ) . '>' . $months[$i] . '</option>';
    }
    $html .= '</select>';
    
    // Year.
    $html .= '<select name=”field_'.$field->id.'_year” id=”field_'.$field->id.'_year”>';
    $html .= '<option value=””' . selected( $year, ”, false ) . '>—-</option>';
    for ( $i = date('Y')-1; $i > 1901; $i– ) {
    $html .= '<option value=”' . $i .'”' . selected( $year, $i, false ) . '>' . $i . '</option>';
    }
    $html .= '</select>';
    break;
    
    default:
    // Field type unrecognized.
    // $html = “<p>”.__('Field type unrecognized', 'bxcft').”</p>”;
    break;
    }
    
    if ($echo){
    echo $html;
    return;
    } else {
    return $html;
    }
    
    }
    add_filter( 'xprofile_admin_field', 'bxcft_admin_render_new_xprofile_field_type' );
    
    function bxcft_edit_render_new_xprofile_field($echo = true) {
    global $field;
    if (!is_bool($echo)) {
    $echo = true;
    }
    
    $uploads = wp_upload_dir();
    
    ob_start();
    if ( bp_get_the_profile_field_type() == 'birthdate' ) {
    $date = BP_XProfile_ProfileData::get_value_byid( $field->id );
    // Set day, month, year defaults
    $day = ”;
    $month = ”;
    $year = ”;
    
    if ( !empty( $date ) ) {
    
    // If Unix timestamp
    if ( is_numeric( $date ) ) {
    $day = date( 'j', $date );
    $month = date( 'F', $date );
    $year = date( 'Y', $date );
    
    // If MySQL timestamp
    } else {
    $day = mysql2date( 'j', $date );
    $month = mysql2date( 'F', $date, false ); // Not localized, so that selected() works below
    $year = mysql2date( 'Y', $date );
    }
    }
    
    // Check for updated posted values, and errors preventing
    // them from being saved first time.
    if ( !empty( $_POST['field_' . $field->id . '_day'] ) ) {
    if ( $day != $_POST['field_' . $field->id . '_day'] ) {
    $day = $_POST['field_' . $field->id . '_day'];
    }
    }
    
    if ( !empty( $_POST['field_' . $field->id . '_month'] ) ) {
    if ( $month != $_POST['field_' . $field->id . '_month'] ) {
    $month = $_POST['field_' . $field->id . '_month'];
    }
    }
    
    if ( !empty( $_POST['field_' . $field->id . '_year'] ) ) {
    if ( $year != date( “j”, $_POST['field_' . $field->id . '_year'] ) ) {
    $year = $_POST['field_' . $field->id . '_year'];
    }
    }
    ?>
    <div class=”datebox”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s_day”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    // Dropdown => Day of month.
    $options_day = ”;
    for ($i=1; $i<32; ++$i) {
    $options_day .= sprintf('<option value=”%s”%s>%s</option>',
    $i,
    selected($day, $i, false),
    $i);
    }
    $input = sprintf('<select name=”%s_day” id=”%s_day”%s><option value=””%s>–</option>%s</select>',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?'aria-required=”true”':”,
    selected($day, ”, false),
    $options_day);
    
    // Dropdown => Month.
    $eng_months = array( 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' );
    $months = array(
    __( 'January', 'buddypress' ),
    __( 'February', 'buddypress' ),
    __( 'March', 'buddypress' ),
    __( 'April', 'buddypress' ),
    __( 'May', 'buddypress' ),
    __( 'June', 'buddypress' ),
    __( 'July', 'buddypress' ),
    __( 'August', 'buddypress' ),
    __( 'September', 'buddypress' ),
    __( 'October', 'buddypress' ),
    __( 'November', 'buddypress' ),
    __( 'December', 'buddypress' )
    );
    $options_month = ”;
    for ($i=0; $i<12; ++$i) {
    $options_month .= sprintf('<option value=”%s”%s>%s</option>',
    $eng_months[$i],
    selected( $month, $eng_months[$i], false ),
    $months[$i]);
    }
    $input .= sprintf('<select name=”%s_month” id=”%s_month”%s><option value=””%s>——</option>%s</select>',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?'aria-required=”true”':”,
    selected($month, ”, false),
    $options_month);
    
    // Dropdown => Year.
    $birthdate_start_year = date('Y')-1;
    $options_year = ”;
    for ($i=$birthdate_start_year; $i>1901; $i–) {
    $options_year .= sprintf('<option value=”%s”%s>%s</option>',
    $i,
    selected($year, $i, false),
    $i);
    }
    $input .= sprintf('<select name=”%s_year” id=”%s_year”%s><option value=””%s>—-</option>%s</select>',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?'aria-required=”true” required=”required”':”,
    selected($year, ”, false),
    $options_year);
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    ?>
    </div>
    <?php
    }
    elseif ( bp_get_the_profile_field_type() == 'email' ) {
    ?>
    <div class=”input-email”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    $input = sprintf('<input type=”email” name=”%s” id=”%s”%s class=”input” value=”%s” placeholder=”%s” />',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”,
    bp_get_the_profile_field_edit_value(),
    __('example@mail.com', 'bxcft'));
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    ?>
    </div>
    <?php
    }
    elseif ( bp_get_the_profile_field_type() == 'web' ) {
    ?>
    <div class=”input-web”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    $input = sprintf('<input type=”url” name=”%s” id=”%s”%s class=”input” value=”%s” placeholder=”%s” />',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”,
    bp_get_the_profile_field_edit_value(),
    __('http://yourwebsite.com', 'bxcft'));
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    ?>
    </div>
    <?php
    }
    elseif ( bp_get_the_profile_field_type() == 'datepicker' ) {
    ?>
    <div class=”input-datepicker”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    $input = sprintf('<input type=”date” name=”%s” id=”%s”%s class=”input” value=”%s” />',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”,
    bp_get_the_profile_field_edit_value());
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    ?>
    </div>
    <?php
    }
    elseif ( bp_get_the_profile_field_type() == 'select_custom_post_type' ) {
    ?>
    <div class=”input-custom-post-type”>
    <?php
    $custom_post_type_selected = BP_XProfile_ProfileData::get_value_byid( $field->id );
    if ( isset( $_POST['field_' . $field->id] ) && $_POST['field_' . $field->id] != ” ) {
    if ( !empty( $_POST['field_' . $field->id] ) ) {
    $custom_post_type_selected = $_POST['field_' . $field->id];
    }
    }
    if (is_null($custom_post_type_selected)) {
    $custom_post_type_selected = array();
    }
    // Get field's data.
    $field_data = new BP_XProfile_Field($field->id);
    // Get the childs of field
    $childs = $field_data->get_children();
    if (isset($childs) && count($childs) > 0 && is_object($childs[0])) {
    // Get the name of custom post type.
    $custom_post_type = $childs[0]->name;
    // Get the posts of custom post type.
    $loop = new WP_Query(array('posts_per_page' => -1, 'post_type' => $custom_post_type, 'orderby' => 'title', 'order' => 'ASC' ));
    
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    $options_posts = ”;
    foreach ($loop->posts as $post) {
    $options_posts .= sprintf('<option value=”%s”%s>%s</option>',
    $post->ID,
    ($custom_post_type_selected==$post->ID)?' selected=”selected”':”,
    $post->post_title);
    }
    $input = sprintf('<select name=”%s” id=”%s”%s class=”select”><option value=””>%s</option>%s</select>',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”,
    __('Select…', 'bxcft'),
    $options_posts);
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    } else {
    _e('There is no custom post type selected.', 'bxcft');
    }
    ?>
    </div>
    <?php
    }
    elseif ( bp_get_the_profile_field_type() == 'multiselect_custom_post_type' ) {
    ?>
    <div class=”input-custom-post-type-multi”>
    <?php
    $custom_post_type_selected = maybe_unserialize(BP_XProfile_ProfileData::get_value_byid( $field->id ));
    if ( isset( $_POST['field_' . $field->id] ) && $_POST['field_' . $field->id] != ” ) {
    if ( !empty( $_POST['field_' . $field->id] ) ) {
    $custom_post_type_selected = $_POST['field_' . $field->id];
    }
    }
    // Get field's data.
    $field_data = new BP_XProfile_Field($field->id);
    // Get the childs of field
    $childs = $field_data->get_children();
    if (isset($childs) && $childs && count($childs) > 0 && is_object($childs[0])) {
    // Get the name of custom post type.
    $custom_post_type = $childs[0]->name;
    // Get the posts of custom post type.
    $loop = new WP_Query(array('posts_per_page' => -1, 'post_type' => $custom_post_type, 'orderby' => 'title', 'order' => 'ASC' ));
    
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    $options_posts = ”;
    foreach ($loop->posts as $post) {
    $options_posts .= sprintf('<option value=”%s”%s>%s</option>',
    $post->ID,
    (!empty($custom_post_type_selected) &&in_array($post->ID, $custom_post_type_selected))?' selected=”selected”':”,
    $post->post_title);
    }
    $input = sprintf('<select name=”%s[]” id=”%s”%s class=”select” multiple=”multiple”><option value=””>%s</option>%s</select>',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”,
    __('Select…', 'bxcft'),
    $options_posts);
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    } else {
    _e('There is no custom post type selected.', 'bxcft');
    }
    ?>
    </div>
    <?php
    }
    elseif (bp_get_the_profile_field_type() == 'checkbox_acceptance') {
    ?>
    <div class=”checkbox-acceptance”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    $input = sprintf('<input type=”checkbox” name=”%s” id=”%s”%s class=”checkbox” value=”1″%s />%s',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”,
    bp_get_the_profile_field_edit_value()?' checked=”checked”':”,
    bp_get_the_profile_field_description());
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    $field_description = ”;
    ?>
    </div>
    <?php
    }
    elseif (bp_get_the_profile_field_type() == 'image') {
    ?>
    <div class=”input-image”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    if (bp_get_the_profile_field_edit_value() != ”) {
    $actual_image = sprintf('%s<label for=”%s_deleteimg”><input type=”checkbox” name=”%s_deleteimg” id=”%s_deleteimg” value=”1″ />%s</label><input type=”hidden” name=”%s_hiddenimg” id=”%s_hiddenimg” value=”%s” />',
    $uploads['baseurl'].bp_get_the_profile_field_edit_value(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    __('Check this to delete this image', 'bxcft'),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_edit_value());
    } else {
    $actual_image = ”;
    }
    $input = sprintf('<input type=”file” name=”%s” id=”%s”%s />',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”);
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    
    echo apply_filters('bxcft_field_actual_image', $actual_image, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_edit_value());
    ?>
    <script type=”text/javascript”>
    jQuery('#profile-edit-form').attr('enctype', 'multipart/form-data');
    </script>
    </div>
    <?php
    }
    elseif (bp_get_the_profile_field_type() == 'file') {
    ?>
    <div class=”input-file”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    if (bp_get_the_profile_field_edit_value() != ”) {
    $actual_file = sprintf('%s<label for=”%s_deletefile”><input type=”checkbox” name=”%s_deletefile” id=”%s_deletefile” value=”1″ />%s</label><input type=”hidden” name=”%s_hiddenfile” id=”%s_hiddenfile” value=”%s” />',
    apply_filters('bxcft_show_download_file_link', '' . __('Download file', 'bxcft') . '', bp_get_the_profile_field_type(), bp_get_the_profile_field_id(), bp_get_the_profile_field_edit_value()),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    __('Check this to delete this file', 'bxcft'),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_edit_value());
    } else {
    $actual_file = ”;
    }
    $input = sprintf('<input type=”file” name=”%s” id=”%s”%s />',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”);
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    
    echo apply_filters('bxcft_field_actual_file', $actual_file, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_edit_value());
    ?>
    <script type=”text/javascript”>
    jQuery('#profile-edit-form').attr('enctype', 'multipart/form-data');
    </script>
    </div>
    <?php
    }
    elseif (bp_get_the_profile_field_type() == 'color') {
    $color_selected = bp_get_the_profile_field_edit_value();
    if (strpos($color_selected, '#') === false) {
    $color_selected = '#'.$color_selected;
    }
    ?>
    <div class=”input-color”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    $input = sprintf('<input type=”color” name=”%s” id=”%s”%s class=”input” value=”%s” />',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”,
    $color_selected);
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    ?>
    </div>
    <script>
    if (!Modernizr.inputtypes.color) {
    // No html5 field colorpicker => Calling jscolor.
    jQuery('input#<?php bp_the_profile_field_input_name() ?>').addClass('color');
    }
    </script>
    <?php
    }
    elseif (bp_get_the_profile_field_type() == 'number') {
    ?>
    <div class=”input-number”>
    <?php
    $label = sprintf('<label class=”label-form%s” for=”%s”>%s%s</label>',
    bp_get_the_profile_field_is_required()?' required':”,
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_name(),
    bp_get_the_profile_field_is_required()?' '.__('(required)', 'buddypress'):”);
    
    $input = sprintf('<input type=”number” name=”%s” id=”%s”%s class=”input” value=”%s” />',
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_input_name(),
    bp_get_the_profile_field_is_required()?' aria-required=”true” required=”required”':”,
    bp_get_the_profile_field_edit_value());
    
    echo apply_filters('bxcft_field_label', $label, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_name(), bp_get_the_profile_field_is_required());
    
    do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' );
    
    echo apply_filters('bxcft_field_input', $input, bp_get_the_profile_field_id(), bp_get_the_profile_field_type(), bp_get_the_profile_field_input_name(), bp_get_the_profile_field_is_required());
    ?>
    </div>
    <?php
    }
    
    $output = ob_get_contents();
    ob_end_clean();
    
    if ($echo) {
    echo $output;
    return;
    }
    return $output;
    }
    
    /*
    * Buddypress v1.7 has better hook bp_custom_profile_edit_fields_pre_visibility which shows fields before visibility settings.
    * In case buddypress previous version is installed, we use the other tag bp_custom_profile_edit_fields.
    */
    $version_bp = 0;
    $data = get_file_data(WP_PLUGIN_DIR . '/buddypress/bp-loader.php', array('Version'));
    if (isset($data) && count($data) > 0 && $data[0] != ”)
    $version_bp = (float)$data[0];
    if ($version_bp >= 1.7)
    add_action( 'bp_custom_profile_edit_fields_pre_visibility', 'bxcft_edit_render_new_xprofile_field' );
    else
    add_action( 'bp_custom_profile_edit_fields', 'bxcft_edit_render_new_xprofile_field' );
    
    function bxcft_get_field_value( $value=”, $type=”, $id=”) {
    
    $value_to_return = $value;
    
    if ($value_to_return == ”)
    return apply_filters('bxcft_show_field_value', $value_to_return, $type, $id, $value);
    
    $uploads = wp_upload_dir();
    
    if ($type == 'birthdate') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $field = new BP_XProfile_Field($id);
    // Get children.
    $childs = $field->get_children();
    $show_age = false;
    if (isset($childs) && $childs && count($childs) > 0 && is_object($childs[0])) {
    // Get the name of custom post type.
    if ($childs[0]->name == 'show_age')
    $show_age = true;
    }
    if ($value != ”) {
    if ($show_age) {
    $value_to_return = '<p>'.floor((time() – strtotime($value))/31556926).'</p>';
    } else {
    $value_to_return = '<p>'.date_i18n(get_option('date_format') ,strtotime($value) ).'</p>';
    }
    }
    }
    elseif ($type == 'datepicker') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.date_i18n(get_option('date_format') ,strtotime($value) ).'</p>';
    }
    elseif ($type == 'email') {
    if (strpos($value, 'mailto') === false) {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.$value.'</p>';
    }
    }
    elseif ($type == 'web') {
    if (strpos($value, 'href=') === false) {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.$value.'</p>';
    }
    }
    elseif ($type == 'select_custom_post_type') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    // Get field's data.
    $field = new BP_XProfile_Field($id);
    // Get children.
    $childs = $field->get_children();
    if (isset($childs) && count($childs) > 0) {
    // Get the name of custom post type.
    $custom_post_type = $childs[0]->name;
    }
    $post = get_post($value);
    if ($post->post_type == $custom_post_type) {
    $value_to_return = '<p>'.$post->post_title.'</p>';
    } else {
    // Custom post type is not the same.
    $value_to_return = '<p>–</p>';
    }
    }
    elseif ($type == 'multiselect_custom_post_type') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    // Get field's data.
    $field = new BP_XProfile_Field($id);
    // Get children.
    $childs = $field->get_children();
    if (isset($childs) && count($childs) > 0 && is_object($childs[0])) {
    // Get the name of custom post type.
    $custom_post_type = $childs[0]->name;
    } else {
    $custom_post_type = ”;
    }
    $values = explode(“,”, $value);
    $cad = ”;
    foreach ($values as $v) {
    $post = get_post($v);
    if ($post->post_type == $custom_post_type) {
    if ($cad == ”)
    $cad .= '<ul class=”list_custom_post_type”>';
    $cad .= '
    '.$post->post_title.'
    
    ';
    }
    }
    if ($cad != ”) {
    $cad .= '';
    $value_to_return = '<p>'.$cad.'</p>';
    } else {
    $value_to_return = '<p>–</p>';
    }
    } elseif ($type == 'checkbox_acceptance') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.(($value==1)?__('yes', 'bxcft'):__('no', 'bxcft')).'</p>';
    } elseif ($type == 'image') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p></p>';
    } elseif ($type == 'file') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.__('Download file', 'bxcft').'</p>';
    } elseif ($type == 'color') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    if (strpos($value, '#') === false) {
    $value = '#'.$value;
    }
    $value_to_return = '<p>'.$value.'</p>';
    }
    // Number nothing to do.
    
    return apply_filters('bxcft_show_field_value', $value_to_return, $type, $id, $value);
    }
    add_filter( 'bp_get_the_profile_field_value', 'bxcft_get_field_value', 15, 3);
    
    /**
    * Filter for those who use xprofile_get_field_data instead of get_field_value.
    * @param type $value
    * @param type $field_id
    * @param type $user_id
    * @return string
    */
    function bxcft_get_field_data($value, $field_id) {
    
    $value_to_return = $value;
    $field = new BP_XProfile_Field($field_id);
    
    if ($value_to_return == ”)
    return apply_filters('bxcft_show_field_value', $value_to_return, $field->type, $field_id, $value);
    
    $uploads = wp_upload_dir();
    if ($field->type == 'birthdate') {
    // Get children.
    $childs = $field->get_children();
    $show_age = false;
    if (isset($childs) && $childs && count($childs) > 0 && is_object($childs[0])) {
    if ($childs[0]->name == 'show_age')
    $show_age = true;
    }
    if ($value != ”) {
    if ($show_age) {
    $value_to_return = '<p>'.floor((time() – strtotime($value))/31556926).'</p>';
    } else {
    $value_to_return = '<p>'.date_i18n(get_option('date_format') ,strtotime($value) ).'</p>';
    }
    }
    }
    elseif ($field->type == 'datepicker') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.date_i18n(get_option('date_format') ,strtotime($value) ).'</p>';
    }
    elseif ($field->type == 'email') {
    if (strpos($value, 'mailto') === false) {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.$value.'</p>';
    }
    }
    elseif ($field->type == 'web') {
    if (strpos($value, 'href=') === false) {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.$value.'</p>';
    }
    }
    elseif ($field->type == 'select_custom_post_type') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    // Get children.
    $childs = $field->get_children();
    if (isset($childs) && count($childs) > 0) {
    // Get the name of custom post type.
    $custom_post_type = $childs[0]->name;
    }
    $post = get_post($value);
    if ($post->post_type == $custom_post_type) {
    $value_to_return = '<p>'.$post->post_title.'</p>';
    } else {
    // Custom post type is not the same.
    $value_to_return = '<p>–</p>';
    }
    }
    elseif ($field->type == 'multiselect_custom_post_type') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    // Get children.
    $childs = $field->get_children();
    $values = explode(“,”, $value);
    $cad = ”;
    if (isset($childs) && is_array($childs) && count($childs) > 0) {
    // Get the name of custom post type.
    $custom_post_type = $childs[0]->name;
    
    foreach ($values as $v) {
    $post = get_post($v);
    if ($post->post_type == $custom_post_type) {
    if ($cad == ”)
    $cad .= '<ul class=”list_custom_post_type”>';
    $cad .= '
    '.$post->post_title.'
    
    ';
    }
    }
    }
    if ($cad != ”) {
    $cad .= '';
    $value_to_return = '<p>'.$cad.'</p>';
    } else {
    $value_to_return = '<p>–</p>';
    }
    } elseif ($field->type == 'checkbox_acceptance') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.(($value==1)?__('yes', 'bxcft'):__('no', 'bxcft')).'</p>';
    } elseif ($field->type == 'image') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p></p>';
    } elseif ($field->type == 'file') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    $value_to_return = '<p>'.__('Download file', 'bxcft').'</p>';
    } elseif ($field->type == 'color') {
    $value = str_replace(“<p>”, “”, $value);
    $value = str_replace(“</p>”, “”, $value);
    if (strpos($value, '#') === false) {
    $value = '#'.$value;
    }
    $value_to_return = '<p>'.$value.'</p>';
    }
    // Number nothing to do.
    
    return apply_filters('bxcft_show_field_value', $value_to_return, $field->type, $field_id, $value);
    
    }
    add_filter( 'xprofile_get_field_data', 'bxcft_get_field_data', 15, 2);
    
    /**
    * Function replacing the original buddypress filter.
    * @param type $field_value
    * @param type $field_type
    * @return string
    */
    function bxcft_xprofile_filter_link_profile_data( $field_value, $field_type = 'textbox' ) {
    if ( 'datebox' == $field_type || 'email' == $field_type || 'birthdate' == $field_type ||
    'datepicker' == $field_type || 'web' == $field_type || 'select_custom_post_type' == $field_type ||
    'multiselect_custom_post_type' == $field_type || 'image' == $field_type || 'file' == $field_type ||
    'color' == $field_type || 'number' == $field_type)
    return $field_value;
    
    if ( !strpos( $field_value, ',' ) && ( count( explode( ' ', $field_value ) ) > 5 ) )
    return $field_value;
    
    $values = explode( ',', $field_value );
    
    if ( !empty( $values ) ) {
    foreach ( (array) $values as $value ) {
    $value = trim( $value );
    
    // If the value is a URL, skip it and just make it clickable.
    if ( preg_match( '@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', $value ) ) {
    $new_values[] = make_clickable( $value );
    
    // Is not clickable
    } else {
    
    // More than 5 spaces
    if ( count( explode( ' ', $value ) ) > 5 ) {
    $new_values[] = $value;
    
    // Less than 5 spaces
    } else {
    $search_url = add_query_arg( array( 's' => urlencode( $value ) ), bp_get_members_directory_permalink() );
    $new_values[] = '' . $value . '';
    }
    }
    }
    
    $values = implode( ', ', $new_values );
    }
    
    return $values;
    }
    
    /**
    * Adding js for admin.
    * @param type $hook
    * @return type
    */
    function bxcft_add_js($hook) {
    if ('users_page_bp-profile-setup' != $hook && 'buddypress_page_bp-profile-setup' != $hook)
    return;
    
    wp_enqueue_script( 'bxcft-js', plugins_url('assets/js/addfields.js', __FILE__), array( 'jquery' ), '1.5.7′ );
    $params = array(
    'birthdate' => __('Birthdate', 'bxcft'),
    'email' => __('Email', 'bxcft'),
    'web' => __('Website', 'bxcft'),
    'datepicker' => __('Datepicker', 'bxcft'),
    'select_custom_post_type' => __('Custom Post Type Selector', 'bxcft'),
    'multiselect_custom_post_type' => __('Custom Post Type Multiselector', 'bxcft'),
    'checkbox_acceptance' => __('Checkbox acceptance', 'bxcft'),
    'image' => __('Image', 'bxcft'),
    'file' => __('File', 'bxcft'),
    'color' => __('Color', 'bxcft'),
    'number' => __('Number', 'bxcft')
    );
    wp_localize_script('bxcft-js', 'params', $params);
    }
    add_action( 'admin_enqueue_scripts', 'bxcft_add_js');
    
    /**
    * Adding js for edit form.
    */
    function bxcft_add_js_public() {
    // Modernizr to test html5 fields.
    wp_enqueue_script( 'bxcft-modernizr', plugins_url('assets/js/modernizr.js', __FILE__), array( 'jquery' ), '2.6.2′ );
    // Plugin jscolor fallback colorpicker.
    wp_enqueue_script( 'bxcft-jscolor', plugins_url('assets/js/jscolor/jscolor.js', __FILE__), array( 'bxcft-modernizr' ), '1.4.1′ );
    }
    add_action( 'wp_enqueue_scripts', 'bxcft_add_js_public');
    
    function bxcft_save_custom_option($field) {
    global $bp, $wpdb;
    
    if ( 'select_custom_post_type' == $field->type ) {
    $post_option = !empty( $_POST['select_custom_post_type_option']) ? $_POST['select_custom_post_type_option'] : ”;
    if ( ” != $post_option ) {
    if ( !empty( $field->id ) ) {
    $field_id = $field->id;
    } else {
    $field_id = $wpdb->insert_id;
    }
    if ( !$wpdb->query( $wpdb->prepare( “INSERT INTO {$bp->profile->table_name_fields} (group_id, parent_id, type, name, description, is_required, option_order, is_default_option) VALUES (%d, %d, 'custom_post_type_option', %s, ”, 0, %d, %d)”, $field->group_id, $field_id, $post_option, 1, 1 ) ) ) {
    return false;
    }
    }
    }
    elseif ( 'multiselect_custom_post_type' == $field->type) {
    $post_option = !empty( $_POST['multiselect_custom_post_type_option']) ? $_POST['multiselect_custom_post_type_option'] : ”;
    if ( ” != $post_option ) {
    if ( !empty( $field->id ) ) {
    $field_id = $field->id;
    } else {
    $field_id = $wpdb->insert_id;
    }
    if ( !$wpdb->query( $wpdb->prepare( “INSERT INTO {$bp->profile->table_name_fields} (group_id, parent_id, type, name, description, is_required, option_order, is_default_option) VALUES (%d, %d, 'multi_custom_post_type_option', %s, ”, 0, %d, %d)”, $field->group_id, $field_id, $post_option, 1, 1 ) ) ) {
    return false;
    }
    }
    }
    elseif ( 'birthdate' == $field->type) {
    $post_option = !empty( $_POST['birthdate_option']) ? $_POST['birthdate_option'] : ”;
    if ( ” != $post_option ) {
    if ( !empty( $field->id ) ) {
    $field_id = $field->id;
    } else {
    $field_id = $wpdb->insert_id;
    }
    if ( !$wpdb->query( $wpdb->prepare( “INSERT INTO {$bp->profile->table_name_fields} (group_id, parent_id, type, name, description, is_required, option_order, is_default_option) VALUES (%d, %d, 'birthdate_option', %s, ”, 0, %d, %d)”, $field->group_id, $field_id, $post_option, 1, 1 ) ) ) {
    return false;
    }
    }
    }
    
    }
    add_action( 'xprofile_field_after_save', 'bxcft_save_custom_option');
    
    function bxcft_delete_field_custom($field) {
    if ($field->type == 'select_custom_post_type' || $field->type == 'multiselect_custom_post_type'
    || $field->type == 'birthdate') {
    $field->delete_children();
    }
    }
    add_action( 'xprofile_fields_deleted_field', 'bxcft_delete_field_custom');
    
    function bxcft_selected_field($field) {
    $childs = $field->get_children();
    if (isset($childs) && count($childs) > 0 && is_object($childs[0]) && $field->type == 'select_custom_post_type') {
    $selected_option = $childs[0]->name;
    } else {
    $selected_option = null;
    }
    
    if (!empty($_POST['select_custom_post_type_option'])) {
    $selected_option = $_POST['select_custom_post_type_option'];
    }
    ?>
    <div style=”display: none; margin-left: 15px;” class=”options-box” id=”select_custom_post_type”>
    <h4><?php _e('Please, select custom post type', 'bxcft'); ?></h4>
    <p>
    <?php _e('Custom Post Type:', 'bxcft'); ?>
    <select name=”select_custom_post_type_option” id=”select_custom_post_type_option”>
    <?php
    $args = array(
    'public' => true,
    '_builtin' => false
    );
    $custom_post_types = get_post_types($args);
    foreach ($custom_post_types as $post_type) :
    ?>
    <option value=”<?php echo $post_type; ?>” <?php if ($selected_option == $post_type): ?>selected=”selected”<?php endif; ?>>
    <?php echo $post_type; ?>
    </option>
    <?php endforeach; ?>
    </select>
    </p>
    </div>
    <?php
    if (isset($childs) && count($childs) > 0 && is_object($childs[0]) && $field->type == 'multiselect_custom_post_type') {
    $selected_option = $childs[0]->name;
    } else {
    $selected_option = null;
    }
    
    if (!empty($_POST['multiselect_custom_post_type_option'])) {
    $selected_option = $_POST['multiselect_custom_post_type_option'];
    }
    ?>
    <div style=”display: none; margin-left: 15px;” class=”options-box” id=”multiselect_custom_post_type”>
    <h4><?php _e('Please, select custom post type', 'bxcft'); ?></h4>
    <p>
    <?php _e('Custom Post Type:', 'bxcft'); ?>
    <select name=”multiselect_custom_post_type_option” id=”multiselect_custom_post_type_option”>
    <?php
    foreach ($custom_post_types as $post_type) :
    ?>
    <option value=”<?php echo $post_type; ?>” <?php if ($selected_option == $post_type): ?>selected=”selected”<?php endif; ?>>
    <?php echo $post_type; ?>
    </option>
    <?php endforeach; ?>
    </select>
    </p>
    </div>
    <?php
    if (isset($childs) && $childs && count($childs) > 0 && is_object($childs[0]) && $field->type == 'birthdate') {
    $selected_option = $childs[0]->name;
    } else {
    $selected_option = null;
    }
    
    if (!empty($_POST['birthdate_option'])) {
    $selected_option = $_POST['birthdate_option'];
    }
    ?>
    <div style=”display: none; margin-left: 15px;” class=”options-box” id=”birthdate”>
    <h4><?php _e('Show age (hide birthdate)', 'bxcft'); ?></h4>
    <p>
    <?php _e('Check this if you want to show age instead of birthdate:', 'bxcft'); ?>
    <input type=”checkbox” name=”birthdate_option” value=”show_age” id=”birthdate_option”
    <?php if ($selected_option == 'show_age') : ?>checked=”checked”<?php endif; ?>/>
    </p>
    </div>
    <?php if (!is_null($field->type)) : ?>
    <script type=”text/javascript”>
    jQuery(document).ready(function() {
    bxcft.select('<?php echo $field->type; ?>');
    });
    </script>
    <?php
    endif;
    }
    add_action('xprofile_field_additional_options', 'bxcft_selected_field');
    
    /**
    * This filter add a new level of visibility. Hide this field for everyone. Nobody can see.
    * @param type $visibility_levels
    * @return type
    */
    function bxcft_xprofile_get_visibility_levels($visibility_levels) {
    $visibility_levels['nobody'] = array('id' => 'nobody', 'label' => __('Nobody', 'bxcft'));
    return $visibility_levels;
    }
    add_filter('bp_xprofile_get_visibility_levels', 'bxcft_xprofile_get_visibility_levels', 1);
    
    /**
    * This filter is necessary to hide fields when 'nobody' new visibility is selected.
    * @param type $hidden_fields
    * @param type $displayed_user_id
    * @param type $current_user_id
    * @return type
    */
    function bxcft_xprofile_get_hidden_fields_for_user($hidden_fields, $displayed_user_id=0, $current_user_id=0) {
    if ( !$displayed_user_id ) {
    $displayed_user_id = bp_displayed_user_id();
    }
    
    if ( !$displayed_user_id ) {
    return array();
    }
    
    if ( !$current_user_id ) {
    $current_user_id = bp_loggedin_user_id();
    }
    
    // @todo – This is where you'd swap out for current_user_can() checks
    $new_hidden_fields = array();
    
    if ( $current_user_id ) {
    // Current user is logged in
    if ( $displayed_user_id == $current_user_id ) {
    // If you're viewing your own profile, nothing's private
    
    } elseif ( bp_is_active( 'friends' ) && friends_check_friendship( $displayed_user_id, $current_user_id ) ) {
    // If the current user and displayed user are friends, so exclude nobody
    $hidden_levels[] = 'nobody';
    $new_hidden_fields = bp_xprofile_get_fields_by_visibility_levels( $displayed_user_id, $hidden_levels );
    
    } else {
    // current user is logged-in but not friends, so exclude friends-only
    $hidden_levels[] = 'nobody';
    
    $new_hidden_fields = bp_xprofile_get_fields_by_visibility_levels( $displayed_user_id, $hidden_levels );
    }
    
    } else {
    // Current user is not logged in, so exclude friends-only and loggedin
    $hidden_levels[] = 'nobody';
    
    $new_hidden_fields = bp_xprofile_get_fields_by_visibility_levels( $displayed_user_id, $hidden_levels );
    }
    
    if (is_array($new_hidden_fields))
    $hidden_fields = array_merge($hidden_fields, $new_hidden_fields);
    
    return $hidden_fields;
    }
    add_filter('bp_xprofile_get_hidden_fields_for_user', 'bxcft_xprofile_get_hidden_fields_for_user', 10, 3);
    
    /**
    * Update profile
    */
    function bxcft_updated_profile($bp_user_id, $posted_field_ids, $errors) {
    
    global $bp;
    
    // There are errors
    if ( empty( $errors ) ) {
    
    // Reset the errors var
    $errors = false;
    
    // Now we've checked for required fields, lets save the values.
    foreach ( (array) $posted_field_ids as $field_id ) {
    
    // Certain types of fields (checkboxes, multiselects) may come through empty. Save them as an empty array so that they don't get overwritten by the default on the next edit.
    if ( empty( $_POST['field_' . $field_id] ) )
    $value = array();
    else
    $value = $_POST['field_' . $field_id];
    
    // Handles delete checkbox.
    $uploads = wp_upload_dir();
    $field = new BP_XProfile_Field($field_id);
    if ($field->type == 'image' && isset($_POST['field_'.$field_id.'_deleteimg']) && $_POST['field_'.$field_id.'_deleteimg']) {
    if (file_exists($uploads['basedir'] . $_POST['field_'.$field_id.'_hiddenimg'])) {
    unlink($uploads['basedir'] . $_POST['field_'.$field_id.'_hiddenimg']);
    }
    $value = array();
    }
    if ($field->type == 'file' && isset($_POST['field_'.$field_id.'_deletefile']) && $_POST['field_'.$field_id.'_deletefile']) {
    if (file_exists($uploads['basedir'] . $_POST['field_'.$field_id.'_hiddenfile'])) {
    unlink($uploads['basedir'] . $_POST['field_'.$field_id.'_hiddenfile']);
    }
    $value = array();
    }
    
    // Handles image field type saving.
    if (isset($_FILES['field_'.$field_id]) && $_FILES['field_'.$field_id]['size'] > 0) {
    $field = new BP_XProfile_Field($field_id);
    if ($field->type == 'image') {
    $ext_allowed = array('jpg','jpeg','gif','png');
    apply_filters('images_ext_allowed', $ext_allowed);
    } elseif ($field->type == 'file') {
    $ext_allowed = array('doc','docx','pdf');
    apply_filters('files_ext_allowed', $ext_allowed);
    }
    
    $ext = strtolower(substr($_FILES['field_'.$field_id]['name'], strrpos($_FILES['field_'.$field_id]['name'],'.')+1));
    if (!in_array($ext, $ext_allowed)) {
    $errors = true;
    } else {
    require_once( ABSPATH . '/wp-admin/includes/file.php' );
    add_filter( 'upload_dir', 'bxcft_profile_upload_dir', 10, 1 );
    $_POST['action'] = 'wp_handle_upload';
    $uploaded_file = wp_handle_upload( $_FILES['field_'.$field_id] );
    $uploads = wp_upload_dir();
    $value = str_replace($uploads['baseurl'], ”, $uploaded_file['url']);
    }
    } else {
    if ($field->type == 'image' && (!isset($_POST['field_'.$field_id.'_deleteimg']) || !$_POST['field_'.$field_id.'_deleteimg']) && isset($_POST['field_'.$field_id.'_hiddenimg']) && $_POST['field_'.$field_id.'_hiddenimg'] != ”) {
    $value = $_POST['field_'.$field_id.'_hiddenimg'];
    }
    elseif ($field->type == 'file' && (!isset($_POST['field_'.$field_id.'_deletefile']) || !$_POST['field_'.$field_id.'_deletefile']) && isset($_POST['field_'.$field_id.'_hiddenfile']) && $_POST['field_'.$field_id.'_hiddenfile'] != ”) {
    $value = $_POST['field_'.$field_id.'_hiddenfile'];
    }
    }
    if ( !xprofile_set_field_data( $field_id, $bp_user_id, $value ) ) {
    $errors = true;
    } else {
    do_action( 'xprofile_profile_field_data_updated', $field_id, $value );
    }
    }
    }
    }
    add_action('xprofile_updated_profile', 'bxcft_updated_profile', 10, 3);
    
    function bxcft_signup_user($user_id, $user_login, $user_password, $user_email, $usermeta)
    {
    // Set any profile data
    if ( bp_is_active( 'xprofile' ) ) {
    if ( !empty( $usermeta['profile_field_ids'] ) ) {
    $profile_field_ids = explode( ',', $usermeta['profile_field_ids'] );
    
    foreach( (array) $profile_field_ids as $field_id ) {
    
    if (!empty($usermeta["field_{$field_id}"]))
    $value = $usermeta["field_{$field_id}"];
    else
    $value = array();
    
    // Handles delete checkbox.
    $uploads = wp_upload_dir();
    $field = new BP_XProfile_Field($field_id);
    if ($field->type == 'image' && isset($_POST['field_'.$field_id.'_deleteimg']) && $_POST['field_'.$field_id.'_deleteimg']) {
    if (file_exists($uploads['basedir'] . $_POST['field_'.$field_id.'_hiddenimg'])) {
    unlink($uploads['basedir'] . $_POST['field_'.$field_id.'_hiddenimg']);
    }
    $value = array();
    }
    if ($field->type == 'file' && isset($_POST['field_'.$field_id.'_deletefile']) && $_POST['field_'.$field_id.'_deletefile']) {
    if (file_exists($uploads['basedir'] . $_POST['field_'.$field_id.'_hiddenfile'])) {
    unlink($uploads['basedir'] . $_POST['field_'.$field_id.'_hiddenfile']);
    }
    $value = array();
    }
    
    // Handles image field type saving.
    if (isset($_FILES['field_'.$field_id]) && $_FILES['field_'.$field_id]['size'] > 0) {
    $field = new BP_XProfile_Field($field_id);
    if ($field->type == 'image') {
    $ext_allowed = array('jpg','jpeg','gif','png');
    apply_filters('images_ext_allowed', $ext_allowed);
    } elseif ($field->type == 'file') {
    $ext_allowed = array('doc','docx','pdf');
    apply_filters('files_ext_allowed', $ext_allowed);
    }
    
    $ext = strtolower(substr($_FILES['field_'.$field_id]['name'], strrpos($_FILES['field_'.$field_id]['name'],'.')+1));
    if (in_array($ext, $ext_allowed)) {
    require_once( ABSPATH . '/wp-admin/includes/file.php' );
    add_filter( 'upload_dir', 'bxcft_profile_upload_dir', 10, 1 );
    $_POST['action'] = 'wp_handle_upload';
    $uploaded_file = wp_handle_upload( $_FILES['field_'.$field_id] );
    $destino = str_replace('0′, $user_id, $uploaded_file['file']);
    $aux = explode(“/”, $destino);
    if (!file_exists(str_replace('/'.$aux[count($aux)-1], ”, $destino))) {
    mkdir(str_replace('/'.$aux[count($aux)-1], ”, $destino));
    }
    copy($uploaded_file['file'], $destino);
    unlink($uploaded_file['file']);
    $value = str_replace($uploads['baseurl'], ”, str_replace('0′, $user_id, $uploaded_file['url']));
    }
    } else {
    if ($field->type == 'image' && (!isset($_POST['field_'.$field_id.'_deleteimg']) || !$_POST['field_'.$field_id.'_deleteimg']) && isset($_POST['field_'.$field_id.'_hiddenimg']) && $_POST['field_'.$field_id.'_hiddenimg'] != ”) {
    $value = $_POST['field_'.$field_id.'_hiddenimg'];
    }
    elseif ($field->type == 'file' && (!isset($_POST['field_'.$field_id.'_deletefile']) || !$_POST['field_'.$field_id.'_deletefile']) && isset($_POST['field_'.$field_id.'_hiddenfile']) && $_POST['field_'.$field_id.'_hiddenfile'] != ”) {
    $value = $_POST['field_'.$field_id.'_hiddenfile'];
    }
    }
    
    xprofile_set_field_data( $field_id, $user_id, $value );
    }
    }
    }
    }
    add_action('bp_core_signup_user', 'bxcft_signup_user', 10, 5);
    
    function bxcft_profile_upload_dir( $upload_dir, $user_id=0 ) {
    if ($user_id == 0)
    $user_id = bp_displayed_user_id();
    $profile_subdir = '/profiles/' . $user_id;
    
    $upload_dir['path'] = $upload_dir['basedir'] . $profile_subdir;
    $upload_dir['url'] = $upload_dir['baseurl'] . $profile_subdir;
    $upload_dir['subdir'] = $profile_subdir;
    
    return $upload_dir;
    }
    
    /**
    * Replacing the buddypress filter link profile is it has the filter.
    * If user deactivated the filter, we don't add another filter.
    */
    function bxcft_remove_xprofile_links() {
    if (has_filter('bp_get_the_profile_field_value', 'xprofile_filter_link_profile_data')) {
    remove_filter( 'bp_get_the_profile_field_value', 'xprofile_filter_link_profile_data', 9, 2 );
    add_filter( 'bp_get_the_profile_field_value', 'bxcft_xprofile_filter_link_profile_data', 9, 2);
    }
    }
    add_action( 'bp_setup_globals', 'bxcft_remove_xprofile_links', 9999 );
    
    /**
    * This function only works if plugin bp-profile search is active.
    * @global type $bps_options
    * @param type $type
    * @return string
    */
    function bxcft_profile_field_type($type) {
    if (function_exists('is_plugin_active') && is_plugin_active('bp-profile-search/bps-main.php')
    || in_array( 'bp-profile-search/bps-main.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) )) {
    global $bps_options;
    $id = bp_get_the_profile_field_id ();
    
    if ( ((is_admin() && strpos($_SERVER['REQUEST_URI'], 'page=bp-profile-search'))
    || (isset($bps_options) && $bps_options['agerange'] == $id
    && isset($_POST['bp_profile_search']) && $_POST['bp_profile_search']))
    && $type == 'birthdate') {
    return 'datebox';
    }
    }
    
    return $type;
    }
    add_filter('bp_the_profile_field_type', 'bxcft_profile_field_type', 1);
    
    add_action('init', 'my_xprofile_links');
    function my_xprofile_links() {
    if (has_filter('bp_get_the_profile_field_value', 'xprofile_filter_link_profile_data')) {
    remove_filter( 'bp_get_the_profile_field_value', 'xprofile_filter_link_profile_data', 9 );
    }
    if (has_filter('bp_get_the_profile_field_value', 'bxcft_xprofile_filter_link_profile_data')) {
    remove_filter( 'bp_get_the_profile_field_value', 'bxcft_xprofile_filter_link_profile_data', 9);
    }
    add_filter( 'bp_get_the_profile_field_value', 'my_xprofile_filter_link_profile_data', 10, 2);
    }
    
    function my_xprofile_filter_link_profile_data( $field_value, $field_type = 'textbox' ) {
    if ( 'datebox' == $field_type )
    return $field_value;
    
    if ( !strpos( $field_value, ',' ) && ( count( explode( ' ', $field_value ) ) > 5 ) )
    return $field_value;
    
    $values = explode( ',', $field_value );
    
    if ( !empty( $values ) ) {
    foreach ( (array) $values as $value ) {
    $value = trim( $value );
    $new_values[] = make_clickable( $value );
    }
    $values = implode( ', ', $new_values );
    }
    return $values;
    }
    
    Marcella
    Participant

    I’m going to continue writing here as it seems to fit right now. I’m going to outline how I’ve approached BuddyPress theme development at my last iteration. Hopefully someone can see where they could jump in to help contribute to the creation of a new theme.

    Concepts
    Concepts have always been tough, I usually miss out some important aspect of the design. Like if I was designing a concept for the activity streams, I’d leave of the threaded comments aspect of BuddyPress. However I’ve gotten good at outlining some of the features in the concept stage. Usually I take a BuddyPress install using the Twenty Twelve theme and copy all of the components into a Photoshop document and cross-reference design like that.

    The concepts would be an iterative process, with the wealth of templates in BuddyPress designing them all in Photoshop first is very desirable but not very practical. I would love to have the time to really design all components in Photoshop first before moving into code.

    Templates
    Taking any Photoshop concepts and making them into templates usually is a static process for me, I’ve done the activity stream page design in Photoshop, I then use a boiler plate I have to rough out the html and css of this page. Again and iterative process. If I had 1 Photoshop file to work with, let’s say BuddyPress registration, I’d do the template of that in raw HTML and CSS.

    BuddyPress
    Taking those templates previously coded has been a bit of a pain for me, I write markup differently to how the bp-default theme shipped, so it really is a case of building these files from scratch. Dropping in the loops, the BuddyPress function calls and actions at each template iteration. This leaves for problems, but I’ve got it down well now and know how BuddyPress works. So it’s like building a WordPress theme on steroids. I’ve even spent a while taking the bp-default theme and removing all the markup it shipped with. This makes building new BuddyPress themes a whole bunch easier to shape. Although I’m still not perfect at this.

    Iteration
    The above workflow procedures have served me well in getting off the ground with BuddyPress theme development but they haven’t taken me the whole way. I end up failing to use the CASCADE that CSS offers and ultimately reside to the fact I have to repeat my self lots with CSS.

    The repetition I don’t fear, but the labour involved really does effect the overall fun in development and really the theme that had so much potential when building the activity stream and registration pages becomes a hard slog to getting something that works. Photoshop concepts suffer in design and the code suffers from bloat (hence my whole piece about designing all the concepts first).

    That’s it, in a nutshell. 🙂

    Marcella
    Participant

    I’ve tried numerous times to build a BuddyPress theme from scratch and always run into some troubles. It’s fun learning about BuddyPress but there is always something I leave out from the workflow which leads to problems with code bloat and unmanageable files.

    That said, I feel I have lots of good experience with BuddyPress (without the AJAX) that allows for a full featured BuddyPress theme to be built from scratch.

    However I’d like to build something really cool, something I can pick up and go for any BuddyPress needs… Even only WordPress… Sorta one theme to rule them all.

    I’ve gotten a little behind the times and responsive design isn’t where my skills are at, but would like to see a theme built that is written in such a way that should it be required it can be made responsive in the future.

    I typically start a project using the bare minimum from getskeleton.com to help with making a grid based layout, but really it’s obsolete after writing a few <section class=”twelve columns”><aside class=”four columns”>.

    That all said, I’m looking for someone who has a little time to work on this theme. Maybe 3 hours a day.

    It’s maybe something that when complete can be used for clients, or gaining new clients… It could be an open source project or even a premium theme. It could be used for personal endeavour such a hobby group or a club.

    I’m really excited about building a BuddyPress theme but not having anyone close who is like minded I feel contributes to the demise of any BuddyPress themes I start to build.

    With all of that out the way, if anyone reads this and would like to work together on a project like this I’d love to hear from you. Hopefully we’d have something super awesome to use for the future.

    #177157

    In reply to: Google Analytics

    blastblast
    Participant

    hey @henrywright,

    Why do you suggest the footer as opposed to the header? What is the difference?

    I also have the footer.php in my child theme folder. I removed the “Powered by WordPress” footer so currently there is no text as my footer if that makes a difference at all.

    Thanks

    #177153
    Trishan1000
    Participant

    Hi,

    I’ve read your post over the past couple of days as I was having the same problem and trying to find a solution after being stuck for weeks without any solutions or replies.
    I’ve finally found a solution that works for me and I hope it works for you.

    Deactivate BP 1.9.1 and delete it from your WP-admin page(I am not sure if you will loose your registered users etc – I didn’t). Go to the following buddy press link
    and download version 1.8.1. Install under your plugins section, activate and test to see if it works.

    Hope I helped, cheers.

    #177126
    TemporalSales
    Participant

    I can confirm nathandboyd’s solution above.

    I had the same problem with activating registrations and adding “www” to my wordpress URL in the wordpress settings did the trick.

    Thanks!

    latilu
    Participant

    Hi, I have a problem with the comments of wordpress and BuddyPress activity stream. The comments included in a post of wordpress are displayed in the activity stream, but the comments inserted in the pages do not appear in the activity stream. How can I solve this problem?

    Thank you so much for the help.
    Gianluca

    #177113
    Henry Wright
    Moderator

    @stoi2m1 I’m not entirely understanding what you mean. Is the issue reported in this Trac ticket similar to your problem?

    https://buddypress.trac.wordpress.org/ticket/5329

    jacobgus
    Participant

    Wow thanks so much! is there any way to make the wordpress logo and bar across the top go away?

Viewing 25 results - 11,976 through 12,000 (of 32,685 total)
Skip to toolbar