Например добавить кусок текста или заменить его и т.д.
Пока придумал два варианта:
1. Плагин наследует от нужных шаблонов
Соответственно все выглядит как наследование шаблона с переопределением блоков, если они определены и т.д.
Внутри все будет реализовано через TemplateLoader
при регистрации плагина его шаблоны регистрируются и загрузчик вначале ищет шаблон в папке плагина (или плагинов) а затем уже в остальных.
Если произошло наследование шаблона то процесс поиска повторяется за исключением того что из поиска убирается ТЕКУЩИЙ шаблон и ОБРАБОТАННЫЕ шаблоны плагинов, чтобы имена переопределяемых шаблонов совпадали.
пример:
# системный шаблон - template1
text
{% block content %}
bla bla bla
{% endblock %}
continue
-----
# шаблон плагина - template1 (с таким же именем)
{% extends "template1" %} {# будет найден системный шаблон или шаблон другого плагина с таким же именем #}
{% block content %}
привет из плагина
{{ super () }}
тра та та
{% endblock %}
минус - не понятно как менять уже существующий шаблон
выглядит примерно так
....
{# регистрируем места вставок в шаблоне #}
{{ reg_ins_point('point_name_1') }}
....
{{ reg_ins_point('point_name_2') }}
@ins_point('point_name') # указываем что хотим вставить содержимое в точку point_name_1
def point_content():
return 'template', {} # возвращаем шаблон и параметры для рендеринга
Заранее спасибо