Template Tags

Zinnia provides several template tags based on inclusion_tag system to create some widgets in your Web site’s templates.

Note

The presence of the template argument in many template tags allow you to reuse and customize the rendering of a template tag in a generic way. Like that you can display the same template tag many times in your pages but with a different appearance.

To start using any of the following template tags you need to load them first at the top of your template:

{% load zinnia %}

get_recent_entries

Display the latest entries.

zinnia.templatetags.zinnia.get_recent_entries(number=5, template='zinnia/tags/entries_recent.html')

Return the most recent entries.

Usage examples:

{% get_recent_entries %}
{% get_recent_entries 3 %}
{% get_recent_entries 3 "custom_template.html" %}
{% get_recent_entries template="custom_template.html" %}

get_draft_entries

Display the latest entries marked as draft.

zinnia.templatetags.zinnia.get_draft_entries(number=5, template='zinnia/tags/entries_draft.html')

Return the last draft entries.

Usage examples:

{% get_draft_entries %}
{% get_draft_entries 3 %}
{% get_draft_entries 3 "custom_template.html" %}
{% get_draft_entries template="custom_template.html" %}

get_random_entries

Display random entries.

zinnia.templatetags.zinnia.get_random_entries(number=5, template='zinnia/tags/entries_random.html')

Return random entries.

Usage examples:

{% get_random_entries %}
{% get_random_entries 3 %}
{% get_random_entries 3 "custom_template.html" %}
{% get_random_entries template="custom_template.html" %}

get_similar_entries

Display entries similar to an existing entry.

zinnia.templatetags.zinnia.get_similar_entries(context, number=5, template='zinnia/tags/entries_similar.html')

Return similar entries.

Usage examples:

{% get_similar_entries %}
{% get_similar_entries 3 %}
{% get_similar_entries 3 "custom_template.html" %}
{% get_similar_entries template="custom_template.html" %}

get_calendar_entries

Display an HTML calendar with date of publications.

If you don’t set the year or the month parameter, the calendar will look in the context of the template if one of these variables is set in this order : (month, day, object.creation_date).

If no one of these variables is found, the current month will be displayed.

zinnia.templatetags.zinnia.get_calendar_entries(context, year=None, month=None, template='zinnia/tags/entries_calendar.html')

Return an HTML calendar of entries.

Usage examples:

{% get_calendar_entries %}
{% get_calendar_entries 2011 4 %}
{% get_calendar_entries 2011 4 "custom_template.html" %}
{% get_calendar_entries template="custom_template.html" %}
{% get_calendar_entries year=object.creation_date|date:"Y" month=12 %}

get_archives_entries

Display the archives by month.

zinnia.templatetags.zinnia.get_archives_entries(template='zinnia/tags/entries_archives.html')

Return archives entries.

Usage examples:

{% get_archives_entries %}
{% get_archives_entries "custom_template.html" %}

get_archives_entries_tree

Display all the archives as a tree.

zinnia.templatetags.zinnia.get_archives_entries_tree(template='zinnia/tags/entries_archives_tree.html')

Return archives entries as a tree.

Usage examples:

{% get_archives_entries_tree %}
{% get_archives_entries_tree "custom_template.html" %}

get_authors

Display all the published authors.

zinnia.templatetags.zinnia.get_authors(context, template='zinnia/tags/authors.html')

Return the published authors.

Usage examples:

{% get_authors %}
{% get_authors "custom_template.html" %}

get_categories

Display all the published categories.

zinnia.templatetags.zinnia.get_categories(context, template='zinnia/tags/categories.html')

Return the published categories.

Usage examples:

{% get_categories %}
{% get_categories "custom_template.html" %}

get_categories_tree

Display a hierarchical tree of all the categories available.

zinnia.templatetags.zinnia.get_categories_tree(context, template='zinnia/tags/categories_tree.html')

Return the categories as a tree.

Usage examples:

{% get_categories_tree %}
{% get_categories "custom_template.html" %}

get_tags

Store in a context variable a queryset of all the published tags.

zinnia.templatetags.zinnia.get_tags()

Return the published tags.

Usage example:

{% get_tags as entry_tags %}

get_tag_cloud

Display a cloud of published tags.

zinnia.templatetags.zinnia.get_tag_cloud(context, steps=6, min_count=None, template='zinnia/tags/tag_cloud.html')

Return a cloud of published tags.

Usage examples:

