Куда идем?

Любая уважающая себя социальная сеть должна иметь возможность поиск профилей пользователей по определенным параметрам, например,  по ФИО, году рождения, городу, учебному заведению и.т.д. Подобная функциональность имеется и в  Community Builder. С его помощью вы можете создавать всевозможные списки пользователей и фильтры, которые позволят вашему сообществу быть легко доступным каждому его члену.

Доступ к управлению списками пользователей можно получить, перейдя в «Компоненты» –> «Community Builder» –> «List Management»  из административной панели Joomla. Появится менеджер списков, в котором будут показаны все существующие списки пользователей.

списки пользователей Community Builder

Первое, что нужно понять, это то, что любой список пользователей может содержать от одной до четырех колонок, содержащих в себе по одному или нескольким полям. Разберемся что есть что. Представьте себе таблицу, которая содержит 4 столбца и неограниченное количество строк. Каждая колонка таблицы содержит какой-либо параметр человека – пол, возраст, имя и.т.д., а каждая строка – это отдельный человек. Такая таблица есть один из возможных списков Community Builder, но разница в том, что в Community Builder в одной ячейке таблицы может содержаться множество параметров человека. Это сделано для того, чтобы не ограничиваться четырьмя параметрами колонками. Думаю, что пока все равно не очень понятно, так что пример:

Список пользователей №1:

1 колонка содержит:  Логин, ФИО

2 колонка содержит: Зарегистирован (дата), последний раз был, последний раз обновлял профиль

Таким образом, получаем следующий список:

Заголовок первой колонки

Заголовок второй колонки

Ivanov

Иванов Иван иванович

Зарегистрирован: 12.02.2010

Последний раз был: 7 часов назад

Последний раз обновлял профиль: 3 дня назад

Petrov

Петров Петр Петрович

Зарегистрирован: 03.09.2009

Последний раз был: 2 часа назад

Последний раз обновлял профиль: 8 дней назад

И.т.д…

Следует отметить, что если вы планируете использовать использовать списки с несколькими колонками, убедитесь, что они подойдут под ваш шаблон Joomla. Например, если ваш список содержит 4 колонки, а шаблон имеет фиксированную ширину, то список может выходить за пределы шаблона.

Добавление нового списка

Для добавления нового списка нажмите кнопку New List (новый список) в менеджере списков Community Builder. Отроется форма добавления нового списка. Эта форма довольно необычна и может показаться запутанной у впервые увидевшего ее. Разберем все опции формы по порядку:

списки пользователей Community Builder

Title (Заголовок) – заголовок списка. Данный заголовок будет показан перед списком и в в выпадающем меню выбора списка из всех доступных списков (знаю, звучит ужасно J);

Description (Описание) – описание списка в формате HTML;

Примечание (для продвинутых пользователей)

Вы можете использовать языковые величины для заголовка и описания списка пользователей Community Builder(Даже не знаю как это правильно назвать по-русски. В общем, это переменные, использующиеся в Joomla для создания многоязычности, те, значения которым присваиваются в языковых файлах). Например, _UE_CONTACT_INFO_HEADER по умолчанию определяет заголовок поля контактной информации. Таким способом можно частично обеспечить поддержку нескольких языков в Community Builder, используя JoomlaFish.

Вы можете также использовать тег замены [cb_fieldname] в описании и заголовке. Благодаря этому можно сделать заголовок или описание, обращающееся к пользователю. Например, если в описании списка написать «Привет, [cb_name], это список всех членов нашего сообщества», то пользователь с именем Иван увидит «Привет, Иван, это список всех членов нашего сообщества», пользователь с именем Александр увидит «Привет, Александр, это список всех членов нашего сообщества» и.т.д.

User Group to allow access to (Группы пользователей, которые имеют доступ к списку) – здесь можно выбрать группы пользователей, которые смогут просматривать список. Не забывайте, что структура групп в Joomla иерархическая, т.е. список смогут видеть пользователи выбранной группы и групп, находящихся выше в иерархии;

User Groups to Include in List (Группы пользователей из которых формируется список) – Здесь можно выбрать группы пользователей из которых будет сформирован список. Для выбора нескольких групп используйте клавишу Ctrl или Shift;

Published (Опубликовано?) – опубликован или скрыт список на сайте;

Default (По умолчанию?) – если выбрано, то данный список будет показан по умолчанию в выпадающем списке выбора списков;

