[TH] User Improvements

[TH] User Improvements 1.3.0 Patch Level 8

No permission to download

Nerdface

Well-known member
I don't think hidden trophies are working as intended?

I can still see the hidden trophy that has been awarded as (another) member, and when clicking on the trophy I get a standard Oops! We ran into some problems error stating I don't have permission to access the page.
 

Vanjoe

Member
You're editing the wrong style properties. The level progress widget is managed under Style Properties > User Title Ladder > Progress bar.


There is only one User title ladder (ACP > Users > User customization > User title ladder).


You can change the icon through CSS, but there's no built-in way to change the icon.


Publishing a fix in a bit.
Any word on this:

2. I have trophies disabled. Including disabling every trophy option in the addon's options page. Yet the trophy data "th-trophyProgressContainer" is still displayed in the members statistics page upon clicking on specific statistics like "Most Messages".
 

Rhodium

Active member
Desactivation account don't works if you set time limit for self reactivation to unlimited. And if you disable an account and click in forums or anywhere, it gets enabled without confirming reactivation.
 

Nerdface

Well-known member
I don't think hidden trophies are working as intended?

I can still see the hidden trophy that has been awarded as (another) member, and when clicking on the trophy I get a standard Oops! We ran into some problems error stating I don't have permission to access the page.
So just a quick update, on the trophy list the details are hidden nicely (ideally i'd like to replace the image with a "hidden" image, but I'm sure I can handle that myself)..

..but on a user profile the details are visible to everyone. Would it be possible to hide the details here also unless the viewer has also earnt the trophy (or is an admin)?
 

Mian Shahid

Well-known member
All trophies are used to determine the ladder progress. Categories are just for organizing them in the trophy lists.
OK, but in our forum, almost all user have a 100% full progress for next level bar like that
201573

Also kindly let me know the basic purpose of this option
201574
 

Lukas W.

Formerly katsulynx
OK, but in our forum, almost all user have a 100% full progress for next level bar like that
Then they've reached the uppest part of the ladder that you configured.

Also kindly let me know the basic purpose of this option
That lets you define a trophy that has to be earnt first before this trophy can be earned, allowing you to build a dependency chain, most commonly for similar trophies (like 5, 10, 50, ... Posts)
 

NicolasZN

Member
You should be able to click the trophy showcase to make your selection.
I looked into this a bit. It seems like there is a hidden link beside the trophy case in posts (circled in first screencap) and this is true across themes, including XF default in 2.1
When you click it, it brings up a pop-up to choose. Excellent!
But then when you click save, it tries to load a page that XF feels doesn't exist and it doesn't save any selections

So two bugs need fixing: invisible edit button, and broken page.
 

Attachments

PixelOrange

New member
For users with a limited number of trophies in their showcase, how can they select which trophies appear?
@dethfire
You should be able to click the trophy showcase to make your selection.
I'm having issues with this as well. I don't see anywhere on my forum to choose which ones are displayed. I've got it set to User Choice and I have it set to 4 max on the showbit and many users have more than 4 but I still don't see any way to choose.

Edit: Just saw the post by @NicolasZN - I guess that answers that! Still having the issue with inconsistent limits though.

Also, is there a way to limit how many show on your own posts? Having 8 show up on yours when only 4 show up for everyone else is inconsistent and within seconds of enabling it my users complained. Of course, they're all a bunch of whiners but I don't disagree. :)

Edit 2: I fixed the issue with the hidden content and some of the inconsistencies with the following changes to template thuserimprovements_trophy_showcase_macros:

CSS:
<xf:macro name="showcase_display" arg-user="!" arg-position="!">
    <xf:if is="$xf.options.klUIProfileTrophyShowcase AND $user">
        <xf:if contentcheck="true">
            <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                <a class="trophyShowcase trophyShowcase--{$position} trophyShowcase--link"
                   href="{{ link('members/thui-trophies/showcase-select', $xf.visitor) }}"
                   data-xf-click="overlay">
            <xf:else />
                <div class="trophyShowcase trophyShowcase--{$position}">
            </xf:if>
                <xf:contentcheck>
                    <xf:if is="$xf.options.klUIProfileTrophyShowcase == 1">
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUILatestTrophies($position)}" />
                        <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 2" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIHighestTrophies($position)}" />
                        <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 3" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIUserChoiceTrophies($position)}" />
                    </xf:if>
                </xf:contentcheck>
            <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                </a>
            <xf:else />
                </div>
            </xf:if>
        </xf:if>
    </xf:if>
