Favorites Documentation

Favorites:Related_Entries template tag

The Favorites:Related_Entries tag allows you to show other entries saved as favorites by users that also saved the given entry (ex: Those who liked this entry also liked these others:).

{exp:favorites:related_entries} content {/exp:favorites:related_entries}

Parameters

Most of the parameters available in the Channel:Entries loop are available here. Additionally, these exist as well:

collection=

collection="articles"

This parameter allows you to display favorites filtered by the collection name. Specify multiples with the pipe character. If not specified, it'll show all entries, regardless of collection they belong to.

collection=

collection_id="1"

This parameter allows you to display favorites filtered by the collection ID. Specify multiples with the pipe character. If not specified, it'll show all entries, regardless of collection they belong to.

favorites_entry_id

favorites_entry_id="{entry_id}"

An entry ID is required so that Favorites knows which entry to check on. This parameter allows you to hardcode an entry ID, pull from the URI or pass it through an embedded template.

limit

limit="5"

This parameter lets you limit the number of results displayed on the list.

orderby=

orderby="relevance"

This parameter sets the display order of the entries. You can use any of the options available with Channel:Entries, or additionally you can use relevance (ranked number of matches among all users), or random. Default is relevance.

paginate=

paginate="both"

This parameter allows you to control where the pagination will display. Options are top, bottom, or both. Used in conjunction with the favorites:paginate variable pair.

sort=

sort="asc"

This parameter sets the sort order to be ascending (asc) or descending (desc). Default order is desc.

Variables

Most of the variables available in the Channel:Entries loop are available here. Additionally, these exist as well:

favorites:absolute_count

{favorites:absolute_count}

This variable outputs the display order number for each result in the list of entries (across all pages, if using pagination).

favorites:absolute_results

{favorites:absolute_results}

This variable will return the absolute total amount of entry results. This includes all entries across all pages when pagination is used.

favorites:count

{favorites:count}

This variable outputs the display order number for each result in the list of entries (within the page, if using pagination).

favorites:total_results

{favorites:total_results}

This variable outputs the total amount of entries in the results (within the page, if using pagination). You would typically use this in a conditional statement.

favorites:relevance

{favorites:relevance}

This variable displays the number of times an entry was favorited by other members.

Variable Pairs

The following variable pairs are available for use:

favorites:paginate

{favorites:paginate}
    Page {favorites:current_page} of {favorites:total_pages} pages
    {favorites:pagination_links}
{/favorites:paginate}

OR

{favorites:paginate}
    <ul class="pagination">
    {favorites:pagination_links}
        {first_page}
            <li><a href="{pagination_url}">First</a></li>
        {/first_page}
        {previous_page}
            <li><a href="{pagination_url}">&laquo; Previous</a></li>
        {/previous_page}
        {page}
            <li{if current_page} class="active"{/if}><a href="{pagination_url}">{pagination_page_number}</a></li>
        {/page}
        {next_page}
            <li><a href="{pagination_url}">Next &raquo;</a></li>
        {/next_page}
        {last_page}
            <li><a href="{pagination_url}">Last</a></li>
        {/last_page}
    {/favorites:pagination_links}
    </ul>
{/favorites:paginate}

Pagination is available for this tag and works just like regular EE pagination, but each variable/variable pair is prepended with favorites: (except for any variables and variable pairs inside of the favorites:pagination_links variable pair). Used in conjunction with the paginate parameter.

Conditionals

Most of the conditionals available in the Channel:Entries loop are available here. Additionally, these exist as well:

favorites:no_results

{if favorites:no_results}
    Sorry, there are no results.
{/if}

This conditional is shows its contents when there are no results, under the given parameters.

Examples

Below is a simple example of how to use this tag. The list will show other entries that users saved as favorites (in addition to the given entry). To avoid parsing issues and conflicts, it's best to embed this template tag in the Channel:Entries tag:

Main Template:

{exp:channel:entries}
    <h2>{title}</h2>
    <p>{body}</p>
    {embed="path_to/embedded_template" entry_id="{entry_id}"}
{/exp:channel:entries}

Embedded Template:

<h3>Those who liked this entry also liked:</h3>
<ul>
{exp:favorites:related_entries
    favorites_entry_id="{embed:entry_id}"
    limit="5"
    orderby="relevance" sort="desc"
    dynamic="no"
}
    <li><a href="{url_title_path='favy_main/entry'}">{title}</a></li>
{if favorites:no_results}
    <li>No related entries for this entry.</li>
{/if}
{favorites:paginate}
    <li>
        <ul class="pagination">
        {favorites:pagination_links}
        {first_page}
            <li><a href="{pagination_url}">First</a></li>
        {/first_page}
        {previous_page}
            <li><a href="{pagination_url}">&laquo; Previous</a></li>
        {/previous_page}
        {page}
            <li{if current_page} class="active"{/if}><a href="{pagination_url}">{pagination_page_number}</a></li>
        {/page}
        {next_page}
            <li><a href="{pagination_url}">Next &raquo;</a></li>
        {/next_page}
        {last_page}
            <li><a href="{pagination_url}">Last</a></li>
        {/last_page}
        {/favorites:pagination_links}
        </ul>
    </li>
{/favorites:paginate}
{/exp:favorites:related_entries}
</ul>

Support

Having problems setting up and/or using Favorites? Support is offered from 10am to 4pm EST weekdays. Send us an email at help@eeharbor.com and we will respond as quickly as we can.