Sort By (Сортировать по) – опция выбора способов сортировки пользователей в списке. Доступны различные виды сортировки, в том числе и не связанные  с пользовательскими полями. ASC/DESC – определяет порядок сортировки либо от меньшего к большему, либо наоборот. После выбора способа и порядка сортировки нужно нажать кнопку «Add», чтобы добавить способ к списку доступных способов сортировки. С помощью кнопок «+» и «-» можно управлять порядком способов в списке, а кнопка «Remove» удаляет выделенный способ из списка;

Filter (Фильтр) – очень интересная и гибкая опция, позволяющая настроить фильтрацию пользователей. Если мы хотим дать возможность фильтрации пользователей списка, то можем создать здесь требуемые фильтры. Всего есть 2 вида фильтрации Простой (Simple) и Расширенный (Advanced)        . Простой способ фильтрации действительно прост, но недостаточно гибок. Однако он подойдет для некоторых фильтров.  Здесь фильтрация фильтр создается на основании тех полей:

  1. Параметр пользователя – параметр пользователя, по которому производим фильтрацию;
  2. Логическое условие – условие для фильтрации (см. ниже);
  3. Значение – значение для фильтрации

Условия фильтрации следующие:

  • Greater then – больше, чем («>»)
  • Greater then or Equal to – больше, либо равно («>=»)
  • Less then – меньше, чем («<»)
  • Less then or Equal to – меньше, либо равно («<=»)
  • Equal to – равно («=»)
  • Not Equal to – неравно («<>»)
  • Is NULL – равно нулю («ложно», «логический 0»)
  • Is not NULL – неравно нулю («истинно», «логическая 1»)
  • Like – «вроде, наподобие» – частичное вхождение, т.е. здесь задается только часть фразы, например, если задано (ФИО Like «Ив»), то фильтр найдет пользователей, у которых в ФИО встречается сочетание «Ив», т.е., например, всех «Ивановых», всех «Иванов» и всех «Ивановичей» и.т.д.

списки пользователей Community Builder

Расширенный фильтр гораздо более гибок, но требует знаний языка SQL(см. пример ниже):

списки пользователей Community Builder

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

Далее переходим непосредственно к настройке списка. Опции настройки списка крайне необычны, но все же просты.

списки пользователей Community Builder

У нас есть возможность включения от одной до четырех колонок с множеством полей в каждой ячейки. В центре показано окно, включающее все существующие поля пользователя, и 4 кнопки «Add(Добавить)». Каждая из кнопок добавляет поле к соответствующей колонке.

Каждая из колонок имеет следующие опции:

  • Enable Column (Активировать колонку) – если поставить галочку, колонка будет показана в списке;
  • Column Title (Заголовок колонки) – заголовок данной колонки в списке;
  • Column Captions (Заголовки полей колонки) – если поставить галочку, то перед выводом данных в списке будет указанно, что это за данные. Например: 1) Галочка стоит: «Ранг на форуме: Новичок», 2) Галочка не стоит: «Новичок»
  • Кнопки управления – кнопки управления содержимым списков колонок, аналогичные рассмотренным выше.

Для большей ясности ниже показано 2 рисунка – 1-й с примером настройки, 2-й с результатом настройки

списки пользователей Community Builder

 

списки пользователей Community Builder

  Последняя часть опций под названием «Список параметров» показана на следующем рисунке:

списки пользователей Community Builder

Опции здесь следующие:

– Searchable fields  (поля доступные для поиска) – имеет 3 варианта:

  1. No (Нет) – поиск по списку недоступен;
  2. Searchable fields, displayed ones only (Поиск только по полям, которые отображаются) – поиск будет работать только по тем полям, которые показаны в списке;
  3. All searchable fields (поиск по всем полям) – поиск будет работать по всем полям, доступным для поиска,  даже по тем, которые не показаны в списке.

 Search criteria (Вид поиска) – есть 3 вида:

  1. Simple: Only ‘is’ and ranges (только точные совпадения) – поиск только точных совпадений, указанных в строке поиска. Наиболее быстрый поиск;
  2. Расширенный поиск, включающий частичные совпадения (может быть медленным) – данный вид поиска может искать пользователей по частичному совпадению, т.е., например, если задать в поле поиска «ФИО» фразу «Ив», то все «Ивановы» будут найдены;
  3. Advanced: all possibilities (WARNING: can be slow) (Расширенный поиск, включающий все возможности (может быть медленным)) – самый функциональный, но при этом самый медленный вид поиска. Он включает в себя все условия, имеющиеся в фильтре (см выше), поэтому позволяет искать пользователей наиболее качественно;