</xf:macro>

CSS:
<xf:macro name="showcase_display" arg-user="!" arg-position="!">
    <xf:if is="$xf.options.klUIProfileTrophyShowcase AND $user">
        <xf:if contentcheck="true">
            <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                <a class="trophyShowcase trophyShowcase--{$position} trophyShowcase--link"
                   href="{{ link('members/thui-trophies/showcase-select', $xf.visitor) }}"
                   data-xf-click="overlay">Edit Visible Trophies</a>
                <div class="trophyShowcase trophyShowcase--{$position}">
            <xf:else />
                <div class="trophyShowcase trophyShowcase--{$position}">
            </xf:if>
                <xf:contentcheck>
                    <xf:if is="$xf.options.klUIProfileTrophyShowcase == 1">
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUILatestTrophies($position)}" />
                        <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 2" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIHighestTrophies($position)}" />
                        <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 3" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIUserChoiceTrophies($position)}" />
                    </xf:if>
                </xf:contentcheck>
            <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                </div>
            <xf:else />
                </div>
            </xf:if>
        </xf:if>
    </xf:if>
</xf:macro>

There's an unnecessary xf:if in there at the end because of what I did but I left it there in case I wanted to go back and handle it differently. At the very minimum this is a workaround for the hidden button until a proper fix is released. If you don't want to change it entirely like I did, you could just change line seven to:
Code:
                   data-xf-click="overlay">Edit Visible Trophies
Edit 3:

Annnnd found the bug that breaks the code. Edit line 5 of thuserimprovements_trophy_showcase_select:

Broken Code:
<xf:form action="{{ link('members/trophies/showcase-select', $xf.visitor) }}" class="block">

Fix:
<xf:form action="{{ link('members/thui-trophies/showcase-select', $xf.visitor) }}" class="block">

Edit 4: Alternate code for thuserimprovements_trophy_showcase_macros that puts the edit button after the trophies instead of before which I feel looks better on the profile page and the postbit.

CSS:
<xf:macro name="showcase_display" arg-user="!" arg-position="!">
    <xf:if is="$xf.options.klUIProfileTrophyShowcase AND $user">
        <xf:if contentcheck="true">
            <div class="trophyShowcase trophyShowcase--{$position}">
                <xf:contentcheck>
                    <xf:if is="$xf.options.klUIProfileTrophyShowcase == 1">
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUILatestTrophies($position)}" />
                    <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 2" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIHighestTrophies($position)}" />
                    <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 3" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIUserChoiceTrophies($position)}" />
                    </xf:if>
                </xf:contentcheck>
                <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                    <a class="trophyShowcase--link"
                       href="{{ link('members/thui-trophies/showcase-select', $xf.visitor) }}"
                       data-xf-click="overlay">Edit Visible Trophies</a>
            </div>
                <xf:else />
            </div>
                </xf:if>
        </xf:if>
    </xf:if>
</xf:macro>


<xf:macro name="showcase_items" arg-trophies="!">

    <xf:css src="thuserimprovements_trophy_showcase_macros.less" />

    <xf:foreach loop="$trophies" value="$trophy">
        <a href="{{ link('trophies', $trophy.Trophy) }}"
           class="trophyIconItem"
           title="{$trophy.Trophy.title}"
           data-xf-init="tooltip">
            <xf:if is="$trophy.Trophy.th_icon_type === 'fa'">
                <i class="fa far fa-{$trophy.Trophy.th_icon_value} {$trophy.Trophy.th_icon_value}"
                   style="{$trophy.Trophy.th_icon_css}"></i>
                <xf:elseif is="$trophy.Trophy.th_icon_type === 'image'" />
                <img src="{$trophy.Trophy.th_icon_value}" style="{$trophy.Trophy.th_icon_css}"/>
                <xf:else />
                <span style="{$trophy.Trophy.th_icon_css}">{$trophy.Trophy.trophy_points}</span>
            </xf:if>
        </a>
    </xf:foreach>
