Freeform_Next:Submissions tag
The Freeform_Next:Submissions template tag fetches an individual submission or list of submissions based on some or no criteria.
Parameters
date_range
Ability to limit results that were submitted within a specified timeframe. Options are:
today
this week
this month
last month
this year
date_range_start
Ability to limit results that were submitted within a specified timeframe. Used in conjunction with date_range_end
parameter. Specify a date in which you want entry submissions to start at (be no older than), using standard EE date syntax, or PHP datetime and relative formats. E.g.:
date_range_start="2017-01-01 12:00 PM"
date_range_start="2 weeks ago"
date_range_end
Ability to limit results that were submitted within a specified timeframe. Used in conjunction with date_range_start
parameter. Specify a date in which you want entry submissions to stop at (be no newer than), using standard EE date syntax, or PHP datetime and relative formats. E.g.:
date_range_end="2017-12-31 12:00 PM"
date_range_end="1 month"
form
Handle of the form, e.g. form="composer_form"
, or an array of handles: form="composer_form|client_survey"
. Use form="not composer_form"
to select all submissions EXCEPT the ones for Composer Form form.
form_id
The ID of the form, e.g. form_id="2"
, or array of ID's, e.g. form_id="1|2|3"
. If you want to select all form submissions EXCEPT the form with an ID of 1, use form_id="not 1"
.
limit
Supply the maximum number of submissions you want to be returned, e.g. limit="25"
offset
Skip the first specified amount of entries in the results, e.g. offset="2"
orderby
Use title
, date
, status
or any field handle to order by that value, e.g. orderby="first_name"
.
paginate
Control where the pagination will display. Options are top
, bottom
, or both
. E.g. paginate="both"
. Used in conjunction with the submission:paginate
variable pair.
sort
The sort order of the results. Use asc
or desc
, e.g. sort="asc"
.
status
Specify a status to fetch submissions with a certain status, e.g. status="open"
, or an array of statuses: status="open|pending"
.
submission_id
Used to limit results to a specific submission or set of submissions, e.g. submission_id="22"
, or array of ID's, e.g. submission_id="22|45|56"
token
Specify the token of the submission you'd like to view. Can be used instead of submission_id
to more securely display submission data on the front end.
You can feed the submission token into the URL with the {submission:token}
variable from a template that includes the Freeform_Next:Submissions template tag, or in email notification templates, etc.
search:FIELD_NAME
Used to filter your submission results by a hardcoded search term, e.g., search:city="winnipeg"
will show only submissions that contain the value winnipeg
in the city
field. It works mostly like the search:field="value" parameter in the Channel:Entries tag (though some more advanced options may not work).
Variables
{form:name}
The name of the form the submission belongs to. For form ID, use {form:id}
For form handle, use {form:handle}
{submission:id}
The submission's unique ID.
{submission:token}
- The token generated for the submission.
- A common use-case for tokens would be when you want to have a more secure URL for accessing and displaying submission data, or allowing users to edit their own submission and not requiring any login, etc.
- Required if you wish to allow editing of submissions on front end.Pro
{submission:date}
The date the submission was submitted, e.g. {submission:date format="%Y-%m-%d %g:%i %a"}
{submission:title}
The submission's title.
{submission:FIELD_HANDLE:value}
Manually access any field in the submission's form by the field's handle. If you have a field with a handle first_name
, you can access its value by calling {submission:first_name:value}
or get its label with {submission:first_name:label}
.
The following variables are available for rendering field data:
{submission:FIELD_HANDLE:value}
- the submitted value. Array values get joined via a,
separator.{submission:FIELD_HANDLE:label}
- the label of the field.{submission:FIELD_HANDLE:type}
- the type of field, e.g.checkbox_group
,textarea
, etc.
See {submission:fields}
variable pair for automated approach.
{submission:status}
The status of the submission. For status color, use {submission:status_color}
, which returns the HEX value, e.g. #ff0000
. For status handle, use {submission:status_handle}
{submission:absolute_count}
Returns the absolute position number of the submission within the list of results, including paginated results.
{submission:absolute_results}
Returns the absolute total amount of submissions being displayed in the results, including paginated results. Typically used in a conditional statement.
{submission:count}
Returns the position number for each result in the list of submissions (within the page, if using pagination).
{submission:total_results}
Returns the total amount of submissions being displayed in the results (within the page, if using pagination). Typically used in a conditional statement.
{submission:switch}
Allows you to switch a CSS class back and fourth for all outputted results, e.g. {submission:switch="style_one|style_two"}
{submission:attachment_count}
Returns the total number of files uploaded across all file upload fields for the submission. For example, if you had 2 fields that were the file upload field type, and one had 2 file uploads within it, while the other had one, and each contained files uploaded, the total value would be 3.
Variable Pairs
{submission:fields}{/submission:fields}
Contains all fields that store values (doesn't include HTML fields, submit fields, mailing-list fields).
The following variables are available for rendering field data:
{field:value}
- the submitted value. Array values get joined via a,
separator.{field:label}
- the label of the field{field:handle}
- the handle of the field{field:type}
- the type of field, e.g.checkbox_group
,textarea
, etc
{submission:paginate}{/submission:paginate}
Renders pagination for submission results. Works just like regular EE pagination, but the variable pair is prepended with submission:
. Used in conjunction with the paginate
parameter. Can be displayed as one of two ways:
{submission:paginate} Page {current_page} of {total_pages} pages.
{pagination_links} {/submission:paginate}
OR
{submission:paginate}
<ul class="pagination">
{pagination_links}
{first_page}
<li><a href="{pagination_url}">First</a></li>
{/first_page}
{previous_page}
<li><a href="{pagination_url}">« 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 »</a></li>
{/next_page}
{last_page}
<li><a href="{pagination_url}">Last</a></li>
{/last_page}
{/pagination_links}
</ul>
{/submission:paginate}
Conditionals
{if submission:no_results}{/if}
Displays its contents when there are no results found for this template tag with the given set of parameters.
Examples
Simple List of Submissions
Display a simple list of submissions:
<ul>
{exp:freeform_next:submissions form="contact" limit="20" orderby="date"
sort="desc" }
<li>
<a href="{path='form/submission/{submission:id}'}">{submission:title}</a>
{submission:date format="%Y-%m-%d %g:%i %a"}
</li>
{if submission:no_results}
<li>There are currently no submissions for this form.</li>
{/if} {/exp:freeform_next:submissions}
</ul>
Complete Table of Submissions
Display a more complete table view of submissions with table heading (generated by Freeform_Next:Form tag) and pagination:
{exp:freeform_next:form
form="contact"
no_form_tags="true"
}
<h3>{form:name}</h3>
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>Title</th>
<th>Date</th>
<th>Status</th>
{form:fields}
{if field:can_store_values}
<th>{field:label}</th>
{/if}
{/form:fields}
<th>Files</th>
</tr>
</thead>
<tbody>
{exp:freeform_next:submissions
form="contact"
limit="20"
orderby="date" sort="desc"
paginate="bottom"
}
<tr>
<td>{submission:id}</td>
<td><a href="{path='form/submission/{submission:id}'}">{submission:title}</a></td>
<td>{submission:date format="%Y-%m-%d %g:%i %a"}</td>
<td><span style="color: {submission:status_color};">{submission:status}</span></td>
{submission:fields}
{if field:can_store_values}
<td>{field:value}</td>
{/if}
{/submission:fields}
<td>{submission:attachment_count} file{if submission:attachment_count != "1"}s{/if}</td>
</tr>
{if submission:no_results}
<tr>
<td colspan="100">There are currently no submissions for this form.</td>
</tr>
{/if}
{submission:paginate}
<tr>
<td colspan="100">
<ul class="pagination">
{pagination_links}
{first_page}
<li><a href="{pagination_url}">First</a></li>
{/first_page}
{previous_page}
<li><a href="{pagination_url}">« 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 »</a></li>
{/next_page}
{last_page}
<li><a href="{pagination_url}">Last</a></li>
{/last_page}
{/pagination_links}
</ul>
</td>
</tr>
{/submission:paginate}
{/exp:freeform_next:submissions}
</tbody>
</table>
{/exp:freeform_next:form}
Single Submission Details
Display a single submission, complete with special handling for File Upload and Table fields:
{exp:freeform_next:submissions form="contact" submission_id="{segment_3}" }
<h3>{form:name} - {submission:title}</h3>
<table class="table table-striped">
{submission:fields}
<tr>
<th style="width: 20%;">{field:label}</th>
<td>
{if field:type == "file"} {!-- special handling for File fields --} {if
field:value} {exp:file:entries file_id="{field:value}" dynamic="no"} {if
extension == "gif" OR extension == "jpg" OR extension == "jpeg" OR
extension == "png"}
<img src="{file_url}" width="{width}" height="{height}" alt="{title}" />
{if:else}
<a href="{file_url}">{title}</a>
{/if} {/exp:file:entries} {if:else} No file(s) uploaded {/if} {if:elseif
field:type == "table"} {field:layout}
<table class="form-table table" id="form-input-{field:handle}">
<thead>
<tr>
{layout:columns}
<th>{column:label}</th>
{/layout:columns}
</tr>
</thead>
<tbody>
{layout:rows}
<tr>
{row:columns}
<td>{column:value}</td>
{/row:columns}
</tr>
{/layout:rows}
</tbody>
</table>
{/field:layout} {if:else} {field:value} {/if}
</td>
</tr>
{/submission:fields}
</table>
{if submission:no_results}
<div class="alert">Sorry, no submission was found.</div>
{/if} {/exp:freeform_next:submissions}
Single Submission Manual
Display a single submission with manually set variables:
{exp:freeform_next:submissions form="contact" submission_id="{segment_3}" }
<table class="table table-striped">
<tr>
<th style="width: 20%;">Name</th>
<td>{submission:first_name:value} {submission:last_name:value}</td>
</tr>
<tr>
<th>{submission:email:label}</th>
<td>{submission:email:value}</td>
</tr>
<tr>
<th>Date Submitted</th>
<td>{submission:date format="%l, %F %j, %Y at %g:%i%a"}</td>
</tr>
{if submission:file_upload:value}
<tr>
<th>{submission:file_upload:label}</th>
<td>
{exp:file:entries file_id="{submission:file_upload:value}"} {if extension
== "gif" OR extension == "jpg" OR extension == "jpeg" OR extension ==
"png"}
<img src="{file_url}" width="{width}" height="{height}" alt="{title}" />
{if:else}
<a href="{file_url}">{title}</a>
{/if} {/exp:file:entries}
</td>
</tr>
{/if}
</table>
{if submission:no_results}
<div class="alert">Sorry, no submission was found.</div>
{/if} {/exp:freeform_next:submissions}