Number of entries per page (количество строк на странице) – количество пользователей, показываемых на одной странице;

Show pagination (Показать пагинацию) – пагинация – это разбиение на страницы;

Hot-link protection for the users-list (защита ссылок от сканирования) – есть в интернете такая практика, как сканирование ссылок. Цели сканирования могут быть разными – сбор информации, атака, и.др., но результат всегда один – повышенная нагрузка на сервер и, как следствие, замедление работы сайта. Сканирование страниц возможно лишь тогда, когда в ссылках сканируемых страниц есть некая закономерность, позволяющая предсказать то, какая страница будет следующей. Например, есть ссылка:

http://test.test/index.php?option=com_comprofiler&task=usersList&listid=2&Itemid=56&limitstart=0

Данная ссылка показывает первую страницу списка. Для второй страницы ссылка выглядит так:

http://test.test/index.php?option=com_comprofiler&task=usersList&listid=2&Itemid=56&limitstart=1

Не сложно догадаться, что для третьей страницы ссылка будет:

http://test.test/index.php?option=com_comprofiler&task=usersList&listid=2&Itemid=56&limitstart=2

При этом легко создать автоматический сканер всех последующих страниц.

При включении данной опции все ссылки, кроме первой, будут содержать временную составляющую:

http://test.test/index.php?option=com_comprofiler&task=usersList&listid=2&Itemid=56&cbsecuritym3= cbm_5028b09e_1df0c2ec_4e1370 a96f5efde7bb76ec9021dcb955&limitstart =1

которая изменяется через определенные промежутки времени. Нормально проиндексировать такие страницы поисковым системам не удастся, но оно и не требуется, поскольку работа со списками нужна исключительно для людей.

На этом опции настройки списка пользователей Community Builder закончены, но остается еще несколько важных моментов.

После сохранения списка, если снова зайти в его настройки в самом верху появятся две ссылки:

списки пользователей Community Builder

 

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

Вторая – постоянная ссылка на поиск по данному списку. При переходе по данной ссылке отображается только форма поиска по списку.

Просмотр списков

Последнее, что необходимо разобрать, это просмотр списков. Каждый список имеет свой уникальный идентификатор, посмотреть который можно в менеджере списков:

списки пользователей Community Builder

Чтобы добавить список для просмотра, нужно запомнить его идентификатор и перейти к добавлению нового пункта меню Joomla. При этом в типах меню Joomla нужно выбрать «Community Builder»  –> «Списки пользователей(users list)»

списки пользователей Community Builder

 После этого появится форма, показанная на рисунке ниже

списки пользователей Community Builder

В ней в поле «List id» нужно внести название и  запомненный нами идентификатор списка. После этого ссылка на список появится в нужном меню.

Что хочется отметить в заключении. Community Builder позволяет довольно гибко управлять списками пользователей и фильтрами. При желании можно создать довольно неплохую систему фильтрации пользователей. Единственное, чего не хватает этой системе – возможность задавать параметры фильтрации непосредственно во время отсеивания (т.е., например, мы можем использовать в меню параметр возраст только интервалами, скажем: 1 ссылка – от 10 до 20 лет, 2 ссылка – от 20 до 40 лет, и.т.д, но не можем позволить пользователю самостоятельно задать этот интервал.). Правда этот недостаток легко решается расширенным поиском по списку.

-----------

Представляю вашему вниманию небольшой обзор студии web-дизайна Art of Web: http://artofweb.biz/. Данная студия занимается созданием и продвижением сайтов, web-дизайном, а также рекламой в Интернете. Посмотрел портфолио – понравилось. Что я всегда ценю в дизайне сайтов, так это простоту и привлекательность. С одной стороны сайт должен быть красивым и радовать глаз, а с другой – быть простым и доступным для посетителей. В портфолио  Art of Web, как мне кажется, именно такие сайты. Web-студия ориентированна на разработку, создание и продвижение сайтов в Калуге, но заказчикам их других городов тоже не откажет. Так что если вас интересует создание сайта в Калуге, то Добро Пожаловать!

Об авторе
Wedal
(Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.
Добавить комментарий

Комментарии  
0
Не работает фильтр. Выставляю значения фильтра, нажимаю сохранить, опять вхожу в настройки и вижу - поле пустое. Ну и естетственно на фронте никакой фильрации.
0
Alexander, так не подскажу, нужно разбираться. Могу лишь сказать, что у меня фильтрация работает нормально. Видимо что-то, где-то, как-то.
1
Спасибо БОЛЬШОЕ !!! :-)
0
I enjoyed reading your blog. Keep it that way.
0
Перелопатил кучу сайтов, а только эта статья реально помогла разобраться!
Автору респект и уважуха!!!
0
Есть список пользователей. К примеру их - 4. Три из них имеют в tab - "статус пользователя" одинаковое значение определённого field. Мне их нужно выдать в списке, т.е. всех имеющих одинокое field. В списке создаю фильтр и ставлю наименование группы с условием строго равенства и ничего не отображается.Почему? Это глюк CB? У меня версия 1.2.2
0
Александр, пишите подробнее, с примерами. Какое у вас равенство.
0
Да сложновато написать тут подробнее в рамках Комментариев.Но я уже разобрался.Смысл в том что в версии 1.2.2 (и похоже что у многих есть такая проблема судя по форуму русской поддержки Joomla) фильтр работает корректно только если идёт выборка по англоязычному полю. Если поле, по которому идёт сортировка прописано кириллицей то вывод списка по фильтру не работает. А причина в том, что в таблице базы MySQL не корректно прописывается условие фильтрации. Вместо русских символов - кракозябра и приходится после создания фильтра заходить в базу и прописывать условие фильтрации в ручную !!!
0
А как ищменить цвет текста в списке..
Ато у меня при переходе по силке на список, поле пустое, но при клике на ном откриваютса профили...
0
Brodyaga, поможет Firebug.
0
та тут цвет нормальний. А вот сам список не отображаетса..
Стандартний отображает, а при создании нового или редакту стандартного уже ничего нет.
Пишкт на сайте есть 3 юреза, а их не отображает!!!
0
Brodyaga, возможно, вы неверно установили группу пользователей из которых формируется список. Потому они и не отображаются.
0
Wedal, а скажите как разшифровать такое.?? За что кождое поле отвечает???
http://fotky.com.ua/view/full/76813_tjmco
чтоби перевести поле, надо знать ча что оно отвечает..
0
Brodyaga, по порядку:
1) Имя пользователя
2) Статус(онлайн/офлайн)
3) Дата последнего посещения
4) не знаю
5) аватар
А вообще, переключите язык на английский и посмотрите, что там написано.
0
спасибо,
Очень помогли!!
1
Кто знает, как убрать эти чертовы два бордера, между которыми список пользователей?
0
в директории \имя сайта\components\com_comprofiler

открывай файл comprofiler.html.php

там ищешь класс cbUserListHrTop
и удаляешь его вместе со скобками тегов
это верхний бордер

то же делаешь с нижним cbUserListHrBottom
0
Здравствуйте.
Ранее у меня стояли joomla 1.7 и CB 1.7. Но в виду довольно бедного набора расширений, решил поставить joomla 1.5 и CB 1.2 RC 3.

Само-собой пришлось все подгонять и переписывать с нуля. Но при создании списка пользователей на CB 1.2 RC 3, к своему ужасу обнаружил, что в "списке параметров" List Management отсутствует "многокритериальный поиск" .

Вследствие чего в поисковых формах появилась куча логических критериев поиска (такие как "точное совпадение, содержит фразу, содержит любое из" и т.п.).

Я считаю что такой "шикарный" выбор критериев будет только затруднять пользователей.

Достойной альтернативы по поисковым плагинам и плагинам списков пользователей - не нашел.

Обновление версии СB, как известно может привести к всевозможным ошибкам. А начинать все с начала хоть и возможно, но достаточно трудоемко.

Не мог бы кто-нибудь подсказать каким образом можно убрать эти злосчастные критерии поиска, или помочь найти любое другое оптимальное решение?

Заранее благодарен, Дмитрий
0
Dmitry, ну во-первых:

Цитата:

Ранее у меня стояли joomla 1.7 и CB 1.7. Но в виду довольно бедного набора расширений, решил поставить joomla 1.5 и CB 1.2 RC 3.