</xf:macro>

Final Edit: I have opened three issues here: https://github.com/Audentio/xf2addon-issues/issues
 
Last edited:

i9hdkill

Member
BattleNet login seems to be broken.

Seems pops up when trying to connect my forums acc with BattleNet

The integration test is successfull, but not showing any information unlike other integration tests
 

NicolasZN

Member
I'm having issues with this as well. I don't see anywhere on my forum to choose which ones are displayed. I've got it set to User Choice and I have it set to 4 max on the showbit and many users have more than 4 but I still don't see any way to choose.

Edit: Just saw the post by @NicolasZN - I guess that answers that! Still having the issue with inconsistent limits though.

Also, is there a way to limit how many show on your own posts? Having 8 show up on yours when only 4 show up for everyone else is inconsistent and within seconds of enabling it my users complained. Of course, they're all a bunch of whiners but I don't disagree. :)

Edit 2: I fixed the issue with the hidden content and some of the inconsistencies with the following changes to template thuserimprovements_trophy_showcase_macros:

CSS:
<xf:macro name="showcase_display" arg-user="!" arg-position="!">
    <xf:if is="$xf.options.klUIProfileTrophyShowcase AND $user">
        <xf:if contentcheck="true">
            <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                <a class="trophyShowcase trophyShowcase--{$position} trophyShowcase--link"
                   href="{{ link('members/thui-trophies/showcase-select', $xf.visitor) }}"
                   data-xf-click="overlay">
            <xf:else />
                <div class="trophyShowcase trophyShowcase--{$position}">
            </xf:if>
                <xf:contentcheck>
                    <xf:if is="$xf.options.klUIProfileTrophyShowcase == 1">
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUILatestTrophies($position)}" />
                        <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 2" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIHighestTrophies($position)}" />
                        <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 3" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIUserChoiceTrophies($position)}" />
                    </xf:if>
                </xf:contentcheck>
            <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                </a>
            <xf:else />
                </div>
            </xf:if>
        </xf:if>
    </xf:if>
</xf:macro>

CSS:
<xf:macro name="showcase_display" arg-user="!" arg-position="!">
    <xf:if is="$xf.options.klUIProfileTrophyShowcase AND $user">
        <xf:if contentcheck="true">
            <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                <a class="trophyShowcase trophyShowcase--{$position} trophyShowcase--link"
                   href="{{ link('members/thui-trophies/showcase-select', $xf.visitor) }}"
                   data-xf-click="overlay">Edit Visible Trophies</a>
                <div class="trophyShowcase trophyShowcase--{$position}">
            <xf:else />
                <div class="trophyShowcase trophyShowcase--{$position}">
            </xf:if>
                <xf:contentcheck>
                    <xf:if is="$xf.options.klUIProfileTrophyShowcase == 1">
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUILatestTrophies($position)}" />
                        <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 2" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIHighestTrophies($position)}" />
                        <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 3" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIUserChoiceTrophies($position)}" />
                    </xf:if>
                </xf:contentcheck>
            <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                </div>
            <xf:else />
                </div>
            </xf:if>
        </xf:if>
    </xf:if>
</xf:macro>

There's an unnecessary xf:if in there at the end because of what I did but I left it there in case I wanted to go back and handle it differently. At the very minimum this is a workaround for the hidden button until a proper fix is released. If you don't want to change it entirely like I did, you could just change line seven to:
Code:
                   data-xf-click="overlay">Edit Visible Trophies
Edit 3:

Annnnd found the bug that breaks the code. Edit line 5 of thuserimprovements_trophy_showcase_select:

Broken Code:
<xf:form action="{{ link('members/trophies/showcase-select', $xf.visitor) }}" class="block">

Fix:
<xf:form action="{{ link('members/thui-trophies/showcase-select', $xf.visitor) }}" class="block">

Edit 4: Alternate code for thuserimprovements_trophy_showcase_macros that puts the edit button after the trophies instead of before which I feel looks better on the profile page and the postbit.

CSS:
<xf:macro name="showcase_display" arg-user="!" arg-position="!">
    <xf:if is="$xf.options.klUIProfileTrophyShowcase AND $user">
        <xf:if contentcheck="true">
            <div class="trophyShowcase trophyShowcase--{$position}">
                <xf:contentcheck>
                    <xf:if is="$xf.options.klUIProfileTrophyShowcase == 1">
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUILatestTrophies($position)}" />
                    <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 2" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIHighestTrophies($position)}" />
                    <xf:elseif is="$xf.options.klUIProfileTrophyShowcase == 3" />
                        <xf:macro name="showcase_items" arg-trophies="{$user.getTHUIUserChoiceTrophies($position)}" />
                    </xf:if>
                </xf:contentcheck>
                <xf:if is="$xf.options.klUIProfileTrophyShowcase == 3 && $user.user_id === $xf.visitor.user_id">
                    <a class="trophyShowcase--link"
                       href="{{ link('members/thui-trophies/showcase-select', $xf.visitor) }}"
                       data-xf-click="overlay">Edit Visible Trophies</a>
            </div>
                <xf:else />
            </div>
                </xf:if>
        </xf:if>
    </xf:if>
</xf:macro>


<xf:macro name="showcase_items" arg-trophies="!">

    <xf:css src="thuserimprovements_trophy_showcase_macros.less" />

    <xf:foreach loop="$trophies" value="$trophy">
        <a href="{{ link('trophies', $trophy.Trophy) }}"
           class="trophyIconItem"
           title="{$trophy.Trophy.title}"
           data-xf-init="tooltip">
            <xf:if is="$trophy.Trophy.th_icon_type === 'fa'">
                <i class="fa far fa-{$trophy.Trophy.th_icon_value} {$trophy.Trophy.th_icon_value}"
                   style="{$trophy.Trophy.th_icon_css}"></i>
                <xf:elseif is="$trophy.Trophy.th_icon_type === 'image'" />
                <img src="{$trophy.Trophy.th_icon_value}" style="{$trophy.Trophy.th_icon_css}"/>
                <xf:else />
                <span style="{$trophy.Trophy.th_icon_css}">{$trophy.Trophy.trophy_points}</span>
            </xf:if>
        </a>
    </xf:foreach>
</xf:macro>

Final Edit: I have opened three issues here: https://github.com/Audentio/xf2addon-issues/issues
Were none of these fixes applied to the most recent patch?
 

NicolasZN

Member
It just seemed odd that somebody went through and found the solutions to feature-breaking bugs and they weren't able to be applied in the next patch.
Glad to know the change log is accurate, I guess. ;)
 

Lukas W.

Formerly katsulynx
It just seemed odd that somebody went through and found the solutions to feature-breaking bugs and they weren't able to be applied in the next patch.
Because we decided to publish an fix for a breaking problem that affects more installations now rather than holding it back until we trialed the other fixes. I think everyone agrees that it's to everyones benefit if we don't hold back patch releases until every problem is fixed. ;)
 

PixelOrange

New member
Because we decided to publish an fix for a breaking problem that affects more installations now rather than holding it back until we trialed the other fixes. I think everyone agrees that it's to everyones benefit if we don't hold back patch releases until every problem is fixed. ;)
Why would you need to trial a fix that is just fixing a typo by adding "thui-" to one line of code where it was missed by mistake?

Edit: NicholasZN I'll attach the files I altered if you want them while we wait for the official patch.
 

Lukas W.

Formerly katsulynx
Why would you need to trial a fix that is just fixing a typo by adding "thui-" to one line of code where it was missed by mistake?
We can make a big discussion out of this if you want, but the tl;dr is that we don't blindly copy-paste suggested bug fixes but rather check the software and code if that is actually fixing the issue and not just bandaging it on the surface, so no errors follow up, similar issues may also be tackled in the same run, it doesn't produce any edge cases and works in all setups, etc. It's a simple matter of quality assurance, and, as previously stated, not holding back one bug fix while we work on the other.
 
Top