Ticket #96 (closed улучшение: fixed)

Opened 20 months ago

Last modified 10 months ago

Улучшение механизма хуков

Reported by: GeNtlE <viskubov@…> Owned by: ort
Priority: нормальный Component: ядро
Version: 0.4 Keywords:
Cc:

Description

Сделать поддержку открывающего и закрывающего тегов {hook}{/hook} дабы не заменять в плагине весь шаблон.

Пример: есть в настройках профиля вывод полей профиля с возможностью редактирования. В конце списка запускаются хуки. И можно только дописать своё. Поменять существующую структуру не получится. Допустим, есть задача на место полей ввода Страны и Города поставить три комбобокса со страной, регионом и городом. Решения нет, кроме как подменять весь шаблон.

Если бы синтаксис позволял сделать такое:

{hook run='profile_regions'}
				<p>
					<label for="profile_country">{$aLang.settings_profile_country}:</label><br /><input type="text" class="w300" 	id="profile_country" name="profile_country" value="{$oUserCurrent->getProfileCountry()|escape:'html'}"/><br />
					<label for="profile_city">{$aLang.settings_profile_city}:</label><br /><input type="text" class="w300" id="profile_city" name="profile_city" value="{$oUserCurrent->getProfileCity()|escape:'html'}"/><br />
				</p>
{/hook}

то если установлен хук, появляется возможность заменить то, что в тегах, либо вызвать его до открывающего или после закрывающего тегов.

Ещё пример — отображение на всех страницах сайта реальных имени и фамилии автора вместо ника.

 http://www.smarty.net/manual/ru/api.register.block.php — по-моему, оно.

Attachments

Change History

Changed 20 months ago by anonymous

Ещё пример применения — плагины подмены стандартной капчи. Варианты — как в Яндексе, рекапча и т.д.

Changed 10 months ago by ort

  • status changed from new to closed
  • resolution set to fixed

 http://trac.lsdev.ru/livestreet/changeset/1118

пример:

{hookb run="myhook"}
   nice content
{/hookb}

Add/Change #96 (Улучшение механизма хуков)

Author


E-mail address and user name can be saved in the Preferences.


Action
as closed
 
Note: See TracTickets for help on using tickets.