Media Types/Display
Jump to navigation
Jump to search
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 %}