По умолчанию в SPIP сессии хранятся следующие значения:
- id_auteur: уникальный идентификатор пользователя
- nom: имя пользователя (#NOM)
- bio: текст о себе (#BIO)
- email: емейл автора
- nom_site: название сайта автора
- url_site: URL сайта автора
- login: логин
- statut: группа пользователя - 0minirezo (администраторы и ограниченные администраторы), 1comite (автора), 6forum (посетители)
- webmestre : ’oui’ если автор является вебмастером
- maj: время и дата последнего обновления профиля автора
- pgp: PGP ключ автора
- en_ligne: время и дата предыдущего входа в систему пользователя
- imessage: ’oui’ если пользователь отправил личное сообщение
- messagerie:
- prefs: настройки административной части пользователя
- couleur => 1 to 6, цвет
- display => 1 (только текст) ; 2 (иконки и текст) ; 3 (только иконки)
- cnx => пустое значение или ’perma’ (если "запомнить на несколько дней" активировано)
- cookie_oubli: хеш замещающего куки (помоему связано с восстановлением пароля, но могу ошибаться) или пустое значение
- source: ’spip’ или ’ldap’ - источник аутентификации
- lang: язык административной части сайта
- extra: список дополнительных полей для профиля автора
- auth: тип аутентификации (spip, ldap)
- cookie: ’oui’ если авторизирован при помощи куки, значения не существует, если другой тип подключения (incl. PHP_AUTH_USER)
- hash_env: внутренний хеш - идентифицирующий сессию пользователя
- ip_change: FALSE до тех пор, пока IP пользователя не изменился. TRUE если IP изменился. SPIP пересоздает новую сессию если подключенный пользователь сменил свой адрес.
Примеры
Показать определенный текст только администратору:
-
[(#SESSION{statut}|=={0minirezo}|oui) Этот текст увидят только администраторы или ограниченные администраторы]
Такая же техника позволяет нам показывать определенные поля определенной группе пользователей:
-
[(#SESSION{statut}|=={0minirezo}|oui) #DESCRIPTIF]
Если объем кода большой,или есть необходимость вызвать цикл, то этот код выносят в отдельный файл, например в reserved.html
:
-
[(#SESSION{statut}|=={0minirezo}|oui) <INCLURE{fond=reserved, env}>]
Работа с другими тегами
- Тег хорошо работает в связке с #AUTORISER.
- Вы можете сохранять свои значения в сессию при помощи тега #SESSION_SET
Построение условий при помощи плагина Bonux
Замечательный плагин SPIP Bonux позволяет нам использовать синтаксис цикла для записи условий.
Предположим, что нам необходимо вывести название раздела в шаблоне article.html только для авторизированных пользователей (администратор, редакторов и просто посетителей). Код будет выглядеть следующим образом:
<BOUCLE_test(CONDITION) {si #SESSION{statut} IN 0minirezo,1comite,6forum} >
<BOUCLE_titre(RUBRIQUES) {id_article}> #TITRE</BOUCLE_titre>
</BOUCLE_test
При традиционной записи нам бы пришлось создать дополнительный файл для цикла _titre, но чем больше файлов, тем сложнее управлять проектом в дальнейшем. Использование цикла (CONDITION)
позволяет обойтись без этого.