Т.е. вы отказались от новой версии, заменив ее прототипом старой(RC - это релиз кандидат.)
Обновите версию хотя бы до стабильной. Возможно, там появится то, что вам нужно.
0
Спасибо, а вот этого я не знал. Я пологаю стабильная версия, в моем случае, это - СВ 1.2.

Что-ж прийдется пойти на обновление..
0
Здравствуйте.
странно работает LIKE , ищет только по точному совпадению.
есть мультичекбокс `cb_sports`
по условию `cb_sports` LIKE 'box' находит тех юзеров, у которых отмечен ТОЛЬКО box.
если отмечены box и sky , то не находит ни по 'box' ни по 'sky'
по выражению `cb_sports` LIKE 'bo' не находит никого.
В настройках:
All searchable fields
Advanced: all possibilities (WARNING: can be slow)
1
Евгений,

Цитата:

по условию `cb_sports` LIKE 'box' находит тех юзеров, у которых отмечен ТОЛЬКО box. если отмечены box и sky , то не находит ни по 'box' ни по 'sky'

потому, что должно быть `cb_sports` LIKE '%box%'

Цитата:

по выражению `cb_sports` LIKE 'bo' не находит никого.

естествннно. Чтобы находил должно быть `cb_sports` LIKE '%bo%'.
0
Вот спасибо! все работает.
и вообще сайт супер! успехов!
0
Здравствуйте, создал список пользователей все делал согласно инструкции, все поочередно, но при заходе на сайт отображает "Нет пользователей" хотя они есть они зарегистрированы, просмотр списков тоже могут лишь зарегистрированные. джумла 1.5. Cb 1.2.2
0
Здравствуйте. Подскажите, пожалуйста, как сделать следующее. Хочу создать на сайте список риэлторов (они сами себя туда заносят при регистрации). Сделал (при регистрации) radiobutton "Вы риэлтор" и два варианта ответа: "Да" и "Нет". Если "Да", то пользователь заносится в меню "Риэлторы", если "Нет", то пользователь просто регистрируется, но не попадает в этот список. Как это реализовать корректно? Я в новом списке "Риэлторы" в фильтре задал параметр "Вы риэлтор?" значение IS NOT NULL, но это не помогло - в список риэлторов заносятся все регистрируемые. Подскажите, пожалуйста, что делать.
0
Гость777, стандартный CB не позволяет создавать несколько типов профилей. Для этого нужен, например, CB Profile Pro.
0
Спасибо большое за полезную статью!
Но есть непонятки с выводом списка. Во-первых, при выборе типа меню из Community Builder - при выборе любого пункта идет сброс на logout. В результате удалось вывести userlist как внешнюю ссылку - т.е. отдельной страницей.
Подскажите, как можно вывести userlist как отдельный модуль, который можно расположить на любой из страниц сайта?
0
Ольга, к сожалению, нет.
0
Хочу сделать регистрацию пользователей так, чтобы для каждого типа пользователя была свой форма регистрации. А именно так. Нажав на ссылку зарегистрироваться, пользователь попадает в окно (сайта) выбора пользователя. Выбрав тип пользователя, пользователь переходит на соответствующую форму регистрации. Посмотрел подобные темы в гугле, так ничего толкового и не нашел, рекомендуют CommunityBuilder Pro. Есть ли другие способы?
0
Гость333, другой способ - использовать не CB, а другое расширение, например, SEBLOD, но там все будет гораздо сложнее.
0
а я ввожу название списка "Последние посетившие" , а на выходе получается "????????????????". И в админке и во фронтенде.

как с этим бороться?

и если использовать языковые переменные, то в каком файле их можно править? пока только каждый раз загружал заново весь русификатор (после изменений в нём).

а статья очень понравилась. большое спасибо.

использую CB 1.9, Joomla 2.5
0
Здравствуйте. У меня такой вопрос. Хочу сделать на своем сайте вывод пользователей определенного типа - "риэлторов" (есть просто зарегистрировавшиеся , а есть риэлторы). Выбор типа пользователя осуществляется при регистрации. На жумла 1.5 все получилось сделать, но на 2.5 не получается. На 1.5 я создал пункт меню Community Builder User profile, зполнил поля, в поле List id ввел номер нужного id. Но в жумла 2.5 этого поля List id нет. Подскажите, пожалуйста, как вывести на жумла 2.5 нужный тип пользователя. Спасибо.