[UserProfile] - профиль пользователя.

В продолжение вот этой темы modx.pro/crowdfunding/4539-displaying-user-pages/
компонент реализует профиль пользователя.
В админке добавляется таб

для вывода на фронте набор сниппетов в комплекте.

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

Настройки

— Включить/ выключить работу компонента
— Алиас страницы профиля
— Скрыть пользователя — id пользователей через запятую
— Скрыть группу — id групп через запятую
— Скрыть неактивных пользователей
— Разрешенные секции — список разрешенных к работе секций, по умолчанию info,tickets,comments,favorites.
неуказанные секции будут выдавать 404

Дополнительные поля
Добавлены следующие поля:
lastname — фамилия (редакт.)
firstname — имя (редакт.)
secondname — отчество (редакт.)
description — (редакт.)
introtext -(редакт.)

registration,lastactivity,ip — заполняются автоматически в админке не редактируются.

Дополнительные поля в extended
Также реализована возможность добавления новых полей в extended. Для этого есть отдельная настройка

Основная действующая на данный момент настройка это — Табы / поле ввода
указывается в виде json строки

{"activity":{"registration":"","lastactivity":"","ip":""},
"personal":{"lastname":"","firstname":"","secondname":""},
"social":{"facebook*":"","odnoklassniki":"","vk":"","mail":"","twitter":""},
"test_tab":{"test_field":"combo-boolean","test_field1":"modx-combo-browser",
"name":"textarea","data":"datefield"}
}
по этой строке формируются табы в админке. Первый параметр таб, затем указываете нужные поля. По умолчанию все поля textfield, можно указать другой тип поля. По этой же настройке выводятся табы на фронте сайта.


Вкратце пока все…

ps. Компонент при установке автоматом подтягивает pdoTools, все сниппеты на его основе.
Если установлен компонент Theme.Bootstrap то при установке будут созданы страницы пользователя с примером вызова сниппетов.

Компонент в modstore.pro
Володя
19 января 2015, 09:43
modx.pro
3
9 293
+16
Поблагодарить автора Отправить деньги

Комментарии: 77

Михаил
19 января 2015, 12:55
+1
Классно! Спасибо!
    Николай
    19 января 2015, 13:40
    0
    А где взять то его?
      Константин
      19 января 2015, 13:57
      0
      Действительно, а где сам компонент, хотелось бы его пощупать.
      Wassi Wassinen
      19 января 2015, 15:32
      +1
      Самое-то главное, Володя — компонент реализует вывод страниц пользователей как на modx.pro!
        wgame
        19 января 2015, 19:43
        0
        Компонент работает в связке с office или сам по себе.
          Володя
          19 января 2015, 20:04
          0
          сам по себе, там нет регистрации, есть только редактирование профиля и все…
            wgame
            19 января 2015, 20:33
            0
            тоесть с office работает без проблем?
              Володя
              19 января 2015, 20:38
              +1
              не знаю, поставьте посмотрите…
                wgame
                19 января 2015, 20:46
                0
                сейчас протестирую отпишусь сразу
          wgame
          19 января 2015, 21:06
          0
          Тест со стороны админа
          по умолчанию заглушка растянута не пропорционально (рис 1)

          после того как изображение загрузил то же самое (рис 2)


          после сохранения профиля и обновлении страницы превью картинки исчезает (рис 3) но сама картинка сама есть


          ip адрес всегда по нулям.
          Немного не понял вкладки личное тк по умолчанию в modx есть поле полное имя
          хотя если нужно разделение конкретно по фамилии имени и отчеству то да.
          Если поля не заполнены они подсвечиваются красным но сохранить профиль можно (рис 4)
            Володя
            19 января 2015, 21:51
            0
            1. не пропорциональна — принял
            2. пропала картинка, скорее всего / не хватает — принял
            3. ip — заполняется если пользователь залогинился в контексте != 'mgr' — проверьте
            4. по поводу сохранения и подсветки обязательных полей пока так, проверки как таковой нет…
              Alexander V
              20 января 2015, 00:22
              0
              ip — заполняется если пользователь залогинился в контексте != 'mgr' — проверьте
              Чем обоснована такая особенность?
                Володя
                20 января 2015, 08:04
                0
                плагином на OnLoadWebDocument. А что есть необходимость это делать в контексте mgr?
                  Alexander V
                  20 января 2015, 11:47
                  0
                  В том-то и дело, что нет. Может я что-то не правильно понял?
                    Володя
                    20 января 2015, 11:54
                    0
                    Сань спроси нормально а? я не совсем понимаю что тебе непонятно или еще что либо…
                      Alexander V
                      20 января 2015, 14:54
                      0
                      Скрина нет, могу только догадываться. Поле IP у пользователя для чего? Видеть с какого адреса заходил? Если так, то почему контекст MGR?
                        Володя
                        20 января 2015, 14:57
                        0
                        3. ip — заполняется если пользователь залогинился в контексте != 'mgr' — проверьте
                        какой скрин? ты спросил непонятно что… какой скрин я тебе должен показать?
                          Максим Кузнецов
                          20 января 2015, 16:01
                          +1
                          != 'mgr'

                          А что есть необходимость это делать в контексте mgr?

                          Если так, то почему контекст MGR?
                          "!=" — этот символ значит «не равно», поэтому ip проверяется только при авторизации через все другие контексты.
              Денис Богдановский
              20 января 2015, 01:34
              +1
              Супер! Спасибо!
                Володя
                20 января 2015, 08:04
                0
                пожалуйста! )
                Николаевич
                20 января 2015, 03:51
                0
                Что-то я рано радовался)
                Parse error: syntax error, unexpected '[' in /core/components/userprofile/model/userprofile/userprofile.class.php on line 550
                Parse error: syntax error, unexpected '[', expecting ')' in /core/components/userprofile/model/userprofile/userprofile.class.php on line 1077
                modx 2.3
                  Володя
                  20 января 2015, 08:16
                  0
                  php версия какая? что за сервер?
                    Іван Клімчук
                    20 января 2015, 08:59
                    +1
                    явно ниже 5.4, ругается на краткую нотацию array — []. У меня в последнее время самая частая ошибка, так как пишу на 5.6, а поддерживать приходится хостинги на 5.3.

                    Как вариант, в скрипте установки делать проверку и останавливать установку с сообщением, что версия ниже допустимой. Пока так не делал, но можно. Ну или в старой нотации писать для поддержки старья.
                      Володя
                      20 января 2015, 09:10
                      0
                      ставлю на локалхост… )
                        Василий Наумкин
                        20 января 2015, 10:20
                        0
                        У меня до сих пор для всех проектов в PhpStorm стоит PHP 5.3.

                        Из 5.4+ не использую ничего.
                          Іван Клімчук
                          20 января 2015, 11:07
                          0
                          для modx хватает, не спорю, но я еще и на laravel пишу и экспериментирую и новые плюшки очень хороши. И это я не говорю о производительности. Когда onliner.by перевели на php 5.6, производительность выросла просто на пустом месте процентов на 20-30% (в среднем).
                            Василий Наумкин
                            20 января 2015, 11:41
                            0
                            Вряд ли из-за того, что вместо array() стали писать []? То есть, новый PHP быстрее не из-за того, что там есть более продвинутый синтаксис и прочие плюшки.

                            У нас хостинг тоже летает на PHP 5.5, но дополнения должны работать и на 5.3, к сожалению.
                              Іван Клімчук
                              20 января 2015, 13:06
                              0
                              так я ж и не говорю, что только из-за []. Выше проблема как раз в том, что использовали синтаксис 5.4, когда на сервере 5.3 или ниже.

                              Писать [] вместо array() у меня вошло в привычку после работы в onliner.by, так как там код писали по PSR, но новую версию не только из-за этого я использую. А в остальном да, приходится адаптировать под 5.3, хотя у нашего одного крупного белорусского хостера есть возможность переключить на 5.5 версию. Если учесть, что БД на SSD дисках, то с MODX можно работать.
                        Николаевич
                        20 января 2015, 12:54
                        0
                        5.3.29
                        А как можно обойти эту ошибку?
                          Іван Клімчук
                          20 января 2015, 13:07
                          0
                          Либо обновить версию до 5.4 и выше либо дождаться, когда автор исправит это в самом компоненте.
                            Максим Кузнецов
                            20 января 2015, 13:59
                            0
                            … либо исправить самому)
                              Николаевич
                              20 января 2015, 14:00
                              0
                              Спасибо, но обновится никак. Сайт на хостинге hoster.by
                              Одна надежда на Володю
                                Іван Клімчук
                                20 января 2015, 14:06
                                0
                                на hoster.by как раз таки можно.


                                  Николаевич
                                  20 января 2015, 14:08
                                  0
                                  Опа) Я думал данную функцию нельзя самостоятельно проворачивать) Спасибо! А какую версию посоветуете ставить?
                                    Іван Клімчук
                                    20 января 2015, 14:18
                                    0
                                    я ставил последнюю — 5.5, все ок, по работе и по скорости
                                      Николаевич
                                      20 января 2015, 14:33
                                      0
                                      Как оптимальнее галочки проставить?

                                        Іван Клімчук
                                        20 января 2015, 15:40
                                        0
                                        я думаю, вам не стоит об этом думать, если вы не знаете каждую конкретную настройку и для чего она. Там уже оптимальные настройки
                        Володя
                        20 января 2015, 09:10
                        +1
                        — поправил аватарки и для локальных прикрутил phpthumb
                        — поправил проверку группы пользователя

                        обновление скинул в репо
                        Чупакабра
                        20 января 2015, 18:32
                        0
                        За что отвечает [[!+user_id]]?
                        Просто в независимости от того. залогинен я в web или нет, он постоянно выводит 0
                          Николаевич
                          21 января 2015, 15:13
                          +1
                          Поменял алиас и теперь адрес профиля выглядит так: site.com/id/111
                          Есть ли возможность убрать слеш после id, чтобы выглядело как site.com/id111
                            Володя
                            21 января 2015, 15:14
                            0
                            нет
                              Wassi Wassinen
                              23 января 2015, 16:50
                              +1
                              По-идее, в ТЗ шаблонизацию закладывали.
                            Asert
                            23 января 2015, 14:58
                            0
                            Отличное дополнение. Спасибо. Как ссылку вывести на профиль пользователя?
                              Николаевич
                              24 января 2015, 01:48
                              1
                              0
                              <a href="[[+main_url]]/[[!+user_id]]/">[[+fullname]]</a>
                              Asert
                              23 января 2015, 15:52
                              0
                              В профиле на сайте не дату регистрации показывает а не понятно какую дату, откуда она вообще берется эта дата.
                                Николаевич
                                24 января 2015, 01:46
                                0
                                Гы) Я тоже поначалу не мог догнать. Насколько я понял, регистрация — это первая авторизация пользователя с момента установки UserProfile
                                Иван Бочкарев
                                27 января 2015, 12:35
                                0
                                Данное дополнение конфликтует с установленным ajaxmanager-1.2.0-pl.
                                Переходим в меню — Пользователи -> выбираем пользователя -> кликаем редактировать = получаем страницу пустую страницу с заголовком в админке — Новый пользователь

                                Скриншот: take.ms/Raif6

                                Отключаешь ajaxmanager — все ОК.
                                  Иван Бочкарев
                                  27 января 2015, 15:10
                                  0
                                  После того как пользователь внес данные в поля — в админке не возможно просмотреть данные по пользователю — take.ms/zsN1I получаю пустую страницу.
                                    Василий Столейков
                                    28 января 2015, 15:39
                                    0
                                    Да, помогает только обновление на F5 после нажатия на редактирование пользователя
                                    Василий Столейков
                                    28 января 2015, 16:10
                                    0
                                    В чанке сниппета upUsers не хватает плейсхолдера [[+idx]] для вывода порядкового номера пользователя.
                                      Василий Столейков
                                      28 января 2015, 16:17
                                      +1
                                      Также было бы неплохо, чтобы из коробки была возможность выводить статус пользователя: онлайн/оффлайн. Допустим, если lastactivity в последние 20 минут неактивно, то в какой-то плейсхолдер вбивается статус пользователя (1/0).
                                        Василий Столейков
                                        28 января 2015, 16:22
                                        0
                                        Ещё можно добавить вывод принодлежности пользователя к группе/группам (учитывая что их может быть несколько).
                                        Роман
                                        28 января 2015, 20:11
                                        0
                                        Друзья, так как убрать ошибку?????????? Конечно без манипуляций с версиями php на хостинге!
                                        Parse error: syntax error, unexpected '[', expecting ')' in /srv/sites/exemplesite.ru/core/components/userprofile/model/userprofile/userprofile.class.php on line 1081
                                          Гриневич Александр
                                          06 февраля 2015, 10:43
                                          0
                                          Отличный компонент, Спасибо! Подскажите как можно вывести поле из табов, например «test_field» из примера.
                                            Володя
                                            06 февраля 2015, 10:52
                                            0
                                            Это дополнительные поля в extended и вывести можно просто
                                            [[+extended.test_tab.test_field]]
                                            т.е. extended.таб.поле
                                          Wassi Wassinen
                                          26 февраля 2015, 20:39
                                          0
                                          Проблема в том, что плагин UserProfile, почему то реагирует на тоже самое действие, что и Office.
                                          То есть, Office вообще не обрабатывал выход пользователя с сайта, это делал другой плагин, которому указанные контексты в Office без разницы.

                                          Почему другой плагин реагирует на действие «auth/logout» — нужно спросить у его автора. Лично я специально использовал названия через косую, чтобы не совпадало ни с «logout» ни c «auth_logout», ни с какими другими параметрами сторонних плагинов.
                                          Правда, судя по коду UserProfile — там очень много взято как раз из Office, поэтому и действия совпадают.

                                          В общем, поставил UserProfile более низкий приоритет, чем Office и всё заработало.


                                          Нужно фиксить.

                                          И, Володя, не увидел ссылки на github + нет внятной документации.
                                            Wassi Wassinen
                                            01 марта 2015, 15:09
                                            0
                                              Константин Ильин
                                              07 марта 2015, 17:24
                                              0
                                              Отличный компонент, сыроват но все же!!!

                                              Как добавить описание к полю?

                                              т.е. я создал доп поле
                                              work

                                              в профиле он отображается как:
                                              up_field_work:

                                              как заменить up_field_work: на Должность
                                              тот же вопрос к закладке?

                                              В словаре нет пространства userprofile
                                              Рустам С
                                              21 марта 2015, 02:38
                                              +1
                                              а как связать с hybridauth чтоб показывал в табах соц.сетей — ссылки на профили из hybridauth
                                                Сuriosity
                                                21 марта 2015, 18:33
                                                0
                                                Parse error: syntax error, unexpected '[', expecting ')' in /core/components/userprofile/model/userprofile/userprofile.class.php on
                                                Володя, та же беда…
                                                Вы б нашли время поправить… (:
                                                Потому как не мало проектов стоит на PHP 5.3
                                                adminixi
                                                28 апреля 2016, 17:04
                                                0
                                                Есть возможность разрешить редактировать пользователю только те ресурсы, которые он создал и никакие другие?
                                                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                  77