fm:MediaNext
Makes information about the next media item from a media list available.
Example
<fm:MediaNext>
<fm:Loop>
<a href="/mediadetail/{$$media_id}?{$$filter_string}">Next</a>
</fm:Loop>
<fm:NoResults>
This is the first item
</fm:NoResults>
</fm:MediaNext>
This component is intended to be used within a template arrived at from a media list component. It will accept the same filters and sorting options as a media list and make available details about the next media item in that list.
All attributes from the fm:MediaList component are supported with the exception of "pageSize" and "startPage". Most of these supported attributes may also be set via GET variables (the query string). Any filters or sorting set via attributes will override the same parameters within GET variables. This allows the developer to have this component only show the next media item matching specific filters without allowing the end user to bypass the filtering. You must provide an "offset" value for this component, leaving this attribute unset will generate an error. This can be accessed via the "filter_string" template variable provided by the fm:MediaList component or you can explicitly set this by accessing the "offset" template variable provided by the fm:MediaList component.
Below is another example showing a more complex usage of the fm:MediaNext component. This will provide a link to the next media item and show its thumbnail if available. This also demonstrates how we can ensure certain filters are not overridden by the user. By specifying the "channel" and "startTime" attributes we can be certain that the user is not able to modify these values within the query string to circumvent your business logic.
<fm:MediaNext channel="123" startTime="now -1 week">
<fm:Loop>
<a href="/mediadetail/{$$media_id}?{$$filter_string}">
<fm:Switch value="{$$media_filetype}">
<fm:Case multiValue="0">
Next
</fm:Case>
<fm:Case multiValue="1,2">
<img src="{$$media_thumbUrl}/11" />
</fm:Case>
<fm:Case multiValue="3">
<img src="/static/5/icons/media/audio_medium.png" />
</fm:Case>
<fm:Case multiValue="4">
<div class="mediaPreview">
<div class="thumb">
<fm:MediaViewer messageLength="100" />
</div>
</div>
</fm:Case>
</fm:Switch>
<img class="arrownext" src="/static/2/images/icons/buttons/control_fastforward.png" />
</a>
</fm:Loop>
</fm:MediaNext>
Supported attributes
| Name | Required | Default | Description |
|---|---|---|---|
| channel | Optional | 0 | The channel to filter on. This can be specified with either a shortname, or an id. |
| collection | Optional | 0 | The collection to use to display media. This has to be specified by its id. |
| context | Optional | "generic", if parentID is set then defaults to "comment" |
This is related to the parent and type of media.
|
| dateFormat | Optional | %Y-%m-%d %H:%i:%s | This attribute allows you to change the way dates are displayed within the list. By default it will be YYYY-MM-DD HH:MM:SS. The format which should be used is the same as PHP's date() function. |
| endTime | Optional | N/A | This attribute filters by the upload date. No media past the endTime will be returned. Usually you should use YYYY-MM-DD format, but things like 'yesterday' will also work. |
| evenClass | Optional | The contents of this attribute will be placed in the 'loop.evenClass' template variable, only for even row-numbers. This allows you to give every even row a specific css class | |
| eventId | Optional | 0 | Show media associated to an event. This has to be specified by id. |
| externalid | Optional | 0 |
Filters based on the contents of the external ID property of media items. If set this must be one of the following:
|
| favorite_uid | Optional | N/A | This attribute allows you to fetch a user's favorites. Specify the user's id. |
| fields | Optional | N/A | Comma separated list of fields to retrieve for this query. Remove "media_" from the template variable name to find the name you must provide in the fields list. e.g.: if you'd like to use the uploader's first name then you'll use the "media_user_firstname" template variable within the media list component. To specify you want this field retrieved you must list "user_firstname" in the fields attribute. |
| fileTypes | Optional | 1,2,3,4 | Allows you to filter by a specific filetype. 1 = image, 2 = video, 3 = audio, 4 = text. You can supply multiple values by separating them with comma's |
| geoBoundaries | Optional | N/A | Filter by latitude and longitude. Specify this as "{west longitude},{north latitude},{east longitude},{south latitude}". |
| groupId | Optional | N/A | Only show media from a specific group |
| hidden | Optional | N/A | One of "PUBLIC" (default), "PRIVATE", or "ALL". Usually this should only be set when a user filter is set as well to only show a specific user's private media. |
| includeChildren | Optional | 0 | Only used in conjunction with a channel filter. This allows you to specify if you'd like to get all media from the specified channel + media from underlying channels (when nested channels are used). This is specified as 0 for false, 1 for true. |
| moderationStatus | Optional | Project setting | This filter can be used to override a vhosts moderation setting. Possible values are unmoderated, accepted, denied, notdenied, moderated, all |
| notuid | Optional | N/A | Filter by a specific users id, or list of ids(separated by commas), that don't match. |
| oddClass | Optional | The contents of this attribute will be placed in the 'loop.oddClass' template variable, only for odd row-numbers. This allows you to give every odd row a specific css class | |
| offset | Optional | 0 | Only show media starting with this number. If for example 5 is supplied, the list with start with the 5th item in the query. |
| parentID | Optional | 0 | Only return media with the specified parentID. Note that setting this causes "context" to default to "comment" |
| parentUserID | Optional | N/A | Include only media whose parent's owner matches this ID. This must be used with a context filter restricting results to media with a parent (ie: context filter of "child", "comment", or "note"). Useful for showing all comments on any of a user's media in combination with the context filter |
| searchQuery | Optional | N/A | Allows you to search for media matching the query. The filename, title, description and tags will be used for the search. |
| sort | Optional | upload DESC | Allows you to sort by a specific field, for example upload ASC, rating DESC, commentcount DESC, votecount DESC. Specifying "default" as sort method when a channel filter is specified, will use sort order set in the channel settings(eg. sort=default). Multiple sort fields may be specified separated by commas, eg: sort="commentcount DESC, upload DESC" |
| startTime | Optional | N/A | This attribute filters by the upload date. No media before the startTime will be returned. Usually you should use YYYY-MM-DD format, but things like 'yesterday' will also work. |
| tag | Optional | N/A | This filter allows you to filter media by a specific tag. |
| uid | Optional | N/A | Filter by a specific users id, or list of ids(separated by commas). |
Deprecated Attributes
The following fields for the 'fields' attribute are supported:
- accounttype
- active
- address1
- address2
- approvedfiles
- avatar
- birthdate
- cellphone
- city
- country
- created
- deniedfiles
- description
- firstname
- friends
- gender
- geo_latitude
- geo_longitude
- id
- language
- lastname
- meta
- newsletter
- nickname
- occupation
- phone
- postalcode
- profile_complete
- publicfiles
- state
- unmoderatedfiles
- user
- vhost
- website
Template variables
| Name | Description |
|---|---|
| loop.hasResults | The contents of this variable will be either 0 or 1, depending on if there are items in the list. |
| loop.oddClass | The contents of this variable will reflect the "oddClass" attribute. This will only be set for odd rownumbers. |
| loop.evenClass | The contents of this variable will reflect the "evenClass" attribute. This will only be set for even rownumbers. |
| loop.index | The 0-based index of the item in the loop. (Will contain 0,1,2,3,4, etc.) |
| loop.count | The count of the current item in the loop. (Will contain 1,2,3,4,5 etc.) |
| loop.currentPage | If a pager is involved in this loop, this will contain the current page number (0-based index). If page information is not available, this will be 0. |
| loop.currentPage1 | This value is currentPage + 1. This number can be useful to display the current page number to use user. (people generally count from 1, not 0). |
| loop.totalPages | Total number of pages avaiable in this loop. This will be 0 if the loop does not support paging. |
| loop.totalItems | Total number of individual items. This will be 0 if the loop does not support paging. |
| loop.pageSize | Total number of items on 1 single page. This will be 0 if the loop does not support paging. |
| media_approvedcomments | The total number of approved comments for this file. |
| media_notdeniedcomments | The number of comments that have not been denied for this file. |
| media_channel | The channel-id if the file was associated to a channel. |
| media_channel_name | The name of the channel if the file was associated to a channel. |
| media_channel_shortname | The 'shortname' of the channel if the file was associated to a channel. |
| media_contenttype | The mimetype of the file, for example: audio/mp3. |
| media_conversiontime | The time needed to transcode the file, in seconds. |
| media_converttime | The date and time when the transcoding was completed for this file. |
| media_commentcount | The total number of comments to this file. |
| media_currentpage | The page number the user is currently on. |
| media_date | The original creation date of the file. If we cannot detect this, this will be the same as the upload date. |
| media_duration | The duration of the file in a human-readable format (example: 00:01:07). |
| media_extension | The original file extension, for example 'mp4' |
| media_filetype | The filetype. This is specified as a number between 1 and 4. Read below for more information. |
| media_filename | The original filename |
| media_filesize | The size of the file, in bytes. |
| media_height | The height of the original file in pixels. |
| media_hits | The number of views the file got. |
| media_id | The unique id of the file. |
| media_injector | A string describing the application that created the file, for example Uploader or Recorder. |
| media_length | The duration of the file in as a floating point number in seconds. (example: 187.33, for 3 minutes, 7 seconds) |
| media_message | The description of the file. |
| media_metadata | User or developer defined meta-data, read below for more information. |
| media_ofilesize | The total size of all transcoded versions of this file, including thumbnails in bytes. |
| media_offset | The offset of the current media-item within the current search query. The first item in the list will have 0, the second 1, the first item on the second page (if there are 30 items per page) will be 30 |
| media_publicUrl | The base-url associated with the file. See below for more information. |
| media_rating | The average rating. This is a floating point number between 0 and 10. 2 decimals are provided. |
| media_status | The status of the file. Generally this is always 3, meaning 'succesfully converted'. |
| media_title | The title of the file. |
| media_tags | A space delimited list of tags associated with the file. For example "amsterdam holiday". |
| media_uid | The id of the user who uploaded the file. |
| media_updownrating | This template variable will give you the "thumbs up/down" rating. The actual formula is actually based on the votecount and average rating, and assumes people rate 0 for down, and 10 for up. |
| media_upload | The date and time the file was added to the Media Factory. |
| media_uploadage | The time that has passed since the file was uploaded. The format will be for example 5 seconds, 20 minutes or 12 days. |
| media_user_city | The submitter's city. |
| media_user_country | The submitter's 2-letter country code. |
| media_user_firstname | The submitter's first name. |
| media_user_lastname | The submitter's last name. |
| media_user_name | The username of the person uploading the file. |
| media_user_nickname | The submitter's nickname. |
| media_user_state | The 2-letter state or province code of the submitter. |
| media_votecount | The total number of votes cast. |
| media_width | The width of the original file in pixels. |
| media_geo_latitude | The latitude of the file if available, otherwise empty. |
| media_geo_longitude | The longitude of the file if available, otherwise empty. |
| media_author | This field is used to retrieve the name entered by an anonymous user. Often used when users can comment without registering, by a captcha. |
developer documentation r21536