Account classes или «классы журналов» (иногда ещё транслитерируется как «классы аккаунтов») — это наборы настроек, применяемых при создании и дальнейшем обращении с журналами определённого рода.
Классы журналов позволяют разделить журналы на дополнительные к делению «пользователь-сообщество-РГ» группы («класс» выбирается при создании журнала) и в зависимости от класса управлять такими настройками как:
настройки по-умолчанию для профиля журнала;
позволить создавать журналы данного класса только как «пользовательские» или как «журналы РГ»;
гибко управлять правами на регистрацию журналов данного класса с помощью ACL;
ограничить допущенные к использованию в данном журнале модули и изменить их настройки.
Кроме этого, с помощью классов журналов можно добиться «подчинения журналов», т.е. когда созданный журнал будет считать своим «наджурналом» какой-то другой. Но подробнее о том, что это даёт, надеюсь, в другой раз.
!!
NB: для написания имени класса журнала используйте только маленькие латинские буквы, минус и цифры!!
2. Применение Account Classes
Ниже кратко написано, что нужно делать в конкретных типичных случаях.
Полное описание формата находится в следующей главе.
2.1. Создание журнала нужного класса
Самое интересное.
Для того, чтобы попасть в форму регистрации нового журнала определённого класса, необходимо специальным образом сконструировать URL (или НПЖ-адрес на ссылке):
Первый из приведённых примеров переходит к форме регистрации «пользователя» класса maintainer, второй — «рабочей группы» класса software. Третий и четвёртый представляют собой примеры записи аналогичных ссылок в НПЖ-адресации.
Иными словами, адрес для формы регистрации состоит из трёх частей
Число 1 в этом примере управляет режимом премодерации:
0 — запрещено
1 — премодерируется
2 — свободно
Пар ACL-режим может быть сколько угодно для одного класса.
2.3. Генерация стартового содержимого журнала при регистрации
Этот процесс называется «популяция». При создании нового журнала происходит «популяция» в него кластера записей, соответствующего типу этого журнала (User, Community, Workgroup) из журнала node@.
Вы можете расширить и перекрыть «популируемый» набор документов, создав для своего класса class1 кластер документов по адресу: node@your-node-name:Accounts/Class1. Собственно документ с этим адресом перекроет корневой документ вновь созданного журнала, а все поддокументы этого кластера скопируются в документы вновь созданного журнала.
2.4. Выбор HTML-шаблона для вывода аккаунтов определённого класса
Пока нереализовано.
2.5. Реконфигурация модулей, используемых в данном журнале
Как гласит документация /Документация/Модули, каждый модуль имеет свой конфигурационный файл, где содержит свои общие для всего узла настройки. Эти настройки можно изменить с помощью опции-массива modules_override.
2.6. Подчинение журналов
Для подчинения журналов вам потребуется сконфигурировать два класса: «родитель» и «ребёнок».
После чего в «ребёнковском» классе указать на «родителя» опцией parent_class.
Если вы хотите автоматической сборки логинов аккаунтов класса «ребёнок» с использованием логина «родителя», включите опцию parent_login_concat.
2.7. Настройка глобальных групп доступа
См. также сами глобальные группы доступа.
Вкратце, для включения этой возможности, вам будет необходимо создать класс журнала, который определить как «класс глобальных групп доступа» с помощью строки в конфигурационном файле:
Все параметры описания (опции) могут отсутствовать, кроме name.
Ниже приведено описание существующих опций:
name — название класса, предназначенное для пользователей
type — ограничение на тип аккаунтов, которые можно создать
0 — пользователь
1 — сообщество
2 — рабочая группа
security — для сообществ/РГ настройка типа сообщества по-умолчанию
-1 — публичное
0 — открытое
1 — ограниченное
2 — закрытое
3 — секретное
domain_type — тип работы с доменом (про них подробнее — чуть позже)
parent_class — имя класса, один из журналов которого ДОЛЖЕН будет быть выбран при регистрации, чтобы стать «наджурналом» для создаваемого
parent_login_concat — имеет смысл только вместе с предыдущей опцией. Автоматически расширяет введённый логин нового аккаунта, дописывая к нему слева логин его «наджурнала»
acls — массив из ACL по-умолчанию, которые будут назначены каждому из документов журнале этого класса при создании
template — задел на будущее для вывода журналов этого класса в своём оформлении
modules_override — чуть позже
block — запретить модули в этом журнале
array(...) — перечень имён модулей, каждому из которых сопоставлен «специфический» для журналов данного класса модификатор конфигурации соотв. модуля.
class_name — имя класса из описания (см. чуть выше)
ему сопоставляется массив пар ACL-режим
ACL может включать в себя как пользователей mendokusee, так и РГ admins. Пользователи могут быть и с другого узла. Также можно использовать и запретный синтаксис !someuser
режим должен быть один из трёх существующих:
0 — запретить
1 — премодерированно
2 — свободная регистрация
эта настройка меняет значение базовой настройки, если удовлетворяет соотв. ACL.
4. Типовая реорганизация конфигурационных файлов
Как правило, конфигурация классов журналов получается достаточно объёмной и заслуживает выноса в отдельный файл, где её проще будет искать и корректировать. Поэтому обычно файл config.php изменяется таким образом:
<?php ... include("config_tunes.php"); include("config_account_classes.php"); // <- new line include("config_db.php"); ... ?>
Т.е. добавляется новая строка, подключающая файл config_account_classes.php. Ниже приведено несколько примеров содержимого таких файлов.
5. Примеры
Ниже приведены несколько примеров из реальной жизни. Каждый пример — это содержимое файла config_account_classes.php: