Documentation

All Documentation

Directory structure

Zotonic is a set of regular OTP applications. These can be found in the repository’s apps/ directory:

disable

Sets the “disabled” attribute of a HTML tag and adds the CSS class “disabled”.

dispatch

Dispatch rules Name Path Resource Args letsencrypt_challenge [“.well-known”,”acme-challenge”,token]…

dispatch

Dispatch rules Name Path Resource Args admin_category_sorter [“admin”,”category”] controller_admin_category_sorter…

dispatch

Dispatch rules Name Path Resource Args admin_merge_rsc [“admin”,”merge”,id] controller_admin_edit [{template

dispatch

Dispatch rules Name Path Resource Args admin_comments [“admin”,”comments”] controller_admin_comments [seo_noindex]…

dispatch

Dispatch rules Name Path Resource Args admin_statistics [“admin”,”statistics”] controller_admin_statistics []…

dispatch

Dispatch rules Name Path Resource Args admin_seo [“admin”,”seo”] controller_admin_seo [seo_noindex]…

dispatch

Dispatch rules Name Path Resource Args logoff [“logoff”] controller_logoff [] logon [“logon”] controller_template…

dispatch

Dispatch rules Name Path Resource Args zotonic_sites_add [“zotonic”,”sites”,”add”] controller_zotonic_status…

dispatch

Dispatch rules Name Path Resource Args oauth2_consumer_authorize [“oauth-service”,”authorize”,”zotonic”

dispatch

Dispatch rules Name Path Resource Args id [“id”,id] controller_id [] lib [“lib”,’*’] controller_file [{root

dispatch

Dispatch rules Name Path Resource Args admin_predicate [“admin”,”predicate”] controller_admin [{acl_module

dispatch

Dispatch rules Name Path Resource Args admin [“admin”] controller_admin [seo_noindex] admin_logon [“admin”

dispatch

Dispatch rules Name Path Resource Args fileuploader [“fileuploader”,”upload”,name] controller_fileuploader []…

dispatch

Dispatch rules Name Path Resource Args admin_custom_redirect [“admin”,”custom-redirect”] controller_admin…

dispatch

Dispatch rules Name Path Resource Args admin_frontend_edit [“edit”] controller_page [{acl,is_auth},{template

dispatch

Dispatch rules Name Path Resource Args admin_log [“admin”,”log”] controller_admin [{template,”admin_log.tpl”}

dispatch

Dispatch rules Name Path Resource Args linkedin_authorize [“oauth-service”,”authorize”,”linkedin”]…

dispatch

Final try for dispatch, try to match the request. Called when the site is known, but no match is found for the path

dispatch

Dispatch rules Name Path Resource Args microsoft_authorize [“oauth-service”,”authorize”,”microsoft”]…

dispatch

Dispatch rules Name Path Resource Args sitemap_xml [“sitemap.xml”] controller_template [{template,”sitemap.tpl”}

dispatch

Dispatch rules Name Path Resource Args twitter_authorize [“oauth-service”,”authorize”,”twitter”]…

dispatch

Dispatch rules Name Path Resource Args admin_config [“admin”,”config”] controller_admin_config [seo_noindex]…

dispatch

Dispatch rules Name Path Resource Args admin_import [“admin”,”import”] controller_admin [{template,”_admin_import.

dispatch

Dispatch rules Name Path Resource Args admin_filestore [“admin”,”filestore”] controller_admin [{template

dispatch

Dispatch rules Name Path Resource Args facebook_authorize [“oauth-service”,”authorize”,”facebook”]…

dispatch

Dispatch rules Name Path Resource Args acl_rule_test [“acl”,”rules”,”test”] controller_template [{template

dispatch

Dispatch rules Name Path Resource Args admin_auth2fa_config [“admin”,”authentication-2fa”] controller_admin [{ssl

dispatch

Dispatch rules Name Path Resource Args admin_l10n [“admin”,”localization”] controller_admin [{template,”admin_l10n.

dispatch

Dispatch rules Name Path Resource Args admin_menu_hierarchy [“admin”,”hierarchy”,name] controller_admin [{template

dispatch

Dispatch rules Name Path Resource Args signup [“signup”] controller_signup [] signup_confirm [“signup”,”confirm”]…

dispatch

Dispatch rules Name Path Resource Args contact [“contact”] controller_page [{template,”contact.tpl”},{id

dispatch-cotonic

Dispatch rules Name Path Resource Args mqtt_transport [“mqtt-transport”] controller_mqtt_transport []…

dispatch_export

Dispatch rules Name Path Resource Args export_rsc [“export”,”rsc”] controller_export_resource [] export_rsc…

dispatch_host

Try to find the site for the request Called when the request Host doesn’t match any active site.

dispatch_mailinglist

Dispatch rules Name Path Resource Args admin_mailinglist [“admin”,”mailinglists”] controller_admin_mailinglist…

dispatch_module_admin

Dispatch rules Name Path Resource Args admin_modules [“admin”,”modules”] controller_admin_module_manager…

Dispatch notifications

content_types_dispatch dispatch dispatch_host dispatch_rewrite page_url url_abs url_rewrite

dispatch_rewrite

Rewrite a URL before it will be dispatched using the z_sites_dispatcher

Dispatch rules

Dispatch rules route incoming requests to controllers.

dispatch-test

Dispatch rules Name Path Resource Args initial_test [“test”,”initial_postback_test”] controller_template…

dispatch_translation

Dispatch rules Name Path Resource Args admin_translation [“admin”,”translation”] controller_admin [{acl_module

Displaying a site map

For the benefit of search engines and fans of tables of contents you can easily provide a site map.

Docker

We offer the Docker image zotonic/zotonic-dev which contains build tools and Erlang.

DOM Elements

add_class animate buttonize effect fade_in fade_out hide insert_after insert_before insert_bottom insert_top…

Download Zotonic

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

draggable

Mark a html element as draggable.

dropbox_file

Handle a new file received in the ‘files/dropbox’ folder of a site. Unhandled files are deleted after a hour.

droppable

Mark an element as valid drag destination.

Dynamic select options using a wired template

Why Suppose you want to wire a change event for a select box to update a another select box, i.e. you want to wire the…

edge_delete

An edge has been deleted Note that the Context for this notification does not have the user who deleted the edge.

edge_insert

An edge has been inserted. Note that the Context for this notification does not have the user who created the edge.

Edge notifications

edge_delete edge_insert edge_update

edge_update

An edge has been updated Note that the Context for this notification does not have the user who updated the edge.

Editor

editor_add editor_remove zlink zmedia zmedia_choose zmedia_has_chosen

editor_add

Add WYSIWYG editor controls to all textarea’s with the z_editor class in the target.

editor_remove

Remove any WYSIWYG editor controls from all textarea’s with the z_editor class in the target.

effect

Add a $(..).effect jQuery call to the target element.

element

Select an element from a tuple or list of tuples.

email

Check if the content of the input field is an e-mail address.

email_add_handler

Add a handler for receiving e-mail notifications

email_bounced

Bounced e-mail notification. The recipient is the e-mail that is bouncing. When the the message_nr is unknown the it…

email_dkim_options

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

email_drop_handler

Drop an e-mail handler for a user/resource id. (notify). The notification, user and resource should be the same as when…

email_ensure_handler

Add a handler for receiving e-mail notifications

email_failed

Notify that we could NOT send an e-mail (there might be a bounce later…) The Context is the depickled z_email:send/2…

E-mail handling

Any Zotonic system is capable of sending and receiving e-mail messages over SMTP.

email_is_blocked

Check if an email address is blocked

E-mail notifications

email_add_handler email_bounced email_dkim_options email_drop_handler email_ensure_handler email_failed…

email_received

Notification sent to a site when e-mail for that site is received

email_send_encoded

Add a handler for receiving e-mail notifications

email_sent

Notify that we could NOT send an e-mail (there might be a bounce later…) The Context is the depickled z_email:send/2…

email_status

Email status notification, sent when the validity of an email recipient changes

email_unique

Check if an entered e-mail address is unique, by looking in the m_identity table for the email key:

embedded_media

Fetch media ids that are embedded in the body , body_extra and text blocks of your page.

enable

Resets the “disabled” attribute of a HTML tag and removes the CSS class “disabled”.

Enabling Growl Notifications

Using growl outside admin requires some magic to make it work.

Encryption

md5 sha1

eq_day

Tests if the value is a date and equal to the argument. The value and the argument must be a tuple of the format {Y,M

Erlang tab completion

Get quicker access to Zotonic code on the shell.

escape

HTML escape a text. Escapes all reserved HTML characters in the value. Escaped strings are safe to be displayed in a…

escape_check

Ensures thant an HTML escaped value is properly escaped.

escape_ical

Escape the value according to the RFC2445 rules.

escapejs

Escapes the value for insertion in JavaScript output.

escapejson

Escapes the value for insertion in JSON output.

escape_link

Convert any URLs in a plaintext into HTML links, with adding the rel="nofollow" attribute.

escapexml

Escape the value for insertion in xml output.

event

Bind actions to a jQuery event or submit a form.

Events

notify postback trigger_event publish

exclude

Filters a list on the value of a property, either on absence or inequality.

Execute tasks asynchronously using the task queue

The Zotonic task queue lets applications perform tasks asynchronously.

Exometer metrics

Zotonic comes with a system for collecting and exporting metrics (such as how much memory is used, how many database…

export_resource_content_disposition

mod_export - return the {ok, Disposition} for the content disposition.

export_resource_data

mod_export - fetch a row for the export, can return a list of rows, a binary, and optionally a continuation state.

export_resource_encode

mod_export - Encode a single data element.

export_resource_filename

mod_export - return the {ok, Filename} for the content disposition.

export_resource_footer

mod_export - Fetch the footer for the export. Should cleanup the continuation state, if needed.

export_resource_header

mod_export - Fetch the header for the export.