Правильное использование хуков в Osclass

Новости и обновления

Osclass — это мощная система для создания сайтов объявлений, которая предоставляет разработчикам возможность расширять функционал с помощью хуков (hooks). Хуки позволяют встраивать собственный код в определенные моменты выполнения скрипта без изменения ядра системы.

Что такое хуки в Osclass?

Хуки — это точки в коде Osclass, где можно зарегистрировать свои функции (callback) для выполнения в определенный момент. Они бывают двух типов:

  1. Action Hooks (хуки действий) — выполняют код в определенный момент, не возвращают значения.

  2. Filter Hooks (хуки фильтров) — изменяют данные перед их использованием.

Основные хуки в Osclass

Популярные Action Hooks

  • init — выполняется после загрузки ядра Osclass.

  • pre_upload — перед загрузкой файла.

  • posted_item — после публикации объявления.

  • user_register — после регистрации пользователя.

Популярные Filter Hooks

  • item_title — фильтрует заголовок объявления.

  • item_description — изменяет описание объявления перед сохранением.

  • user_mail — фильтрует email пользователя.

Как зарегистрировать хук?

1. Добавление Action Hook

osc_add_hook('init', 'my_custom_function');  

function my_custom_function() {  
    // Ваш код здесь  
}  

2. Добавление Filter Hook

osc_add_filter('item_title', 'modify_item_title');  

function modify_item_title($title) {  
    return mb_strtoupper($title); // Например, делаем заголовок в верхнем регистре  
} 

Примеры использования

1. Логирование регистрации пользователя

osc_add_hook('user_register', 'log_new_user');  

function log_new_user($userId) {  
    $user = User::newInstance()->findByPrimaryKey($userId);  
    error_log("Новый пользователь: " . $user['s_email']);  
}  

2. Изменение формата заголовка

osc_add_filter('item_title', 'custom_title_format');  

function custom_title_format($title) {  
    return "⭐ " . $title . " ⭐";  
}  

Лучшие практики

  1. Используйте уникальные имена функций, чтобы избежать конфликтов.

  2. Не злоупотребляйте хуками — слишком много хуков может замедлить работу сайта.

  3. Проверяйте данные в filter hooks, чтобы избежать ошибок.

  4. Документируйте свои хуки, если работаете в команде.

Где найти список всех хуков?

Полный список доступных хуков можно найти в официальной документации OSClass или в исходном коде системы, ища вызовы функций osc_run_hook и osc_apply_filter.

Заключение

Хуки в Osclass — это гибкий инструмент для кастомизации функционала без изменения ядра. Правильное их использование позволяет создавать мощные расширения, сохраняя возможность обновлять систему без потери изменений.

Если вам нужно добавить нестандартное поведение на сайт с Osclass — хуки ваш лучший выбор!

Свободен!

Оцените автора
( Пока оценок нет )
Osclass
Добавить комментарий