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.
{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}