• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Extending user model only working for $visitor

MOZ

Well-known member
#1
I've extended the user model to join some columns from another column. Issue is the value from these columns is only accessed when $visitor is used.

Eg, If I use this: {$visitor.HUN_username_styling} it shows the value
but if I use this: {$user.HUN_username_styling} it doesn't show anything

And yes the $user variable is available.

Here is how I am extending the user model:
PHP:
<?php
 
class HtmlUserNames_Model_User extends XFCP_HtmlUserNames_Model_User
{
public function prepareUserFetchOptions(array $fetchOptions)
{
$parent = parent::prepareUserFetchOptions($fetchOptions);
 
$parent['selectFields'] .= ',
xf_user_hun.*';
$parent['joinTables'] .= '
LEFT JOIN xf_user_hun ON (user.user_id = xf_user_hun.user_id)';
 
return $parent;
}
 
}
 

MOZ

Well-known member
#3
For testing the message_user_info.

Otherwise I need it in every template where username or user's title is is displayed.
 
S

Syndol

Guest
#4
For post related templates, you will need to extend the Model/Post.php preparePostJoinOptions() function
 

MOZ

Well-known member
#5
But I need the variable available wherever the $user variable is available.

If I add a column to the xf_user table, then the column is always available to be called from the $user variable, similarly, I want the same functionality, but without adding the columns to xf_user, and from another table.

I hope this clears the problem a little better.
 

MOZ

Well-known member
#6
Is there a way to "attach" columns from another table to xf_user so their values are available everywhere (Wherever $user is available) like the columns of xf_user?
 

silence

Well-known member
#8
New problem, for some reason all users on the Members page is showing up as guests.
I ran into a similar predicament and here is my solution:
HTML:
<?php

class HtmlUserNames_Model_Post extends XFCP_HtmlUserNames_Model_Post
{
    public function preparePostJoinOptions(array $fetchOptions)
    {
        $parent = parent::preparePostJoinOptions($fetchOptions);

        $parent['selectFields'] .= ',
            xf_user_hun.*';
        $parent['joinTables'] .= '
            LEFT JOIN xf_user_hun ON (post.user_id = xf_user_hun.user_id)';

        return $parent;
    }
}
 
Last edited:

tyteen4a03

Well-known member
#9
Given that you are extending XF_Model_User, I can't seem to find this function anywhere. I can only find prepareUserFetchOptions. Is that what you mean?