Добавление обработчика хука

Добавление обработчика хука

Для переноса модуля в хук, обработчика которого в нем не существует ищем в основном файле модуля (называется так же как папка модуля) уже существующий обработчик. Например для blockadvertising.php это

function hookRightColumn($params)
...

Затем для клонирования обработчика в другой хук добавляем следующий код:

function hookFooter($params)
{
	return $this->hookRightColumn($params);
}

Тем самым мы создали обработчик хука в футере, который отображает то же, что и хук в правой колонке. Теперь идем в админку Модули/Позиции/Расположить модуль. В верхнем выпадающем списке выбираем свой модуль, в нижнем - только что созданный хук.

Если же нужно не только клонировать хук, но и изменить отображаемое содержимое, то копируем уже существующий обработчик хука полностью и изменяем в нем название шаблона:

function hookRightColumn($params)
{
	global $smarty, $protocol_content, $server_host;
	$smarty->assign('image', $protocol_content.$this->adv_img);
	$smarty->assign('adv_link', $this->adv_link);
	return $this->display(__FILE__, 'blockadvertising1.tpl');
}

Затем копируем существующий шаблон blockadvertising.tpl как blockadvertising1.tpl и изменяем его по своему усмотрению. Остальные действия по расположению хука аналогичны алгоритму его клонирования.

Обсуждение

Любопытный, 2011/07/01 11:24

Наверно час пытался разобрать что здесь написано, ничего не понял. Неужто трудно написать, что создаем дубликат файла под другим именем в нем делаем то-то открывает другой фал в нем заменяем это на то, и все понятно. В этом описании ничего не понятно.

Думаю из за этого здесь нет ни одного комментария, так как никто ничего не понял.

Извините за критику уж поправили бы.

PrestaLab, 2011/07/04 10:04

Никаких дубликатов не нужно делать. Тут написано как добавить модуль в хук, который он не поддерживает.

Сергей, 2011/10/12 21:07

Тут все четко написано. Если не шариш нечего лесть в код ! Автору большое спасибо !!! Все четко и кратко написано.

Андрей, 2017/07/17 08:18

Для этого хуки и придуманы, что бы меньше шарили, а больше платили….

smmit, 2011/10/14 00:04

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

Влад, 2011/11/06 07:44

А у меня все получилось.

Валентин, 2012/04/25 14:08

А где создавать эту функцию? в каком шаблоне?

KomOne, 2013/02/25 03:09

Отличная статья. ИМХО надо сохранять исходники модуля, чтобы заменить php файлик, если напортачили)))

Сергей Борисович, 2013/06/26 03:23

Здравствуйте, будьте добры подскажите, почти всё так и сделал, кроме как blockadvertising1.tpl никуда не копировал, а просто сохранил оригинал, и модуль «homeslider» нормально залез в хук «displayHeader» и заработал, единственное что его, т.е. модуль на сайте влево тянет? а надо по центру.. Как отцентровать?

«displayHeader» я так понял это типа футера, только сверху! ))

Ваш комментарий. вики-синтаксис разрешён:
UFRRD
 
dobavlenie-obrabotchika-xuka.txt · Последние изменения: 2015/12/27 16:22 (внешнее изменение)