Инструменты пользователя

Инструменты сайта


wiki:plugin:attribute

Плагин атрибутов

Совместим с «Докувики»

  • 2024-02-06 "Kaos" неизвестно
  • 2023-04-04 "Jack Jackrum" да
  • 2022-07-31 "Igor" да
  • 2020-07-29 "Hogfather" да

plugin Произвольное определение атрибутов и хранение данных, связанных с пользователем.

Последнее обновление:
2023-07-11
Предоставляет
Helper
Репозиторий
исходный код

Теги: data, persistent, storage, users

Нужен для twofactor

Установка

Найдите и установите плагин с помощью Менеджера расширений. Инструкции по ручной установке плагинов см. в разделе «Плагины».

После установки плагин будет работать без дополнительной настройки. Однако две существующие опции позволяют администратору вики выбрать место для хранения пользовательских данных и отключить ли сжатие. Администратору следует отключать сжатие только при разработке плагина, использующего модуль атрибутов, поскольку в этом случае пользовательские данные будут доступны в открытом виде. Настоятельно рекомендуется хранить пользовательские данные в месте, не обслуживаемом веб-сервером; этого можно добиться только с помощью конфигурации веб-сервера, например, файлов .htaccess и тому подобного.

Примеры/Использование

Этот плагин используется разработчиками плагинов для хранения пользовательских данных для своих плагинов. Он избавляет авторов плагинов от необходимости разрабатывать собственные механизмы хранения данных для каждого пользователя. Он не предназначен для замены общесистемных настроек вики и не будет хранить настройки для анонимных пользователей.

Данный модуль не предоставляет панель администратора для управления сохраненными данными атрибутов. Ответственность за все операции с атрибутами несет разработчик, использующий этот плагин.

class action_plugin_profilecount extends DokuWiki_Action_Plugin {
    function __construct() {
        $this->attribute = $this->loadHelper('attribute', true);
    }
    function register($controller) {
        $controller->register_hook('HTML_PROFILE_OUTPUT', 'BEFORE', $this, 'test_attribute', array());
    }
    function test_attribute(&$event, &$param) {
        if (!$this->attribute) return;
 
        $counter = $this->attribute->get("profilecounter", "counter", $success);
        if (!$success) $counter = 0;
 
        // Отображаем счетчик только в том случае, если мы уже были здесь раньше. 
        if (counter > 0) $event->data->addElement("<p>Prior profile page visits: $counter</p>");
 
        $counter +=1;
        $this->attribute->set("profilecounter", "counter", $counter);
    }
}

Общедоступные методы

Примечание: Для всех функций, связанных с пользователем:

Если переменная $user равна null, по умолчанию используется имя текущего авторизованного пользователя.

Если вошедший в систему пользователь не является администратором, переменная $user возвращается к текущему авторизованному пользователю, если только эта setSecure() функция не используется.

При выполнении действия авторизации, если переменная $user является именем пользователя, под которым выполняется вход в систему, используется именно это имя пользователя.

В противном случае метод завершится ошибкой, если ни один пользователь не авторизован.

public function enumerateUsers($namespace)

Генерирует список пользователей, которым назначены атрибуты в указанном пространстве имен. Возвращает false в случае неудачи или массив имен пользователей.

public function enumerateAttributes($namespace, $user = null)

Генерирует список атрибутов, которым присвоены значения для указанного пользователя в указанном пространстве имен. В случае ошибки возвращает false или массив имен атрибутов, присвоенных пользователю.

public function exists($namespace, $attribute, $user = null)

Проверяет, существует ли атрибут для пользователя в заданном пространстве имен. Возвращает true, если атрибут присутствует, или false в любых других случаях, включая ошибку метода.

public function get($namespace, $attribute, &$success = false, $user = null)

Получает значение атрибута в указанном пространстве имен. Параметр `$success` позволяет проверить успешность выполнения (в качестве сохраненного значения могут быть `false`, `null`, `0` или `''`). Возвращает `false` при любой ошибке или при работе с любой структурой данных PHP.

public function set($namespace, $attribute, $value, $user = null)

Устанавливает значение атрибута в указанном пространстве имен равным данным PHP. Значение должно быть сериализуемым; см. руководство PHP: serialize для получения информации о требованиях к данным. Возвращает true в случае успеха и false в случае неудачи.

public function del($namespace, $attribute, $user = null)

Удаляет данные атрибута в указанном пространстве имен по его имени. Возвращает true, если атрибут не существует после вызова метода, и false в случае неудачной попытки удаления атрибута.

public function purge($namespace, $user)

Deletes all attribute data for a specified namespace for a user. Only usable by an admin. Удаляет все данные атрибутов для указанного пространства имен пользователя. Доступен только администратору. Фактически удаляет файл пространства имен пользователя с сервера. Возвращает true, если файл не существует после вызова метода, и false, если файл не удалось удалить.

public function setSecure($secure)

Позволяет переопределить безопасные настройки. Если установлено значение «false», проверка подлинности пользователя не выполняется.

Настройки и параметры

local.defaults.php
$conf [ 'store' ]  =  'data/attribute' ;  // Указывает место хранения данных. Допускаются абсолютные пути. 
$conf [ 'no_compress' ]  =  0 ;  // Установите значение 1, чтобы данные не сжимались. ВСЕ ДАННЫЕ БУДУТ СОХРАНЕНЫ В ОТКРЫТОМ ТЕКСТЕ!!!

Журнал изменений

Дополнения и Файлы

Только авторизованные участники могут оставлять комментарии.
wiki/plugin/attribute.txt · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki