Very start of plugin hooks and openstreetmap pluginification
- Added start of template hook code to pluginapi.py - Started to break openstreetmap into plugin; moved templates - Added plugin hooks in media and image media templates ... almost certainly, none of this works yet. :)
This commit is contained in:
parent
04453ccf42
commit
1c2d01ae3b
@ -18,5 +18,13 @@
|
|||||||
|
|
||||||
{% extends 'mediagoblin/user_pages/media.html' %}
|
{% extends 'mediagoblin/user_pages/media.html' %}
|
||||||
|
|
||||||
|
{% from "/mediagoblin/utils/templatehooks.html" import template_hook %}
|
||||||
|
|
||||||
|
{% block mediagoblin_head %}
|
||||||
|
{{ super() }}
|
||||||
|
{% template_hook "image_extrahead" %}
|
||||||
|
{% endblock mediagoblin_head %}
|
||||||
|
|
||||||
{% block mediagoblin_sidebar %}
|
{% block mediagoblin_sidebar %}
|
||||||
|
{% template_hook "image_sideinfo" %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
{% extends "mediagoblin/base.html" %}
|
{% extends "mediagoblin/base.html" %}
|
||||||
|
|
||||||
{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %}
|
{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %}
|
||||||
|
{% from "/mediagoblin/utils/templatehooks.html" import template_hook %}
|
||||||
{% from "mediagoblin/utils/pagination.html" import render_pagination %}
|
{% from "mediagoblin/utils/pagination.html" import render_pagination %}
|
||||||
|
|
||||||
{% block title %}{{ media.title }} — {{ super() }}{% endblock %}
|
{% block title %}{{ media.title }} — {{ super() }}{% endblock %}
|
||||||
@ -30,15 +31,7 @@
|
|||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="{{ request.staticdirect('/js/keyboard_navigation.js') }}"></script>
|
src="{{ request.staticdirect('/js/keyboard_navigation.js') }}"></script>
|
||||||
|
|
||||||
{% if app_config['geolocation_map_visible'] %}
|
{% template_hook "media_extrahead" %}
|
||||||
<link rel="stylesheet"
|
|
||||||
href="{{ request.staticdirect('/extlib/leaflet/leaflet.css') }}" />
|
|
||||||
|
|
||||||
<script type="text/javascript"
|
|
||||||
src="{{ request.staticdirect('/extlib/leaflet/leaflet.js') }}"></script>
|
|
||||||
<script type="text/javascript"
|
|
||||||
src="{{ request.staticdirect('/js/geolocation-map.js') }}"></script>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock mediagoblin_head %}
|
{% endblock mediagoblin_head %}
|
||||||
|
|
||||||
{% block mediagoblin_content %}
|
{% block mediagoblin_content %}
|
||||||
@ -206,8 +199,11 @@
|
|||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% template_hook "media_sideinfo" %}
|
||||||
|
|
||||||
{% block mediagoblin_sidebar %}
|
{% block mediagoblin_sidebar %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -83,6 +83,9 @@ class PluginManager(object):
|
|||||||
# list of registered template paths
|
# list of registered template paths
|
||||||
"template_paths": set(),
|
"template_paths": set(),
|
||||||
|
|
||||||
|
# list of template hooks
|
||||||
|
"template_hooks": {},
|
||||||
|
|
||||||
# list of registered routes
|
# list of registered routes
|
||||||
"routes": [],
|
"routes": [],
|
||||||
}
|
}
|
||||||
@ -131,6 +134,28 @@ class PluginManager(object):
|
|||||||
def get_routes(self):
|
def get_routes(self):
|
||||||
return tuple(self.routes)
|
return tuple(self.routes)
|
||||||
|
|
||||||
|
def register_template_hooks(self, template_hooks):
|
||||||
|
"""
|
||||||
|
Register a dict of template hooks.
|
||||||
|
|
||||||
|
Takes template_hooks as an argument, which is a dictionary of
|
||||||
|
template hook names/keys to the templates they should provide.
|
||||||
|
(The value can either be a single template path or an iterable
|
||||||
|
of paths.)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
{"media_sidebar": "/plugin/sidemess/mess_up_the_side.html",
|
||||||
|
"media_descriptionbox": ["/plugin/sidemess/even_more_mess.html",
|
||||||
|
"/plugin/sidemess/so_much_mess.html"]}
|
||||||
|
"""
|
||||||
|
for hook, templates in template_hooks.items():
|
||||||
|
if isinstance(templates, (list, tuple)):
|
||||||
|
self.template_hooks.setdefault(hook, []).extend(list(templates))
|
||||||
|
else:
|
||||||
|
# In this case, it's actually a single callable---not a
|
||||||
|
# list of callables.
|
||||||
|
self.hooks.setdefault(hook, []).append(templates)
|
||||||
|
|
||||||
|
|
||||||
def register_routes(routes):
|
def register_routes(routes):
|
||||||
"""Registers one or more routes
|
"""Registers one or more routes
|
||||||
@ -208,3 +233,5 @@ def get_config(key):
|
|||||||
return plugin_section.get(key, {})
|
return plugin_section.get(key, {})
|
||||||
|
|
||||||
|
|
||||||
|
def register_template_hooks(template_hooks):
|
||||||
|
PluginManager().register_template_hooks(template_hooks)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user