Категории

Костыли в Helpdesk: Автоматический выбор параметров

05.02.2026 | Статья из категории: Создание сайтов

🎯 Задача: В HESK Helpdesk нужно, чтобы при создании заявки из определенной категории автоматически выбирался исполнитель.

📝 О чем эта заметка

Иногда при работе с готовыми системами вроде HESK Helpdesk нужно добавить функционал, который не предусмотрен разработчиками. Вместо того чтобы переписывать всю логику системы (что может сломать обновления), можно добавить небольшой "костыль" - JavaScript или PHP код, который решает конкретную задачу.

🛠️ Реализация "костылем"

Вариант 1: JavaScript (быстро, но ненадежно)

JavaScript клиентский код
// Проверяем URL и выбираем исполнителя
if (window.location.href.includes('category=2')) {
    // Категория 2 → АХО ДАР (ID: 57)
    document.querySelector('select[name="owner"]').value = '57';
}

if (window.location.href.includes('category=3')) {
    // Категория 3 → АХО Дарвиль (ID: 58)
    document.querySelector('select[name="owner"]').value = '58';
}

Вариант 2: PHP + JavaScript (рекомендуемый)

new_ticket.php - гибридный подход
<!-- В секции назначения исполнителя -->
<?php
// Массив соответствий категория → исполнитель
$categoryOwnerMapping = [
    '2' => '57', // Категория 2 → АХО ДАР
    '3' => '58', // Категория 3 → АХО Дарвиль
    '4' => '18', // Категория 4 → Роман (IT)
];

$currentCategory = $_GET['category'] ?? '';
$defaultOwner = $categoryOwnerMapping[$currentCategory] ?? '-1';
?>

<select name="owner" id="owner-select">
    <option value="-1">Без назначения</option>
    <option value="57">АХО ДАР</option>
    <option value="58">АХО Дарвиль</option>
</select>

<script>
// Автоматический выбор при загрузке страницы
$(document).ready(function() {
    const defaultOwner = '<?php echo $defaultOwner; ?>';
    
    if (defaultOwner !== '-1') {
        // Инициализируем selectize и выбираем значение
        $('#owner-select').selectize();
        
        setTimeout(function() {
            const selectizeInstance = $('#owner-select')[0].selectize;
            if (selectizeInstance) {
                selectizeInstance.setValue(defaultOwner);
            }
        }, 100);
    }
});
</script>

Плюсы костылей

  • Быстрая реализация
  • Минимальное вмешательство в код
  • Сохранение возможности обновлений
  • Локальное решение проблемы

Минусы костылей

  • Могут сломаться при обновлениях
  • Усложняют поддержку кода
  • Возможны конфликты
  • Неэлегантное решение

🎪 Почему именно "костыль"?

🔄 Когда нужны

Нет доступа к ядру системы
Быстрое решение задачи
Временное решение
Сохранение обновлений

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

Комментируйте всё
Создавайте отдельные файлы
Добавляйте проверки
Логируйте изменения

💡 Важное замечание

"Лучший костыль - тот, который однажды станет мостом"

Этот "костыль" может сэкономить 10-15 секунд на каждой заявке. За месяц - это часы сэкономленного времени! Но в моем случае, пользователям было лень каждый раз выбирать исполнителя. решили сделать в каждую категорию исполнителя и автоматом назначение.

🔗 Полезные ссылки

🎓 Вывод: Костыли - это не всегда плохо. В умелых руках они становятся инструментом для быстрого решения проблем без риска сломать основную систему. Главное - делать их с умом и документировать.

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0
о блоге

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA