Определить первый журнал пользователя
Я реализую тему с помощью LifeRay, используя скорость. Я хотел бы добавить некоторые функции на главную страницу темы только в том случае, если пользователь впервые заходит на портал. Как я могу использовать скорость (portal_normal.vm) для достижения этой цели?
2 ответа
Как утверждает @Olaf Kock, не рекомендуется использовать бизнес-логику в разделе тем.
Но, если вы все равно хотите это сделать, Liferay предоставляет набор переменных скорости, к которым можно получить доступ в темах. Который включает в себя User
детали тоже.
Вот некоторые из User
связанные переменные, доступные глобально в темах,
$ user_id, $ is_default_user, $ user_first_name, $ user_middle_name.... $ user_login_ip, $ user_last_login_ip
Вы можете проверить больше на: themes\_unstyled\templates\init.vm
внутри ROOT.WAR.
Итак, для вашей конкретной цели здесь вы можете использовать $user_last_login_ip
, Если значение равно нулю, то это будет первый раз, когда пользователь вошел в портал. Так что используйте его внутри portal_normal.vm
,
#if (!$user_last_login_ip)
... do stuff here if the variable is null
#end
И, в качестве альтернативы, вы можете получить дату последнего входа пользователя в систему с помощью и проверить null
чтобы убедиться, что это его первый логин,
#if (!$user.getLastLoginDate())
... do stuff here if the variable is null
#end
Не добавляйте это в тему. Скорее есть отдельный пользовательский LoginAction для этого. Это будет выполняться при каждом входе в систему (вы можете выбрать предварительный или последующий вход в систему, я предполагаю, что последующий вход в систему будет уместным) и должен найти в сети больше информации, чем я указывал по этой теме.
Тема создана для внешнего вида и не должна содержать какой-либо бизнес-логики, особенно если это не разовая цель.