Templating
# Available Variables
| Variable |
|---|
craft.follow.followUrl() |
craft.follow.unfollowUrl() |
craft.follow.check() |
craft.follow.following() |
craft.follow.followingTotal() |
craft.follow.followers() |
craft.follow.followersTotal() |
# followUrl
| Value | Description |
|---|---|
| Element ID (Required) | The element you want the user to follow e.g. category.id |
To allow the currentUser to follow an element you can use the followUrl method to output the correct URL. You simply pass an element ID to it, whether this is a user, category or tag ID:
<a href="{{ craft.follow.followUrl(user.id) }}">Follow User</a>
# unfollowUrl
| Value | Description |
|---|---|
| Element ID (Required) | The element you want the user to unfollow e.g. category.id |
To then let the currentUser unfollow an element you can use the unfollowUrl method to output the correct URL. You simply pass an element ID to it, user, category or tag ID:
<a href="{{ craft.follow.unfollowUrl(user.id) }}">Unfollow User</a>
# check
| Property | Value | Description | Default |
|---|---|---|---|
elementId (Required) | Element ID | The element your checking the user is following | - |
userId | User ID | The user you want to check is following the element | currentUser.id |
If you want to check to see if the currentUser is following or not following a particular element (A Category, User etc) use the check method. You simply pass an element ID to it, e.g. a user, category or tag ID:
{% if craft.follow.check({ elementId: category.id }) %}
<a href="{{ craft.follow.unfollowUrl(category.id) }}">Unfollow Category</a>
{% else %}
<a href="{{ craft.follow.followUrl(category.id) }}">Follow Category</a>
{% endif %}
You can optionally pass a user ID to the check method to check if a different user is following a particular element:
{% if craft.follow.check({ elementId: category.id, userId: user.id }) %}
{{ user.firstName }} is following {{ category.title }}
{% else %}
{{ user.firstName }} is not following {{ category.title }}
{% endif %}
# following
| Property | Value | Description | Default |
|---|---|---|---|
userId | User ID | The user you want to get a following list from | currentUser.id |
elementClass | Element Class | The element class you're checking the user is following | craft\\elements\\User |
output | string or array | The type of output | string |
WARNING
It's important to always use a double back slash when defining element classes e.g. craft\\elements\\User
TIP
You can see a list of available element types on 'Craft 3 Documentation - Element Types'
To get a list of users the current logged in user is following you use the following method. Then pass it's results in to the correct Element Query, in this case craft.users.
{% set users = craft.follow.following() %}
{% for user in craft.users.id(users) %}
{{ user.fullName }}<br />
{% endfor %}
By default the following method will always get followed elements based on the currentUser and the craft\elements\User class and output as a string, e.g. 43,12,54,7.
You can optionally pass different properties. E.g. If you wanted to display a different users following list, or if you wanted to get a list of all the categories a particular user is following:
{% set params = {
userId: user.id,
elementClass: 'craft\\elements\\Category',
output: 'string'
} %}
{% set categories = craft.follow.following(params) %}
{% for category in craft.categories.id(categories) %}
{{ category.title }}<br />
{% endfor %}
# followingTotal
| Property | Value | Description | Default |
|---|---|---|---|
userId | User ID | The user you want to get a following list from | currentUser.id |
elementClass | Element Class | The element class you're checking the user is following | craft\\elements\\User |
To get the total number of elements a particular user is following, you can used the followingTotal method. By default this will get the currentUser user following total:
{{ craft.follow.followingTotal({ userId: currentUser.id }) }}
You can optionally pass different properties. E.g. If you wanted to display how many categories a different user was following:
{{ craft.follow.followingTotal({ userId: user.id, elementClass: 'craft\\elements\\Category' }) }}
# followers
| Value | Description | Default |
|---|---|---|
| Element ID | The element your checking a followers list for | currentUser.id |
To see what users follower a particular element, you can use the followers method. By default this will get the currentUser followers list. You can optionally pass a different element ID to it. Whether this is a user.id or category.id etc.
{% set users = craft.follow.followers(category.id) %}
{% for user in craft.users.id(users) %}
{{ user.fullName }}<br />
{% endfor %}
# followersTotal
| Value | Description | Default |
|---|---|---|
| Element ID | The element your checking a followers list for | currentUser.id |
To get the total number of followers (users) a particular element has, you can used the followersTotal method. By default this will get the currentUser user follower total. You can optionally pass a different element ID to it. Whether this is a user.id or category.id etc.
{{ craft.follow.followersTotal(user.id) }}