Разворошим это забытое всеми сообщество.
Надеюсь это родит ещё ряд постов (хотя по традиции, с меня ещё один пост).
Кстати, пост о необходимости форматирования исходных кодов так и не попал на главную. Конечно, ведь там не про Баркемп.
Поэтому придется все исходные коды выложить на сторонний ресурс. Трахаться со здешним редактором желания нет.
В общем, задача такая: узнать кто же у нас шарится по сайту в данный момент?
Что-то типа "who is online"
Узнаем мы эту информацию конечно же из сессии пользователя.
В ЗФ есть возможность хранить сессии в базе данных. Для этого используется класс Zend_Session_SaveHandler_DbTable.
Им мы и воспользуемся, слегка расширив его под наши нужды.
Добавляем в таблицу session поле user_id, где будем хранить ID активного юзера. По этой ссылке с крутым номером SQL-запрос: http://codepaste.ru/3333/
Зеркало:http://www.copypastecode.com/26475/
В файле Bootstrap.php создаем функцию _initSession() http://codepaste.ru/3334/
Зеркало:http://www.copypastecode.com/26479/
App_SessionService - это файл SessionService.php в папке App (папка для собственных классов), который наследует класс Zend_Session_SaveHandler_DbTable
Копируем и переписываем функции __construct и write и добавляем определение переменной поля user_id и функцию, которая берет из Zend_Auth необходимые данные.
Вот его листинг: http://codepaste.ru/3335/
Зеркало: http://www.copypastecode.com/26483/
Вообще, можно собирать любую информацию о пользователе (IP, браузер и т.д.). Для этого достаточно добавить соответствующие поля в таблицу и изменить код, подобно добавлению 'user_id'.
Как-то так. Вопросы, замечания и более крутой код как всегда в комменты. :)