#SESSION

#SESSION, выводит информацию, хранимую в сессии, отдельно для каждого посетителя сайта. Используется для ограничения доступа и хранения дополнительной информации ( например, список последних просмотренных статей, статьи для сравнения).

  • Apparu en : SPIP 2.0

По умолчанию в 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) позволяет обойтись без этого.

Автор Serge Markitanenko Publié le : Mis à jour : 15/07/13

Traductions : عربي, català, English, Español, français, Nederlands, русский, українська