Эта версия устарела. Обновленный для MaxSite 102 плагин Profile2.
По замыслу плагин должен предоставлять базовый функционал: личный кабинет, профиль пользователя, лента событий.
Должна быть возможность расширения базового функционала при помощи плагинов.
Личный кабинет – набор приватных страниц пользователя. Профиль пользователя – набор публичных страниц пользователя. Лента событий – лента всех действий пользователя на сайте. Загрузка и вставка картинок комментаторами. Регистрация на сайте при помощи социальных сетей.profile-1_7.zip
Личный кабинет.
У каждого пользователя (под пользователем понимается аккаунт комментатора в таблице comusers) имеется личный кабинет - набор доступных только ему страниц и меню навигации по ним.
Базовый набор страниц личного кабинета: основные настройки, аватар, социализация, комментированное, загрузки.
Плагины могут добавлять свои страницы в этот набор.
Меню редактируется в настройках.
Основные настройки.
На этой странице пользователь редактирует свои данные. По сути это дубль страницы site/users/id.

Аватар.
На этой странице пользователь управляет своим аватаром.
Можно указать url аватара, загрузить свой файл аватара, очистить аватар.

Социализация.
На этой странице пользователь может привязать к своему аккаунту дополнительные аккаунты социальных сетей, чтобы можно было логиниться при помощи любого из них.
В момент присоединения нового аккаунта считывается аватар и ник в социальной сети и предоставляется возможность установить эти ник и аватар для использования на сайте.
Каждому присоединенному аккаунту можно установить отметку «показывать», чтобы посетители имели возможность видеть ссылки на сциальные аккаунты комментатора.

Комментированное.
Список всех статей, в которых пользователь оставлял комментарии.

Загрузки.
Должен быть установлен плагин file_manager!Список файлов, которые пользователь загружал и загрузчик файлов.

Профиль пользователя.
Публичные страницы с информацией о пользователе: информация, все действия, комментарии, загрузки.
Плагины имеют возможность добавлять свои страницы.
Меню страниц пользователя редактируется в настройках.
Информация.
Информация о пользователе.
Присоединенные аккаунты социальных сетей, которые пользователь отметил «Показывать».

Все действия.
Лента событий пользователя. Возможность фильтровать события по типам событий.

Комментарии.
Список комментариев, оставленных пользователем.
Загрузки.
Файлы с загрузками пользователя.

События.
Предлагается функционал по организации ленты событий на сайте.
Формируются страницы: все события сайта, все события пользователя, все события сайта определенного типа, все события пользователя определенного типа.
Событие реализуется при помощи добавления своего «элемента» плагинами. Плагин может добавить любое кол-во своих элементов.
Базово, имеется один тип событий: комментарии. Для реализации события «комментарий» плагин profile добавляет элемент comments.
Для добавления плагином своего элемента событий необходимо:
1. Добавить во флоат-опции с именем «plugin_profiles» массив информации об элементе. Имя опции строится из имени плагина, добавляющего элементы, и приставки ‘_profiles’. Например, плагин profile добавляет опцию с именем «profile_profiles».
$options_key2 = 'profile_profiles'; $element['title'] = 'Комментарий к статье'; $element['name'] = 'Комментарий'; $element['all'] = 'Все комментарии'; $element['title_go'] = 'Перейти к статье'; $element['all_link'] = 'comments'; $element['img'] = getinfo('plugins_url') . 'profile/img/comment.png'; $element['filename'] = 'comments'; $element['slug'] = 'comments'; $elements =array($element); mso_add_option($options_key2, $elements, 'plugins');
При формировании ленты событий, плагин profile последовательно подключает флоат опции «plugin_profiles» для всех плагинов, указанных в настройках.
2. В настройках плагина profile в поле «Плагины, которые подключают свои элементы» перечислить плагины, которые могут добавлять свои элементы-события.
3. В каталоге /profile плагина, добавляющего элемент, должен содержаться файл, указанный в $element['filename']. В этом файле должно быть реализовано добавление событий этого элемента в массив-ленту событий $profiles_events[$date] = $event;
Содержимое события $event:
0-Дата 1-Автор события 2-контент события 3-ссылка на событие 4-заголовок элемента 5-автор элемента 6-id элемента в массиве $profiles_all
4. Должен быть файл иконки событий, указанный в $element['img'].
Регистрация на сайте при помощи соцсетей.
Представляется возможность посетителям сайта залогиниться при помощи аккаунтов социальных сетей.
Возврата соцсетью email не обязательно. Если email отсутствует - создается "фальшивый" email.
Впоследствии, пользователь имеет возможность в личном кабинете изменить email на действующий.
Имеется виджет для залогинивания.