{% get_tag_cloud %}
{% get_tag_cloud 9 %}
{% get_tag_cloud 9 3 %}
{% get_tag_cloud 9 3 "custom_template.html" %}
{% get_tag_cloud template="custom_template.html" %}

get_recent_comments

Display the latest comments.

zinnia.templatetags.zinnia.get_recent_comments(number=5, template='zinnia/tags/comments_recent.html')

Return the most recent comments.

Usage examples:

{% get_recent_comments %}
{% get_recent_comments 3 %}
{% get_recent_comments 3 "custom_template.html" %}
{% get_recent_comments template="custom_template.html" %}

get_recent_linkbacks

Display the latest linkbacks.

zinnia.templatetags.zinnia.get_recent_linkbacks(number=5, template='zinnia/tags/linkbacks_recent.html')

Return the most recent linkbacks.

Usage examples:

{% get_recent_linkbacks %}
{% get_recent_linkbacks 3 %}
{% get_recent_linkbacks 3 "custom_template.html" %}
{% get_recent_linkbacks template="custom_template.html" %}

zinnia_pagination

Display a Digg-like pagination for long list of pages.

zinnia.templatetags.zinnia.zinnia_pagination(context, page, begin_pages=1, end_pages=1, before_pages=2, after_pages=2, template='zinnia/tags/pagination.html')

Return a Digg-like pagination, by splitting long list of page into 3 blocks of pages.

Usage examples:

{% zinnia_pagination page_obj %}
{% zinnia_pagination page_obj 2 2 %}
{% zinnia_pagination page_obj 2 2 3 3 %}
{% zinnia_pagination page_obj 2 2 3 3 "custom_template.html" %}
{% zinnia_pagination page_obj begin_pages=2 template="custom_template.html" %}

zinnia_breadcrumbs

Display the breadcrumbs for the pages handled by Zinnia.

zinnia.templatetags.zinnia.zinnia_breadcrumbs(context, root_name='', template='zinnia/tags/breadcrumbs.html')

Return a breadcrumb for the application.

Usage examples:

{% zinnia_breadcrumbs %}
{% zinnia_breadcrumbs "News" %}
{% zinnia_breadcrumbs "News" "custom_template.html" %}
{% zinnia_breadcrumbs template="custom_template.html" %}

zinnia_loop_template

Store in a context variable a Template choosen from his position whithin a loop of entries.

zinnia.templatetags.zinnia.zinnia_loop_template(context, default_template)

Return a selected template from his position within a loop and the filtering context.

Usage example:

{% for object in object_list %}
  {% zinnia_loop_template "my-template.html" as template %}
  {% include template %}
{% endfor %}

zinnia_statistics

Display the statistics about the contents handled in Zinnia.

zinnia.templatetags.zinnia.zinnia_statistics(template='zinnia/tags/statistics.html')

Return statistics on the content of Zinnia.

Usage examples:

{% zinnia_statistics %}
{% zinnia_statistics "custom_template.html" %}

get_gravatar

Display the Gravatar image associated to an email, useful for comments.

zinnia.templatetags.zinnia.get_gravatar(email, size=80, rating='g', default=None, protocol='http')

Return url for a Gravatar.

Usage examples:

{% get_gravatar user.email %}
{% get_gravatar user.email 50 %}
{% get_gravatar user.email 50 "PG" %}
{% get_gravatar user.email 50 "PG" "identicon" "https" %}
{% get_gravatar user.email rating="PG" protocol="https" %}

widont

Insert a non-breaking space between the last two words of your sentence.

zinnia.templatetags.zinnia.widont(*args, **kwargs)

Add an HTML non-breaking space between the final two words of the string to avoid “widowed” words.

Usage example:

{{ variable|widont }}

week_number

Return the Python week number of a date.

zinnia.templatetags.zinnia.week_number(date)

Return the Python week number of a date. The django |date:”W” returns incompatible value with the view implementation.

Usage example:

{{ date_variable|week_number }}

comment_admin_urlname

Return an admin URL for managing the comments, whatever the the application used.

zinnia.templatetags.zinnia.comment_admin_urlname(action)

Return the admin URLs for the comment app used.

Usage example:

{% url 'changelist'|comment_admin_urlname %}

user_admin_urlname

Return an admin URL for managing the users, whatever the the application used.

zinnia.templatetags.zinnia.user_admin_urlname(action)

Return the admin URLs for the user app used.

Usage example:

{% url 'changelist'|user_admin_urlname %}