All Text


Notify that a user’s identity has been updated by the identity model.

Release 0.83.0

Welcome to Zotonic 0.83.0, released on June 27, 2024.


Not yet documented.


Return a list of all languages present in the given translated text ( #trans{} record).


A validator to check whether a password conforms to the password secutiry requirements.


Return the list of identity types that allow somebody to logon and become an active user of the system. Defaults to […

CSS classes used in templates

If you are building a website then you might want to use the standard dialogs, overlays, authentication and other parts…

Release 0.82.0

Welcome to Zotonic 0.82.0, released on March 25, 2024.


Not yet documented.

Release 0.81.0

Welcome to Zotonic 0.81.0, released on January 12, 2024.


Try to detect the language of a translation. Set is_editable_only to false to detect any language, even if the language…


Request a translation of a list of strings. The resulting translations must be in the same order as the request. This…

Release 0.80.0

Welcome to Zotonic 0.80.0, released on November 21, 2023.

About collaboration groups

Working together on private content. Groups can organize and manage members without the complexity of the full access…


Format dispatch path element so variables will be more visible.


Format dispatch controller options.


Filter a list of media items by their medium_language property, return the best matching with the current or given…

Building a live updating search page

Search pages are often simple forms that reload the page with new arguments. In this article we will show how you can…

Tracing templates for greater understanding

A picture tells a thousand words, so we added an exciting new development tool to explore which templates are used…


Truncate a text to a maximum length in characters.


Returns all resource ids in a menu. Could return invisible and non existing resource ids. The returned ids are a flat…

Release 0.78.1

Welcome to Zotonic 0.78.1, released on July 6, 2023.

Release 0.78.0

Welcome to Zotonic 0.78.0, released on June 29, 2023.


Change the language of an URL to another language. Useful to generate alternative URLs for a page.


Add header columns for export. The values are the names of the answers and the text displayed above the column. The…


Used by the survey module to add extra column values to the result editor.

Release 0.77.0

Welcome to Zotonic 0.77.0, released on May 25, 2023.


Modify row with answers for export. The header columns are given and the values that are known are set in the folded…

Release 0.76.0

Welcome to Zotonic 0.76.0, released on April 4, 2023.


Modify the list of collaboration groups of a user. Called internally by the ACL modules when fetching the list of…

Release 0.75.0

Welcome to Zotonic 0.75.0, released on March 2, 2023.


Used on the mailing list subscriptions page where users and recipients can unsubscribe from mailinglists.

Release 1.0.0-rc.15

Released on 2023-01-30.


Wrap external content in such a way that it is only loaded if the user consented to the inclusion of the content (and…


Optionally wrap HTML with external content so that it adheres to the cookie/privacy settings of the current site…


Translates a (English) value to the current language or the given language.

Release 1.0.0-rc.14

Released on 2022-12-23.


Modify the list of user groups of a user. Called internally by the ACL modules when fetching the list of user groups a…


Add an editorial note to any resource.


Map a custom search term to a #search_sql_term{} record.

Release 0.73.0

Welcome to Zotonic 0.73.0, released on December 8, 2022.

Release 1.0.0-rc.13

Released on 2022-12-05.


Decode a text where characters are encoded as URL-safe characters.


Lookup a specific translation in a translated text. If the text is not translated then the text is returned as-is.

Release 0.72.0

Welcome to Zotonic 0.72.0, released on November 21, 2022.

Release 1.0.0-rc.12

Released on 2022-11-17.

Release 1.0.0-rc.11

Released on 2022-11-11.

Release 1.0.0-rc.10

Released on 2022-10-31.

Release 0.71.0

Welcome to Zotonic 0.71.0, released on October 18, 2022.

Release 1.0.0-rc.9

Released on 2022-10-12.


Round a number value to a number of significant digits. The significance defaults to two digits.

Release 0.70.1

Welcome to Zotonic 0.70.1, released on September 26, 2022.

Release 0.70.0

Welcome to Zotonic 0.70.0, released on September 16, 2022.

Release 1.0.0-rc.8

Released on 2022-09-13.

Security, templates and XSS prevention

Ensuring that you don't fall victim to cross site scripting and other injection attacks takes vigilance, eye for…


Normalize an email address, used in the identity management.

Release 0.69.0

Welcome to Zotonic 0.69.0, released on August 30, 2022.

Release 0.68.0

Welcome to Zotonic 0.68.0, released on July 21, 2022.

Release 0.67.0

Welcome to Zotonic 0.67.0, released on July 5, 2022.

Release 0.66.0

Welcome to Zotonic 0.66.0, released on May 24, 2022.


Delegates the request processing.

Support & Services

Community support - mailinglists Do you want to start a Zotonic based project?  Then join our mailing lists and discuss…

Download Zotonic

Get the latest release Download the latest release of Zotonic from Github. Use git clone, so that you can easily…

Release 0.65.0

Welcome to Zotonic 0.65.0, released on March 17, 2022.

Release 0.64.0

Welcome to Zotonic 0.64.0, released on March 4, 2022.


Fetch the data for an import of a resource. Returns data in the format used by m_rsc_export and m_rsc_import. Either…


Add a handler for receiving e-mail notifications


Access log event for http. Called from the z_stats.


Check for logon options, called if logon_submit returns undefined . This is used to fetch external (or local…


Send a request to the client to switch users. The zotonic.auth.worker.js will send a request to…


Return the options for the DKIM signature on outgoing emails. Called during email encoding.


Called just before validation of all query arguments by z_validation. This is the moment to filter any illegal…


Let all modules add resource specific response headers to the request. The accumulator is the list of headers to be set.


Notification to import a medium record from external source. This is called for non-file medium records, for example…


Determine the URL fetch options for fetching the content of an URL. Used by z_fetch.erl.


Send a request to the client to login a user. The zotonic.auth.worker.js will send a request to…


Modify the options for an image preview url or tag. This is called for every image url generation, except if the…

Other cookbooks

Create a custom action Create a custom filter Create a custom model Create a custom controller Custom pivots Create a…

Shell cookbook

Activate/deactivate modules Filter and convert characters Erlang tab completion Debugging db (query) issues Reset a…

Just enough…

These Cookbook items each represent a stage in some Zotonic users’ journeys to understand the workings of Erlang and…

Frontend cookbook

These cookbook entries contain valuable nuggets of information regarding the frontend development of a site.

Admin cookbook

Creating a custom widget on the edit page Customizing the layout of the admin edit page Customizing the style of an…


Takes a menu, or a menu resource id, and adds all haspart objects connected to the menu ids.


Return rtl or ltr depening on the direction of the language.


Ensures thant an HTML escaped value is properly escaped.

Release 0.63.0

Welcome to Zotonic 0.63.0, released on Oct 29, 2021.


Subtracts an hour from a date. The value must be of the form {{Y,M,D},{H,I,S}} .


Adds an hour to a date. The value must be of the form {{Y,M,D},{H,I,S}} .


Parses an URL (URI) using uri_string:parse/1 .


Not yet documented.


Simple controller for connection tests, used on the /test/connection page.


Test if the given URL is a url for the current site.

URLs and links

is_site_url url url_abs sanitize_url is_letsencrypt_valid_hostname urlize escape_link urlencode urldecode parse_url…


Non destructive edits of images.


Manages the medium_edit_settings property for non destructive image editing.

Create a custom controller

Zotonic comes with a large collection controllers that cover many use cases, so you’ll probably have to resort to…