getCurrentUrl()
Подписался на хук CRM backend_sidebar и решил проверить URL страницы на которой нахожусь. не могу понять почему такое поведение.
public function crm_hook_backend_sidebar() { $current_url = wa()->getRouting()->getCurrentUrl(); echo $current_url; ....... }

Подскажите, почему в первом случае получается webasyst/crm/deal/2/, а во втором - webasyst/crm/? На одной и той же странице.
5 ответов
И почему вообще хук вызывается дважды на этой странице - /webasyst/crm/deal/2/, а на этой странице /webasyst/crm/deal/ 1 раз?
Передали ваше сообщение разработчикам. Если от них поступит какой-то комментарий, то опубликуем его здесь. Или просто исправим ошибку в приложении и выпустим обновление, если это поведение будет признано однозначно ошибочным.
Хук вызывается при загрузке layout'а. При этом контент сайта в основном обновляется аяксом.
Поэтому при хук вызывается по сути только при перезагрузке страницы.
Для чего вам нужно получать URL текущей страницы именно в обработчике хука backend_sidebar? На первый взгляд, это надёжнее делать с помощью JavaScript, т. к. в PHP-коде может быть недоступным тот URL, который пользователь видит в адресной строке браузера, из-за особенностей маршрутизации запросов к PHP-контроллерам приложения.
Теперь уже незачем, решил задачу иным путем без необходимости проверять URL адрес страницы.