Собственно сабж, как можно осуществить проверку, отображается ли панель для текущего посетителя сайта?
12.03.2016 16:01:23
Собственно сабж, как можно осуществить проверку, отображается ли панель для текущего посетителя сайта?
|
|
|
|
13.03.2016 09:56:05
Andrew K, да ну я представляю как это можно реализовать через жо...)) можно наворотить тонну кода, чтобы произвести банальную проверку, чтобы убирать счетчики статистики со страниц, на которых активна панель, чтобы очистить статистику от посещений админ персонала сайта. И думал, что есть люди, знающие простое и изящное решение, возможно какая-то переменная в массиве $APLICATION.
|
|
|
|
13.03.2016 21:42:27
Евгений Крохин, вы бы задачу формулировали поточнее, что ли. Сразу желательно свои хотелки описывать - точно, внятно, чтобы разночтений не было.
Телепатия не у всех развита, знаете ли... Таким образом, первоначальное невинное желание осуществить проверку, отображается ли панель для текущего посетителя сайта? трансформировалось в уточненное: узнать, является ли посетитель авторизованным администратором, и, если да - убрать из кода счетчики посещений и прочей аналитики. Есть такое решение, описано в API:
|
|||
|
|
13.03.2016 22:36:01
Andrew K, это я знаю, $USER->IsAdmin() проверяет принадлежность к группе администраторов, по крайней мере так написано в документации. Или я что-то не так понимаю. Панель может показываться не только администраторам, а например контент-менеджерам, она показывается вообще всем, у кого есть функции, доступные из этой панели. Задача заключается в том, чтобы написать проверку на то, кому она не отображается, и при выполнении этого условия вывести нужный контент.
|
|
|
|
13.03.2016 23:02:11
Прекрасно. И опять же - всё в доках и настройках сайта.
В главном модуле смотрите те группы которым показывается панель, и смотрите совпадение групп, к которым принадлежит пользователь.
Вот, пример: панель будет выводится для группы 1 (Админ, по умолчанию) и Редакторы (6 - создана позже). Для этого сайта, соответственно, нужно смотреть, не принадлежит ли пользователь к группам 1 и 6. Для вашего - не знаю, кому и что там было роздано. |
|||||
|
|
14.03.2016 09:12:29
Andrew K, так в том и вопрос зрите в корень, всё это понятно и вполне очевидно, то что вы написали, очень много кода. Я изначально спрашивал, возможно где-то в глобальном массиве переменных есть та, которая показывает, отображается ли панель, или нет. Видимо нет.
|
|
|
|
15.03.2016 11:00:28
Слушайте, а есть же $APPLICATION->ShowPanel();... нельзя проверку по этому условию сделать? Никак?
|
|
|
|
15.03.2016 11:09:54
Евген Юрьевич, первое что попробовал, но $APPLICATION->ShowPanel(); не возвращает ни каких результатов
|
|
|
|
15.03.2016 11:39:51
в момент создания-вызова панели есть обработчик
|
|
|
|
15.03.2016 12:26:30
$APPLICATION->ShowPanel() и $APPLICATION->GetPanel() не возвращают результат, они выводят результат(html) на экран.
С помощью события вы можете изменить панель, добавить свой html(в месте где панель будет и только для тех у кого она будет отображаться), стиль или скрипт, но не установить переменную которую где-то дальше проверять или спользовать. Так что только через права доступа к панели можете "произвести банальную проверку, чтобы убирать счетчики статистики со страниц, на которых активна панель" |
|
|
|
15.03.2016 12:31:00
Александр Кислицын, нашел в объекте $APPLICATION - [showPanelWasInvoked] который равен 1 если панель отображается, но как обратиться к этому параметру не знаю, обратиться как к массиву не получается.
|
|
|
|
15.03.2016 12:36:59
предлагал уже. но, по мнению ТС-а:
У меня в таком обвесе при отладке обычно всякая барахляндия в футере: метрики, сторонние чаты, живосайт тот-же, будь он неладен
|
|||||||
|
|
15.03.2016 13:20:38
использовать можете таким образом
|
|||||
|
|
15.03.2016 13:53:06
Алексей Волков, вот это я называю плодом коллективного разума и изящным решением! Спасибо всем, кто участвовал, за помощь! Хотя-бы моральную
Мое решение:
|
||||
|
|
|||