Documentation
Browse by topic
Explore related documentation through its most useful keyword groups.
1031 items
Grouped by Architecture
A named transformation applied to a value inside a template expression.
Explore this clusterA typed event or request exchanged between decoupled Zotonic components through the notifier.
Explore this clusterA server-defined browser action or event binding connected through Zotonic wires.
Explore this clusterAn OTP application or site component that adds Zotonic behavior templates data and configuration.
Explore this clusterA namespaced interface for retrieving or changing data from Erlang templates MQTT or APIs.
Explore this clusterA server-side template_compiler document that renders data into HTML text email or another representation.
Explore this clusterA request handler that maps web requests to responses and coordinates authorization rendering or data transfer.
Explore this clusterA route declaration that matches a URL pattern and selects a controller with arguments.
Explore this clusterThe central Zotonic entity that represents content users media categories and other addressable objects.
Explore this clusterDocumentation not covered by the other keyword groups in this split.
Explore this clusterThis filter splits a list in shorter lists. It splits an array in sub-arrays of at most a given length. This is useful when displaying a list of items in…
Reports whether the ClamAV daemon ( clamd ) is available. The m.clamav.is_available model path sends a ping and returns true when the daemon responds with PONG…
Model to access the localStorage on the client (browser).
Model to access the sessionStorage on the client (browser).
Zotonic is a Content Management System (CMS).
The zotonic command runs a number of utility commands which all operate on a Zotonic instance.
The Zotonic shell gives you access to a running Zotonic instance with its code and data.
Model for comments attached to resources. It provides listing, moderation checks, counting, and retrieval of individual comments.
Ignore part of a template.
Compose another template and override its named blocks.
Zotonic has two places where a site's configuration is kept:
Trigger the deletion of a configuration value. Used in the admin.
Toggle a configuration value. Used in the admin, for instance when displaying a “live” checkbox the state of which should reflect a config value.
Global configuration Site configuration Port configurations
Show a JavaScript confirm message and on confirmation triggers one or more actions and/or sends a postback to the server.
Check if two inputs are the same.
Model for content-group checks, currently exposing whether a content group is in use.
Return a translated, human-readable label for a MIME content type.
Return the available content representations and URLs for a resource.
We encourage contributions to Zotonic from the community! This chapter describes how you can help improve Zotonic.
The admin controller is the main controller behind which admin pages are served. Its main purpose is that it does an authentication check (Is current user…
Download the site's access-control rules as a compressed Erlang term.
Shows the admin backup screen where you can download nightly backups that were made by module#mod_backup.
Shows the admin backup revisions screen where you can see older version for a resource.
Shows the admin category screen where you can edit the category tree, rearranging the categories, adding new categories, or removing existing ones.
Shows an admin screen with an overview of most recently created comments. The screen offers the option to moderate the comments or delete them entirely.
Shows an admin settings screen where you can edit settings related to module#mod_comment.
Shows the admin config editor. Here you can edit the key/value pairs of model#config.
The main admin edit controller. This controller serves the edit page where resources can be edited.
This controller shows the mailing lists that are available in the system.
Shows the recipients of the current mailing list. The recipients are listed in three columns, and have a checkbox next to them to deactivate them.
This controller shows a preview of what a resource that is being mailed would look like, in a popup window.
Display mailing history and the delivery status of an individual mailing run.
Serve the saved HTML copy of a mailing run for a specific language.
This controller shows the mailing status of a resource. It lists each mailing list available in the system, and shows whether or not the current resource has…
A controller for rendering preview thumbnails of any media embedded in a richtext-editor component of a resource on the controller#controller_admin_edit page.
Shows the list of Zotonic modules currently known to the system.
Shows the list of pages ( resources) which refer to this resource through an edge.
Shows a form with settings related to Search Engine Optimization.
Render the administration dashboard for live Zotonic system statistics.
controler_api processes authorized REST API requests: It provides an easy way to create API calls to allow computer programs to perform functions on your…
This controller manages all authentication cookies. It is called by the auth model in the browser.
Controller handling Content-Security-Policy reports.
Stream an export that is not tied to one resource.
Stream one resource, or a resource-derived list, in a negotiated export format.
Serve an uploaded-, resized- or library file.
Redirect to the controller controller_file.
The fileuploader controller is used to upload parts of a file.
Simple controller that always serves the string Hello, World!
This controller is called for serving http error pages.
Handle different content representations of a page.
Publish the site's RSA encryption public key as JavaScript.
Controller which sets the language as given in the code argument, and redirects the user back to the page given in the p argument.
Serve an ACME HTTP-01 challenge for Let's Encrypt certificate issuance.
Return the site's current Let's Encrypt reachability token as plain text.
Controller to log UI errors and events.
Controller that logs off a user, destroying the session. It also removes any “remember me” cookies the user has, so that auto-logon is disabled.
This controller is used as a jumping stone after a log on from the /logon page. The p argument is passed from the /logon page.
Controller which downloads the given mailinglist id as a CSV file.
Client-side receiver for results produced by the external media runner site. This controller belongs to mod_base , so each client site has a callback endpoint…
Controller for transport of MQTT data between the browser (client) and server.
Return an empty HTTP 204 No Content response.
Exchange OAuth 2.0 credentials for a bearer access token.
Start an OAuth login with an external identity provider.
Complete the browser-facing redirect step of an external OAuth login.
Show a rsc as a HTML page.
Simple controller for connection tests, used on the /test/connection page.
Redirect to another url.
Controllers are the Erlang modules which decide what happens when a browser requests a page. Zotonic looks at the dispatch rules that match the requested URL
Controller which displays a form to sign up (rendered from signup.tpl ).
Controller which displays the confirmation page where the user can confirm his signup.
Serve a static page or pages.
Show a template.
Example controller used by the Zotonic test sandbox.
This controller does a redirect to the website property of the given resource.
HTTP hub and subscriber callback controller for mod_websub .
Serve the complete JSON representation advertised as a resource's WebSub topic.
Serve the Zotonic status site and fallback templates.
Model for copyright and rights metadata helpers, including Creative Commons lists, rights statement lookup, and attribution/year values.
Render the current dispatch path_info values as a URL query string.
Zotonic comes with a large collection controllers that cover many use cases, so you’ll probably have to resort to custom controllers less often than you may be…
Create custom template filters to change the way variables are rendered in your templates. By following some simple rules, Zotonic will automatically find the…
In this chapter we will look at how to implement a model around the The Open Movie Database (OMDB) API.
Custom tags, internally called scomps , are module-defined tags, which are used when the logic is too complex to be executed in templates.
Why For an imaginary webshop edit page, we want to add 2 more data fields: the affiliate URL and a note about free shipping.
Initialize your site with a proper data model and some resources through manage_schema .
If you are building a website then you might want to use the standard dialogs, overlays, authentication and other parts of Zotonic. To make those look like…
Support for custom client-side (JavaScript-based) validators.
Why After having created a custom widget (see Creating a custom widget on the edit page), we want to hide widgets that we don’t need.
You want to change parts of the form, or change its appearance.
How to make style customizations to admin pages.
Search can only sort and filter on resources that actually have a database column. Zotonic’s resources are stored in a serialized form. This allows you to very…
Model for custom redirect records, exposing redirect list and individual redirect lookup by id.
Implement a custom search by observing the search_query notification in your module. Imagine you want to search cookies in your database that either have…
Rotate through a list of values.
Formats a date or datetime according to the format specified in the argument.
Validate input date against a given date format.
Calculate the difference between two dates, returning a single part of that difference.
Show a date range.