Media Types/Display: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 15: | Line 15: | ||
* The standard directory for media templates is <code>mediagoblin/templates/mediagoblin/media_displays</code> |
* The standard directory for media templates is <code>mediagoblin/templates/mediagoblin/media_displays</code> |
||
This is an example of a <code>MEDIA_MANAGER</code> dict, see the <code>display_template</code> key. |
|||
MEDIA_MANAGER = { |
MEDIA_MANAGER = { |
||
"human_readable": "Video", |
"human_readable": "Video", |
||
"processor": process_video |
"processor": process_video, |
||
# 'mediagoblin.media_types.image.processing'? |
|||
"sniff_handler": sniff_handler, |
"sniff_handler": sniff_handler, |
||
"display_template": "mediagoblin/media_displays/video.html", |
"display_template": "mediagoblin/media_displays/video.html", |
||
Line 26: | Line 25: | ||
"accepted_extensions": [ |
"accepted_extensions": [ |
||
"mp4", "mov", "webm", "avi", "3gp", "3gpp", "mkv", "ogv", "m4v"]} |
"mp4", "mov", "webm", "avi", "3gp", "3gpp", "mkv", "ogv", "m4v"]} |
||
== Create the template == |
|||
The medie templates are [http://jinja.pocoo.org/docs/ Jinja2] |
|||
templates that extend upon the |
|||
<code>mediagoblin/templates/mediagoblin/user_pages/media.html</code> |
|||
template. They contain media-type-specifig markup used to display |
|||
the media. |
|||
This is an example of such a template. |
|||
<pre> |
|||
{# |
|||
# 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 %} |
|||
</pre> |
Revision as of 21:55, 22 June 2012
- 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 %}