Please upgrade here. These earlier versions are no longer being updated and have security issues.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

CountDiscussions, CountBookmarks, CountDrafts, and CountNotifications Don't work.

I'm still trying to get used to Smarty so bear with me but I have the following code in my 'default.master.tpl'...

{if $User.SignedIn}
    <li>
    <a href="{link path="messages/inbox"}">Inbox
    {if $User.CountUnreadConversations} <span>{$User.CountUnreadConversations}</span>{/if}</a>
    </li>
    <li>
    <a href="{link path="profile"}">Your Profile (<em>{$User.Name}</em>)
    {if $User.CountNotifications > 0}<span>{$User.CountNotifications}</span>{/if}</a>
    </li>
    <li>
    <a href="{link path="discussions/mine"}">Your Discussions
    {if $User.CountDiscussions > 0}<span>{$User.CountDiscussions}</span>{/if}</a>
    </li>
    <li>
    <a href="{link path="discussions/bookmarked"}">Bookmarks
    {if $User.CountBookmarks > 0}<span>{$User.CountBookmarks}</span>{/if}</a>
    </li>
    <li>
    <a href="{link path="drafts"}">Drafts
    {if $User.CountDrafts > 0} <span>{$User.CountDrafts}</span>{/if}</a>
    </li>
    {if CheckPermission('Garden.Settings.Manage')}
    <li><a href="{link path="dashboard/settings"}">Dashboard</a></li>
    {/if}
{/if}

But it doesn't seem to show the number in the header? I am testing this out so I made sure I had bookmarks, drafts etc. Which DO show up in the normal discussions tabs.

Is {$User.CountDiscussions}, {$User.CountBookmarks}, {$User.CountNotifications}, etc. not the right way to do it?

Answers

  • I figured this out. I had to add it to class.smarty.php so it knew those "shortcodes"!

  • 422422 Developer MVP

    Afaik, each tpl file has a corresponding php file. Thats how smarty compiles. Thanks for posting your fix, would be nice for you to post the code you added also ( to the php file ) if nothing else but for posterity.

    Ste

    There was an error rendering this rich post.

  • 422 said:
    Afaik, each tpl file has a corresponding php file. Thats how smarty compiles.

    Hmmm, I'm not sure about that or not to be honest? Again, I don't know much about smarty and how it works, all I know is that when I added code to "class.smarty.php" I got my stuff working! haha :)

    An ywho, here is the updated php file for "class.smarty.php" (located inside the directory /library/core/): http://pastebin.com/YuC0vB5K - I modified lines 49-54! :)

  • nice documentation. thx.

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • No problem! Glad I could help.

  • Line 48 should be

            'CountNotifications' => (int)GetValue('CountNotifications', $Session->User, 0),
    

    not

            'CountNotifications' => (int)GetValue('CountNotifications', $Session->User->CountNotifications, 0),
    
Sign In or Register to comment.