Forum Discussion

Han's avatar
Han
Ace
7 years ago

Get all latest posts for a user

Hi all, I'd like to create a custom "latest contributions" component for profile pages. I'm trying to select all latest posts for a user with API V2.  At the moment, I'm always getting the same...
  • luk's avatar
    luk
    7 years ago

     

    Now we are talking freemarker which of course changes things =)... So with the code from Parshant it would be clear why you get always the same result, because you're asking for the last 10 topics of the currently logged in user, e.g. yourself (which is what ${user.id} will give you), I think what would be correct for your scenario is the page.context.user context-object which according to the docs (here) state:

    If this page is associated with a user, then this returns a user context object, otherwise returns null. You can chain calls on the user object from this method. The following pages return a user:
    - MyProfilePage (only when an admin is editing another user's profile. When the current user is editing their profile use the $user object instead)
    - ViewProfilePage
    - MobileViewProfilePage
    - TkbUserContributedArticlesPage

    I assume you're targeting the "ViewProfilePage" quilt with  your custom component,it would work as follows with your query:

    SELECT * FROM messages WHERE depth = 0 AND author.id = '${page.context.user.id}' ORDER BY conversation.last_post_time DESC LIMIT 10

    BUT, careful, as the docs say, if this component was placed on a page with no user context, your query would fail, therefore I'd check if page.context.user exists before setting off the API request, e.g.

    <#if (page.context.user)?has_content>
        // whatever you want to do here
    </#if>

    hope that helps!