Отображение страницы пользователя
Василий, с Новым годом тебя. Это начало :)
Пообщавшись с одним из посетителей нашего сообщества, понял, что нужен функционал отображения профилей пользователей из коробки. Сейчас будем запускать несколько благотворительных проектов и в них нужен примерно один и тот же функционал:
— Страницы пользователей с нормальными урл (желательно сделать формирование пути из %id, %username и т.д. по всем полям);
— Возможность добавлять поля в профиль пользователя (любой тип поля и желательно добавлять через графический интерфейс, а не json-строкой);
— Возможность указывать шаблон для оформления страницы пользователя.
— Добавить «из коробки» дату регистрации и дату последней активности;
— Сортировка и фильтрация пользователей по алфавиту на странице-списке;
— Возможность сделать станицу пользователя общедоступной для просмотра;
Дополнения и пожелания:
— Возможность создать список «избранных» пользователей. Т.е. добавлять юзверей в френд-лист. Так же продумать функционал обоюдного добавления (при добавлении пользователя, если он согласился, вы так же будете добавлены к нему в список друзей);
— Возможность добавлять в этот список только после согласия пользователя;
— Обмен сообщениями в форме диалога с пользователями из френд-листа;
— Возможность писать сообщения любому пользователю;
— Возможность занести пользователя в черный список и не получать от него сообщения;
Ищу разработчика. Всю сумму, если не найдутся желающие помочь, готов заплатить сам.
Заранее благодарен.
Пообщавшись с одним из посетителей нашего сообщества, понял, что нужен функционал отображения профилей пользователей из коробки. Сейчас будем запускать несколько благотворительных проектов и в них нужен примерно один и тот же функционал:
— Страницы пользователей с нормальными урл (желательно сделать формирование пути из %id, %username и т.д. по всем полям);
— Возможность добавлять поля в профиль пользователя (любой тип поля и желательно добавлять через графический интерфейс, а не json-строкой);
— Возможность указывать шаблон для оформления страницы пользователя.
— Добавить «из коробки» дату регистрации и дату последней активности;
— Сортировка и фильтрация пользователей по алфавиту на странице-списке;
— Возможность сделать станицу пользователя общедоступной для просмотра;
Дополнения и пожелания:
— Возможность создать список «избранных» пользователей. Т.е. добавлять юзверей в френд-лист. Так же продумать функционал обоюдного добавления (при добавлении пользователя, если он согласился, вы так же будете добавлены к нему в список друзей);
— Возможность добавлять в этот список только после согласия пользователя;
— Обмен сообщениями в форме диалога с пользователями из френд-листа;
— Возможность писать сообщения любому пользователю;
— Возможность занести пользователя в черный список и не получать от него сообщения;
Ищу разработчика. Всю сумму, если не найдутся желающие помочь, готов заплатить сам.
Заранее благодарен.
Комментарии: 68
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
А то напоминал, напоминал — я выбрал время, сделал — и нет ответа.
Делать новые дополнения для MODX, пока, не планирую.
И по себе скажу — 4 года сидел на Айфонах, пока не надоел, сейчас смартфон на голом Лолипоп. После него, когда беру в руки Айфон жены, iOS вызывает рвотный рефлекс…
Если бы ты занялся этим в фоновом режиме, это сильно отвлекало бы тебя от основных проектов? Я готов подождать.
Так что это далеко не новость =)
Мне интересно на нескольких проектах раздавать пользователям всякие «медальки» за те или иные действия. Этот функционал можно прилепить к странице пользователя и сделать его расширяемым (универсальным)? Например, указывать, что пользователь написавший больше всех комментариев, получает на странице плейсхолдер [[+gold]], а тот у кого самые высокие оценки за статьи — [[+silver]]? Или по количеству — перевалил за 100 статей, получил одну медаль, за 200 — вторую медаль и т.д. Что-то вроде этого.
Страницы пользователей с нормальными урл
1. Создаем страницу «профиль пользователя» (не путаем с личным кабинетом), выставляем ему псевдоним, допустим users, к которой будут обращаться в виде site.ru/users?profile=имя
2. Ставим дополнение pdoTools
3. Создаем сниппет user.Profile и добавляем его в шаблон вывода
— насколько я помню, сразу вызвать pdoUsers с параметром конкретного пользователя нежелательно, т.к. если пользователя не существует, он выдает по-умолчанию весь список пользователей. Возможно, сейчас что-то поменялось или это можно обойти — не проверял.
Для данного сниппета также можно дописывать условия, если пользователь не активирован и тд и тп. При помощи параметров tpl и prepareSnippet кастомизируем до нужного уровня.
4. Дописываем в .htaccess
— чтобы ссылка приняла вид site.ru/users/Имя_пользователя
Возможность добавлять поля в профиль пользователя
При регистрации: дополнение login
Для редактирования пользователем (личный кабинет) — дополнение office
Возможность указывать шаблон для оформления страницы пользователя
1. Добавляем дополнительное поле в личный кабинет пользователя (шаблон отображения)
2. В шаблоне отображения профиля пользователя дописываем классы, завязанные на полученном значении (class=«userInfo-[[+tpl.style]]»)
2.А. Если необходимо менять структуру шаблона в зависимости от выбранного пользователя значением, то в сниппете в первой части дописываем до
получение extended-поля по id пользователя с вытекающими условиями if, внутри которых будет разный параметр $params['tpl']
Добавить «из коробки» дату регистрации и дату последней активности
Дату регистрации — сниппет логин и 1 доп. поле.
С датой последней активности сложнее, т.к. в таблицах Modx'a, насколько я помню, есть только поле последней авторизации. Возможно, нужно завязывать на сессии +временной промежуток.
Возможность сделать станицу пользователя общедоступной для просмотра
Аналогично пункту 2.А. в разделе «шаблона отображения»
На мой взгляд, для отображения страницы пользователя можно применить 2 принципиально разных решения:
— динамичное получение данных логина или id пользователя из адресной строки с последующем отображением
— фиксированное создание страницы пользователя в нужном разделе
Второй способ имеет плюс в том, что можно, теоретически, руками настроить совершенно любое отображение личной страницы для каждого пользователя персонально, но плодит кучу ненужных страниц и вообще несколько топорно.
Поэтому выбрав пункт 1, мы автоматически очень сильно связываем себя с внесением записей в .htaccess, а значит все равно допиливать дополнение руками.
Что же до остальных пунктов, то для части из них нужно или пилить дополнительно отдельный функционал регистрации + личный кабинет, или же уже задействовать имеющийся.
Ну и последнее и, пожалуй, самое главное: для удобной работы с дополнительными полями пользователя (медальки, карма) «не программисту» потребуется или написать фронтэнд-модуль или существенно изменить способ взаимодействия с ними через бэкэнд.
У modx'a, если не ошибаюсь, для чпу в .htaccess прописано:
+ опять же, если пользоваться встроенными в modx настройками чпу и определением «страниц» для генерации страниц красивых ссылок для страниц пользователя, то необходимо «создавать» такие страницы в желаемом разделе при регистрации пользователя, а это вытекает в
По алфавиту чего? Полного имени пользователя?
— страница доступна для просмотра, вариант недоступна для просмотра тоже нужен?
— сниппет для редактирования этого гибридного профиля соответственно тоже нужен, так ведь?
— в админке все это редактировать тоже…
— пакет в итоге будет бесплатным для всех или пойдет в платники?
Завтра смогу начать работу… Жду уточнений.
— нужно указывать скрытые страницы по группам и методом перечисления id юзера. Лучше вынести в системную настройку;
— редактирование обязательно нужно;
— нужен функционал в админке для добавления полей в профиль. Один раз добавил поле «ТестовоеПоле» и оно доступно для заполнения, если включено в чанк;
— обязательно красивые урлы. Ниже Василий дал ссылку на реализацию;
— предлагаю сделать пакет доступным на гитхабе, на store.simpledream.ru и в основном репозитории MODx'a на бесплатной основе. Ты сделаешь единственный в своем роде пакет. Перерыл весь интернет, есть только обрывки и куски кода, позволяющие сделать что-то подобное. За это будет тебе почет и благодарности. :)
Генерит корректные ссылки с помощью плагина.
— Страницы пользователей с нормальными урл. Возможность скрыть страницу от просмотра по группам и методом перечисления id юзера
— Добавить «из коробки» дату регистрации и дату последней активности. Возможность добавлять поля в профиль пользователя.
от себя добавлю что возможно стоит добавить поля ФИО и description, introtext аналог ресурса. По остальным полям предлагаю сделать настройку json строкой в ней указывать наименование и тип поля и на основе этого рисовать в админке, писать такие поля в extended.
— Возможность указывать шаблон для оформления страницы пользователя.
— Сортировка и фильтрация пользователей по алфавиту на странице-списке. Вывод пользователей pdoUsers или сниппет на его основе.
— сниппет редактирования расширенного профиля пользователя, включает редактирование существующих таблиц пользователя, наших добавленных и полей в extended
— сниппет для вывода расширенного профиля пользователя
— так же сюда же скорее всего нужна проверка заполнения полей, возможность подключения кастомного обработчика
сумма пускай будет 10 000 руб. Идет? Если ты даешь добро — я стартую.
скайп — vgrish_vgrish
Готов пожертвовать на развитие некую сумму денег, пока ещё не доконца определился — чуть позже.
Пару мыслей:
— Нельзя добавить возможность добавления пользователей в друзья, с последующим выводом допустим ленты друзей?
— Может быть подумать о нормальной переписке с теми же друзьями?
Ради этого стоит пожертвовать деньги — очень нужный функционал!
Второе — store.simpledream.ru/packages/users/socialtools.html не подойдет?
— По второму, да, есть ещё и modx.pro/solutions/4264-tickets-component-ticketmessages/, но непонятно как они будут вести себя с этим компонентом новым и будут ли работать с друзьями (это важно). По store.simpledream.ru/packages/users/socialtools.html — кажется была обещаня новая версия, которая несовместима будет со старой, или что-то вроде этого. Но опять же вопрос — как она будет себя вести с друзьями (переписка только с друзьями допустим)
Создавайте отдельный топик, расписывайте подробно как вы видите функционал, будет больше толку чем просто тут упомянуть…
на главной зарегаться через твиттер, затем перейти в профиль и задать email.
После подтверждения почты, пробовать менять профиль пользователя, заполнять поля.
ps. Спасибо!
prntscr.com/5shrl0
И теперь даже на главную не заходит, пишет то же самое.
После авторизации в твиттере, естественно.
пробуйте еще)
Сейчас вроде ок: Вы авторизованы как 2603415625 (Саша Друмс)!
Письмо подтверждения пришло, все ок (правда, нашел в папке спам).
Заполнил все поля ФИО и во вкладке сети, но на странице Список пользователей в моем профиле ничего не отображается.
Еще подшлифую местами.
Для новых пользователей еще не настроены права для голосований за тикеты, комментарии, добавление в избранное и т.п. но это, я так понял, еще не шлифовалось :-)
Посмотрите Eleanor-CMS (Logina), когда там реализовывали, много обсуждали и мне кажется получилось нормально. Про Office ничего сказать не могу, возможно он решает задачу. По мне, так это дорогое удовольствие за модуль авторизации. Если пользоваться только этой возможностью компонента.
Вот и все.
modx.pro/components/3283-office-1-1-0-improve-authorization/
Так что — только Office. Для авторизации, редактирования профиля и вообще, построения личного кабинета юзера любой функциональности.