Media Types/Display
Jump to navigation
Jump to search
- I'm currently working on this page
- Joar 16:29, 22 June 2012 (EDT)
Media type display pages are media type-specific
Jinja2 templates defined in the media type's MEDIA_MANAGER['display_template'].
Set the template path
The path for the media type display template is configured in
the MEDIA_MANAGER object for each media type.
The MEDIA_MANAGER is configured in
(mediagoblin/)media_types/$MEDIA_TYPE/__init__.py.
- The path to the template should be relative to the
mediagoblin/templates/directory. - The standard directory for media templates is
mediagoblin/templates/mediagoblin/media_displays
This is an example of a MEDIA_MANAGER dict, see the display_template key.
MEDIA_MANAGER = {
"human_readable": "Video",
"processor": process_video,
"sniff_handler": sniff_handler,
"display_template": "mediagoblin/media_displays/video.html",
"default_thumb": "images/media_thumbs/video.jpg",
"accepted_extensions": [
"mp4", "mov", "webm", "avi", "3gp", "3gpp", "mkv", "ogv", "m4v"]}
Create the template
The medie templates are Jinja2
templates that extend upon the
mediagoblin/templates/mediagoblin/user_pages/media.html
template. They contain media-type-specifig markup used to display
the media.
This is an example of such a template.
{#
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends 'mediagoblin/user_pages/media.html' %}
{% block mediagoblin_head %}
{{ super() }}
<script type="text/javascript"
src="{{ request.staticdirect('/js/extlib/video-js/video.js') }}"></script>
<link href="{{ request.staticdirect('/css/vjs-mg-skin.css') }}" rel="stylesheet">
{% endblock %}
{% block mediagoblin_media %}
<div class="video-player" style="position: relative;">
<video class="video-js vjs-mg-skin"
width="{{ media.media_data.width }}"
height="{{ media.media_data.height }}"
controls="controls"
preload="metadata"
data-setup="">
<source src="{{ request.app.public_store.file_url(
media.media_files['webm_640']) }}"
type="video/webm; codecs="vp8, vorbis"" />
<div class="no_html5">
{%- trans -%}Sorry, this video will not work because
your web browser does not support HTML5
video.{%- endtrans -%}<br/>
{%- trans -%}You can get a modern web browser that
can play this video at <a href="http://getfirefox.com">
http://getfirefox.com</a>!{%- endtrans -%}
</div>
</video>
</div>
{% if 'original' in media.media_files %}
<p>
<a href="{{ request.app.public_store.file_url(
media.media_files['original']) }}">
{%- trans -%}
Original
{%- endtrans -%}
</a>
</p>
{% endif %}
{% endblock %}