Как узнать, как какой мы сейчас странице?

Задача: в зависимости от того, как какой странице мы сейчас находимся нужно выводить элемент с уникальным дизайном. Т.е., в шаблоне получить информацию, где сейчас находится посетитель.

Частичное решение:
Использование {$sAction} дает нам понять где мы, но когда доходит до статичных страниц, эта переменная может лишь сказать 'page'. Этого мало, мне нужно узнать какой раздел со статичными страницами просматривает посетитель (их несколько).

В экшене ActionPage.class.php я нашел следующую чудесную запись:
$this->Viewer_Assign('oPage',$oPage);

в объекте $oPage хранятся все данные по странице, включая page_url (им то я и планирую воспользоваться).

Но не тут-то было, из шаблона дотянуться никак:
Fatal error: Cannot access protected property PageEntity_Page::$_aData

Исходные кода движка открыл только сегодня, потому еще «плаваю» во внутреннем устройстве ядра.

Прошу помочь и заранее благодарю за уделенное время. Поиск по этому вопросу ничего не дал.

Сергей.

3 комментария

avatar
1. Router::GetPathWebCurrent() — вернет весь текущий путь.
2. Из шаблона должно работать $oPage->getUrl(), $oPage->getUrlFull()
avatar
Тоже интересует данный вопрос. В LS есть такая фишка «люди» далее подменю «Пользователи» — Все, Онлайн, Новые. Но там онлайн не настоящий, т.е. он показывает пользователей, которые «недавно» были на сайте, а это недавно может быть и вчера, и неделю, и месяц назад. Хотелось бы, чтобы определялось кто конкретно в текущий момент времени где находится и как нибудь выводить этих юзеров в блоке. Сергей, если получится что отпишись пожалуйста здесь.
avatar
А что значит «в текущий момент времени»? Если буквально, то это невозможно по определению. Протокол общения клиента с веб-сервером этого не подразумевает никак. Вме определения «кто онлайн» — это определения, кто отправлял запросы в «недавно». А вот это «недавно», как ты верно заметил, может быть любым промежутком времени, который ты задашь. Задай времмной лаг сам, какой считаешь нужным, напр., 10 минут, и выводи их.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.