Собственно сабж, как можно осуществить проверку, отображается ли панель для текущего посетителя сайта?
|
Собственно сабж, как можно осуществить проверку, отображается ли панель для текущего посетителя сайта?
|
|
|
|
|
|
Andrew K, да ну я представляю как это можно реализовать через жо...)) можно наворотить тонну кода, чтобы произвести банальную проверку, чтобы убирать счетчики статистики со страниц, на которых активна панель, чтобы очистить статистику от посещений админ персонала сайта. И думал, что есть люди, знающие простое и изящное решение, возможно какая-то переменная в массиве $APLICATION.
![]() |
|
|
|
|
|
Евгений Крохин, вы бы задачу формулировали поточнее, что ли. Сразу желательно свои хотелки описывать - точно, внятно, чтобы разночтений не было.
Телепатия не у всех развита, знаете ли... ![]() Таким образом, первоначальное невинное желание осуществить проверку, отображается ли панель для текущего посетителя сайта? трансформировалось в уточненное: узнать, является ли посетитель авторизованным администратором, и, если да - убрать из кода счетчики посещений и прочей аналитики. Есть такое решение, описано в API:
|
|||
|
|
|
|
Andrew K, это я знаю, $USER->IsAdmin() проверяет принадлежность к группе администраторов, по крайней мере так написано в документации. Или я что-то не так понимаю. Панель может показываться не только администраторам, а например контент-менеджерам, она показывается вообще всем, у кого есть функции, доступные из этой панели. Задача заключается в том, чтобы написать проверку на то, кому она не отображается, и при выполнении этого условия вывести нужный контент.
|
|
|
|
|
|
Прекрасно. И опять же - всё в доках и настройках сайта.
В главном модуле смотрите те группы которым показывается панель, и смотрите совпадение групп, к которым принадлежит пользователь.
Вот, пример: панель будет выводится для группы 1 (Админ, по умолчанию) и Редакторы (6 - создана позже). Для этого сайта, соответственно, нужно смотреть, не принадлежит ли пользователь к группам 1 и 6. Для вашего - не знаю, кому и что там было роздано. |
|||||
|
|
|
|
Andrew K, так в том и вопрос
зрите в корень, всё это понятно и вполне очевидно, то что вы написали, очень много кода. Я изначально спрашивал, возможно где-то в глобальном массиве переменных есть та, которая показывает, отображается ли панель, или нет. Видимо нет. |
|
|
|
|
|
Слушайте, а есть же $APPLICATION->ShowPanel();... нельзя проверку по этому условию сделать? Никак?
|
|
|
|
|
|
Евген Юрьевич, первое что попробовал, но $APPLICATION->ShowPanel(); не возвращает ни каких результатов
![]() |
|
|
|
|
|
в момент создания-вызова панели есть обработчик
|
|
|
|
|
|
$APPLICATION->ShowPanel() и $APPLICATION->GetPanel() не возвращают результат, они выводят результат(html) на экран.
С помощью события вы можете изменить панель, добавить свой html(в месте где панель будет и только для тех у кого она будет отображаться), стиль или скрипт, но не установить переменную которую где-то дальше проверять или спользовать. Так что только через права доступа к панели можете "произвести банальную проверку, чтобы убирать счетчики статистики со страниц, на которых активна панель" |
|
|
|
|
|
Александр Кислицын, нашел в объекте $APPLICATION - [showPanelWasInvoked] который равен 1 если панель отображается, но как обратиться к этому параметру не знаю, обратиться как к массиву не получается.
|
|
|
|
|
предлагал уже. но, по мнению ТС-а:
У меня в таком обвесе при отладке обычно всякая барахляндия в футере: метрики, сторонние чаты, живосайт тот-же, будь он неладен
|
|||||||
|
|
|
использовать можете таким образом
|
|||||
|
|
|
|
Алексей Волков, вот это я называю плодом коллективного разума и изящным решением! Спасибо всем, кто участвовал, за помощь! Хотя-бы моральную
![]() Мое решение:
|
||||
|
|
|
|||