Skip to:
Content
Pages
Categories
Search
Top
Bottom

Help with Basic Command to Add New Profile Fields


  • James Blacker
    Member

    @james-blacker

    Hi,

    I’ve just been following this instruction – http://bbpress.org/forums/topic/adding-custom-profile-fields (and as per http://bbpress.org/forums/topic/add-new-fields-to-user-profile#post-14767) – to create a plugin of my own to add a couple of extra fields for my post/edit post, as per ardentfrost’s instructions.

    I’m not overly familiar with php so wonder if anyone can see what is wrong with my code. The plugin I created for myself, which I’ve uploaded to /forums/my-plugins/jbs_own_plugin.php is as follows:-

    <?php

    /*

    Plugin Name: jbs_own_plugin

    (etc….)

    */

    add_filter( ‘get_profile_info_keys’, array(‘user_email’ => array(1, __(‘Email’)), ‘user_url’ => array(0, __(‘Website’)), ‘from’ => array(0, __(‘Location’)), ‘occ’ => array(0, __(‘Occupation’)), ‘interest’ => array(0, __(‘Interests’)), ‘extra’ => array(0, __(‘Extra’)))

    ?>

    And when I try to activate it in bbPress plugins I get;

    Parse error: syntax error, unexpected ‘;’ in /var/www/vhosts/wholelifewholeworld.com/httpdocs/forums/my-plugins/jbs_own_plugin.php on line 13

    I’ve tried it with one less ), and with ; after, and a couple of other combos, but can anyone see what I’m doing wrong please? Just want to add a few extra fields that people can fill in from Edit profile and have displayed on the Profile page.

    Also, I found out I don’t actually HAVE a functions.php page in bb-includes at all, so that is slightly worrying me (though everything else is working okay).

    Thanks,

    James

Viewing 10 replies - 1 through 10 (of 10 total)
  • I just loaded the code into an editor, and reformatted for clarity

    <?php
    /*
    Plugin Name: jbs_own_plugin
    (etc....)
    */

    add_filter( 'get_profile_info_keys',
    array('user_email' => array(1, __('Email')),
    'user_url' => array(0, __('Website')),
    'from' => array(0, __('Location')),
    'occ' => array(0, __('Occupation')),
    'interest' => array(0, __('Interests')),
    'extra' => array(0, __('Extra'))));

    ?>

    Basically, it was missing a closing ) and semi-colon on the line. I cant promise that it does exactly what you are after, but this ought to solve the PHP syntax error. :-) Good luck.


    James Blacker
    Member

    @james-blacker

    Thanks, Paul,

    That corrected it to the point that it was happy with it and allowed it to activate.

    Unfortunately, the impact of the thing was that other than the passwords the fields and their content disappared from the Profile and Edit Profile pages, so there’s obviously a bit more to ardentfrost’s approach other than this so far (as I’m sure you corrected the code right), if you or anyone else know what it needs? It seemed to be an officially approved approach to doing the thing on that other forum page.

    So I’ve de-activated it for now, and fortunately the fields and their content were still there and returned.

    Thanks again, Paul.

    James

    I lifted the following list from functions.bb-core.php where bbPress defines the set of fields that should make up the user profile:

    'first_name' => array(0, __('First name')),
    'last_name' => array(0, __('Last name')),
    'display_name' => array(1, __('Display name as')),
    'user_email' => array(1, __('Email'), 'email'),
    'user_url' => array(0, __('Website'), 'url'),
    'from' => array(0, __('Location')),
    'occ' => array(0, __('Occupation'), 'role'),
    'interest' => array(0, __('Interests'))

    If you want any of these fields to appear in your custom profile, you will need to add them to the list of fields you were building. Basically, the filter in your plugin takes over defining the definitive list that will be used, not a list of additions above-and-beyond the defaults given by bbPress … least I think that is what the code is telling me! :-)


    deadlyhifi
    Participant

    @tomdebruin

    What you are saying, basically, is instead of using the built in profile form use mine. So you need to replicate it then add anything, or take out anything you want.

    I’ve done that on my site so people can put in a visible email field for others to contact them, and added an explanation for the signup page.

    function extra_profile_keys() {
    return apply_filters(
    'extra_profile_keys', array(
    'first_name' => array(0, __('First name')),
    'last_name' => array(0, __('Last name')),
    'display_name' => array(1, __('Display name as')),
    'user_email' => array(1, __('Email'), 'email'),
    'user_url' => array(0, __('Website'), 'url'),
    'from' => array(0, __('Location')),
    'occ' => array(0, __('Occupation'), 'role'),
    'interest' => array(0, __('Interests')),
    'visible_email' => array(0, __('Visible Email')),
    ) );
    }

    function add_descriptions() {
    echo '<fieldset><legend>'.__("Visible Email").'</legend>';
    echo '<p>'.__("<span style="font-size: 1.2em;">Visible Email allows you to place an email address so others can contact you. This is visible to ALL!</span><br/>e.g. <span style="font-weight: bold;">meATexampleDOTcom</span>").'</p>';
    echo '</fieldset>';
    }

    // hooks
    add_filter('get_profile_info_keys', 'extra_profile_keys');
    add_action('extra_profile_info', 'add_descriptions',10);

    What I haven’t figured out is how to create checkboxes and other form elements instead of just fields.


    James Blacker
    Member

    @james-blacker

    That’s great! That’s brilliant Tom, thanks very much. I was obviously missing a few commands there!

    Thanks both of you, you just made a lot of integral practitioners very happy with their new found ability to register what they’re doing with their practice for mind, body, spirit and shadow on their new forum. Here’s the handiwork in action: http://wholelifewholeworld.com/forums/profile/james-blacker

    Presumably if I changed (or removed) the spelling of the codes in the names (not that I will), it would break and any info people had put in previously would be lost.

    And I’ve increased the number parameter at the end of your add_action(‘extra_profile_info’, ‘add_descriptions’,15); – even I could work out that was important.

    Tom, if you’re on a roll, do you have an insight for the one I posted on why linking poster names to their Profile doesn’t support usernames with spaces? Presumably you’ve linked Posts to people’s Profiles on your forum having done the extra work to modify your own profile pages?: https://bbpress.org/forums/topic/are-usernames-with-spaces-sensible

    Thanks again, both, greatly appreciated.

    Cheers, James.

    PS. Paul, no relation to my colleague, Gary Hawke, presumably? http://integral-uk-symposium.wholelifewholeworld.com/meet-the-people/gary-hawke/


    deadlyhifi
    Participant

    @tomdebruin

    Presumably if I changed (or removed) the spelling of the codes in the names (not that I will), it would break and any info people had put in previously would be lost.

    Only if you changed the name of the value. i.e.

    'first_name' => array(0, __('What do they call you?')),

    should be fine, as long as the first_name stays intact.

    And I’ve increased the number parameter at the end of your add_action(‘extra_profile_info’, ‘add_descriptions’,15); – even I could work out that was important.

    That number is the priority that the function should get in relation to everything else that’s loading on the page. Read about that here: https://codex.wordpress.org/Function_Reference/add_action

    My code, btw, was at point got from this forum somewhere, so I can’t take credit for it. But it shows that anything in the functions.bb-pluggable.php file is easily replaced or manipulated.


    James Blacker
    Member

    @james-blacker

    Thanks, Tom. Just having a read of the codex now.

    Cheers,

    James


    James Blacker
    Member

    @james-blacker

    Ah, I’ll change that back to 10 then. :-)


    spospartan104
    Member

    @spospartan104

    Currently I am aiming to do a similar thing. Did they truly not implement a way to add onto a current filter. because if this is true that means that if you have more than 1 plug in modifying profile fields won’t they overwrite eachother’s changes?


    spospartan104
    Member

    @spospartan104

    Sweet I think I found a way. Not plugin submit worthy yet. But I will be adding one. Look for one in about 1 month . If you don’t see 1 bother me on Twitter. Same username (Just @ me)

Viewing 10 replies - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.
Skip to toolbar