Как расширить файл шаблона, если в нем не предусмотрено хуков?..
Проблема в следующем — есть файл topic_part_header, но в нем не предусмотрено хуков, которые бы позволили добавить туда что-нибудь. Но туда нужно добавить ссылку на новое действие с топиком. Подскажите, пожалуйста, как быть? Лезть в шаблон и менять не хочется, хотелось бы через плагин.
14 комментариев
в разрабатываемой версии лс в шаблонах используется наследование, так что проблема решена.
Скопировать в /plugins/abcplugin/templates/skin/default/ и править уже там.
имеется основной «слой», состоящий из расширяемых, дополняемых, редактируемых блоков содержимого, которые могут меняться плагинами.
К примеру, как изменить вот эту часть:
?
набор блоков вполне ещё может поменяться в зависимости от потребностей разработчиков. почаще заглядывайте на гит, просматривая места, которые нужно расширять.
эту часть нужно обернуть в блок. создайте исюшку.
Вот, к примеру, идет хук, а потом сразу блок:
Зачем?
www.smarty.net/docs/en/advanced.features.template.inheritance.tpl
Было бы шикарно, если бы каждый шаблон мог делегироваться, сохраняя свой parent, и при этом добавляя в нужные места нужные дополнения.
Хуки в таком случае вообще можно добавлять автоматически, некоторые стандартные, которые должны быть всегда — типа layout_start \ end, для каждого блока в html — block_{block_id}_start \ end, и т.п.
Это я к тому, что подобная система блоков ничем не отличается по сути от хуков. И если блок не прописан в шаблоне, его все равно не поменять иначе, кроме как полным делегированием (или, как вы и предложили, через js).
вы по ссылке прошли и прочитали все?
чтобы не писать не совсем верные вещи нужно все же осилить и прочитать документацию.
наследование частично (большую часть) этих проблем решает именно из-за использования блоков. прочитайте про манипуляции их содержимого.