htmlbook.ru - настольная книга администратора

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Loading

Go Back   форум vBSupport.org > > >
Register Изображения Меню vBsupport Files Manager Аллея Звёзд Реклама на форуме Search Today's Posts Mark Forums Read
  • Мемберка
  • Администраторам
  • Premoderation
  • For English speaking users
  • Изменения в правах
  • Каталог Фрилансеров
Пароли на скачивание файлов в Member Area меняются автоматически каждый день
Если вам нужно скачать какой то скрипт, за паролем ко мне в ЛС
привет какирам kerk
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Не можете скачать вложение?
Изменения в правах групп пользователей
внимательно читаем эту и эту темы
Короткая версия - тут
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

 
 
Old  
Sellrion
В Черном-причерном списке
 
Sellrion's Avatar
Default [Статья] Дополнительные поля профиля - Quick Guide 86

I. Вступление.
Итак, эта инструкция будет полностью посвещена дополнительным полям профиля. Мы узнаем что это за функция vBulletin и для чего ее можно применить. Так же мы познакомимся со способами и основными правилами применения дополнительных полей профиля.

II. Основные понятия.
Как мы с вами знаем vBulletin - это довольно функциональный скрипт форума со множеством возможностей. Однако, есть вещи, которые разработчики по объективным причинам не могут добавить в основной набор возможностей двига. Эти причины очевидны - либо они считают, что данная функция выходит за рамки необходимого, либо же она просто настолько узкоспециализированна, что может быть актуальна только на вашем конкретном форуме. Благо, возможностей реализации собственных функций в vBulletin много - начиная с продуктов и модулей, и заканчивая ручным редактированием файлов и шаблонов. И вот вы задались идеей создать некий свой собственный функционал. Вы прошли через все ужасы коддинга и постигания азов управления vBulletin, но тут столкнулись с проблемой - как позволить пользователю управлять новой функцией через изменение настроек? Все доступные пользователю опции размещены в UserCP (рус. "Мой кабинет"), но как сделать так, чтобы там присудствовали и ваши собственные настройки? Как добавить новую, настраиваемую пользователем, графу информации в его профиль? И, наконец, каким образом влиять на поведение форума в зависимости от значений этих настроек? Вот тут нам на помощь приходит мощный иснтрумент vBulletin - Дополнительные поля профиля. Я сказал "мощный" не просто так. Действительно, с помощью Дополнительных полей профиля можно привязать совершенно любое поведение форума к настройкам, которые были бы доступны для редактирования пользователю.

IV. Панель администратора.
Для того, чтобы начать работу с дополнительными полями профиля надо зайти в Панель управления (администрирования). Слева рассположены группы настроек. Нам необходимо найти группу под названием "Дополнительные поля профиля". Если мы развернем группу, то увидим список из трех строк:

  • Управление дополнительными полями профиля. Позволяет получит доступ к списку уже созданных полей профиля и отредактировать любой из них. Обратите внимание, что изначально этот список уже включает в себя пять стандартных полей. Их при желании можно отредактировать или удалить.
  • Добавить дополнительное поле профиля. Позволяет полноценно добавить новое поле профиля, полностью его настроив.
  • Категории дополнительных полей профиля. Позволяет создать произвольное количество категорий полей профиля и управлять ими. Эта функция была добавлена сравнительно недавно и заключается они лишь в том, что поля разных категорий будут разделены между собой заголовками - названиями категорий при отображении их на форуме. Не советую пользоваться категориями, так как с точки зрения дизайна они выглядят весьма странно и бесмысленно. Однако их можно использвать для того чтобы рассортировать поля в списке, который доступен через Управление дополнительными полями профиля см. выше. Только в этом случае необходимо чтобы эти поля не были предназначены для их отображения в профиле пользователя.


V. Добавление дополнительного поля профиля.
Итак, для начала разберемся с добавлением нового поля. Выберем сответствующую строку в списке и перейдем к первому шагу - выбору типа поля. Существует шесть доступных типов полей на выбор:
  • Текстовое поле одной строкой. Пользователю отображается текстовое поле, в которое можно ввести текст определенной длинны, но только в одну строку.

  • Многострочное текстовое поле. Пользователю отображается текстовое поле, в которое можно ввести текст определенной длинны в несколько строк.

  • "Радио" кнопки с выбором одного Пользователю отображается переключатель, состоящий из заданного количества позиций. Пользователь может выбрать лишь одну позицию из всех предложенных.

  • Меню с выбором одного Пользователю отображается раскрывающийся список с определенным количеством строк - вариантов опций. Пользователь может выбрать лишь одну опцию из списка.
  • Меню с выбором нескольких Пользователю отображается список с определенным количеством строк - вариантов опций. Пользователь может выбрать несколько вариантов из списка, выделив их поочередно в списке, удерживая клавишу Ctrl при каждом щелчке на строку с опцией.

  • Флажки (checkboxes) c возможностью выбора нескольких Пользователю отображается группа опций. Пользователь может выбрать несколько вариантов, отметив их флажком (галочкой).

После того как вы определелитесь с типом поля, можно переходить ко второй стадии создания. Так как в зависимости от сделанного выбора интерфейс далее немного меняется, то рассмотрим все варианты по-порядку.

Текстовое поле одной строкой.
1. Заголовок: заголовок отображается в качестве заголовка группы элементов в опциях пользователя.
2. Описание: описание позволяет Вам ввести текст, который бы описывал Вашу настройку пользователю. В этом поле можно использовать HTML-код, поэтому текст можно отформатировать по своему вкусу.
3. Категория профиля: этой настройкой определяется принадлежность поля к одной из раннее созданных категорий. Если у Вас несколько категорий, то они все будут в этом списке. Для того чтобы не привязывать опцию к категории поставьте переключатель в положение "(Вне категорий)".
4. Значение по-умолчанию: позволяет Вам ввести текст, который будет отображаться в поле по-умолчанию, и может быть изменен пользователем на свой.
5. Максимальное количество символов в значении поля: позволит Вам ограничить число символов для ввода. Строго рекомендуется всегда указывать приемлемые и адекватные цифры для этого параметра!
6. Размер поля: позволяет Вам указать длину поля. Выбирайте ее, исходя из Вашего дизайна, но помните, что ее необходимо вводить в символах. Так же хотелось бы обратить внимание на замечание из Помощи администратору: "Это значение должно быть меньше или равным максимальному количеству символов, позволенному ввести в это поле.". Не забывайте об этом.
7. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
8. Обязательное поле: эта настройка позволяет устанавливать правила необходимости заполнения данного поля. Нет - мользователь может не заполнять поле. Нет, но показывать при регистрации - настройка будет отображена при регистрации, но от ее изменения пользователь может отказаться. Да, при регистрации и обновлении профиля - пользователь должен заполнить это поле при регистрации или при первом редактировании своего профиля. Да, всегда - пользователь должен будет заполнить это поле, в противном случае ему будет блокирован доступ на форум до тех пор пока он не выполнит изменение настройки.
9. Доступно для редактирования пользователем: Нет - пользователь сможет лишь один раз установить значение этой настройки или поля профиля. Да - пользователь может изменять настройку в любой момент. Только при регистрации - пользователь сможет отредактировать поле или настройку только раз - при регистрации.
10. Личное поле: определяет права доступа к чтению содержимого поля. Настройка имеет смысл только если она создается как дополнительное поле профиля. Если установить переключатель в положение "Да", то поле будет доступно для чтения только самому пользователю и тем пользователям, у кого есть необходимые разрешения на просмотр личных полей.
11. Доступен поиск по этому полю в списке пользователей: управляет доступностью этой опции в расширенном поиске форума. Если настройка включена, то пользователей можно будет икать по данному полю.
12. Отображать в списке пользователей: позволяет отобразить значение этого поля в списке пользователей в отдельной колонке.
13. Регулярное выражение: необходимо для обработки правильности ввода значения в данное поле. Регулярное выражение необходимо вводить в так называемом PCRE формате. Подробнее о правилах написания регулярных выражений можно узнать из любого учебника по PHP. Если значение, введенное пользователем, не соответсвует правилам, заданным при помощи регулярного выражения, то форум не примет ввод и выдаст ошибку.

Многострочное текстовое поле.
См. пункт "Текстовое поле одной строкой."

"Радио" кнопки с выбором одного.
1. Заголовок: заголовок отображается в качестве заголовка группы элементов в опциях пользователя.
2. Описание: описание позволяет Вам ввести текст, который бы описывал Вашу настройку пользователю. В этом поле можно использовать HTML-код, поэтому текст можно отформатировать по своему вкусу.
3. Категория профиля: этой настройкой определяется принадлежность поля к одной из раннее созданных категорий. Если у Вас несколько категорий, то они все будут в этом списке. Для того чтобы не привязывать опцию к категории поставьте переключатель в положение "(Вне категорий)".
4. Элементов на строку: позволяет Вам выбрать количество позиций в одной строке. Учтите, что если отключить эту опцию, то при большом числе позиций дизайн форума растянется.
5. Опции: введите сюда все желаемые позиции - варианты опций по одному на каждую строку.
6. По умолчанию: позволяет Вам задать первую опцию в списке выбранной по-умолчанию. Если эту опцию отключить, то ни одна из позиций не будет выбрана и значение этого поля профиля будет пустым до тех пор пока пользователь не внесет изменения.
7. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
8. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
9. Обязательное поле: эта настройка позволяет устанавливать правила необходимости заполнения данного поля. Нет - мользователь может не заполнять поле. Нет, но показывать при регистрации - настройка будет отображена при регистрации, но от ее изменения пользователь может отказаться. Да, при регистрации и обновлении профиля - пользователь должен заполнить это поле при регистрации или при первом редактировании своего профиля. Да, всегда - пользователь должен будет заполнить это поле, в противном случае ему будет блокирован доступ на форум до тех пор пока он не выполнит изменение настройки.
10. Доступно для редактирования пользователем: Нет - пользователь сможет лишь один раз установить значение этой настройки или поля профиля. Да - пользователь может изменять настройку в любой момент. Только при регистрации - пользователь сможет отредактировать поле или настройку только раз - при регистрации.
11. Личное поле: определяет права доступа к чтению содержимого поля. Настройка имеет смысл только если она создается как дополнительное поле профиля. Если установить переключатель в положение "Да", то поле будет доступно для чтения только самому пользователю и тем пользователям, у кого есть необходимые разрешения на просмотр личных полей.
12. Доступен поиск по этому полю в списке пользователей: управляет доступностью этой опции в расширенном поиске форума. Если настройка включена, то пользователей можно будет икать по данному полю.
12. Отображать в списке пользователей: позволяет отобразить значение этого поля в списке пользователей в отдельной колонке.

Меню с выбором одного.
1. Заголовок: заголовок отображается в качестве заголовка группы элементов в опциях пользователя.
2. Описание: описание позволяет Вам ввести текст, который бы описывал Вашу настройку пользователю. В этом поле можно использовать HTML-код, поэтому текст можно отформатировать по своему вкусу.
3. Категория профиля: этой настройкой определяется принадлежность поля к одной из раннее созданных категорий. Если у Вас несколько категорий, то они все будут в этом списке. Для того чтобы не привязывать опцию к категории поставьте переключатель в положение "(Вне категорий)".
4. Опции: введите сюда все желаемые позиции - варианты опций по одному на каждую строку.
5. По умолчанию: Да, даже с пустой первой опцией - устанавливает первую строку списка как значение по-умолчанию, даже если эта строка пуста. Нет - значение по-умолчанию отсутствует. Да, но первая опция не пустая - устанавливает первую строку списка как значение по-умолчанию, но только при условии что эта строка не пуста.
Замечание о пустой первой строке: дело в том, что меню сделано таким образом, что у пользователя нет возможности "обнулить" настройку, однажды ее изменив. Для имитирования пустого значения поля, иногда, первую строку делают пустой, чтобы дать пользователю возможность выключить использование поля совсем.
6. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
7. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
8. Обязательное поле: эта настройка позволяет устанавливать правила необходимости заполнения данного поля. Нет - мользователь может не заполнять поле. Нет, но показывать при регистрации - настройка будет отображена при регистрации, но от ее изменения пользователь может отказаться. Да, при регистрации и обновлении профиля - пользователь должен заполнить это поле при регистрации или при первом редактировании своего профиля. Да, всегда - пользователь должен будет заполнить это поле, в противном случае ему будет блокирован доступ на форум до тех пор пока он не выполнит изменение настройки.
9. Доступно для редактирования пользователем: Нет - пользователь сможет лишь один раз установить значение этой настройки или поля профиля. Да - пользователь может изменять настройку в любой момент. Только при регистрации - пользователь сможет отредактировать поле или настройку только раз - при регистрации.
10. Личное поле: определяет права доступа к чтению содержимого поля. Настройка имеет смысл только если она создается как дополнительное поле профиля. Если установить переключатель в положение "Да", то поле будет доступно для чтения только самому пользователю и тем пользователям, у кого есть необходимые разрешения на просмотр личных полей.
11. Доступен поиск по этому полю в списке пользователей: управляет доступностью этой опции в расширенном поиске форума. Если настройка включена, то пользователей можно будет икать по данному полю.
12. Отображать в списке пользователей: позволяет отобразить значение этого поля в списке пользователей в отдельной колонке.

Меню с выбором нескольких.
1. Заголовок: заголовок отображается в качестве заголовка группы элементов в опциях пользователя.
2. Описание: описание позволяет Вам ввести текст, который бы описывал Вашу настройку пользователю. В этом поле можно использовать HTML-код, поэтому текст можно отформатировать по своему вкусу.
3. Категория профиля: этой настройкой определяется принадлежность поля к одной из раннее созданных категорий. Если у Вас несколько категорий, то они все будут в этом списке. Для того чтобы не привязывать опцию к категории поставьте переключатель в положение "(Вне категорий)".
4. Максимум опций: позволяет Вам установить максимальное количество вариантов опции, которое может выбрать пользователь. 0 - не ограниченно, хоть все.
5. Высота поля: укажите высоту контейнера со списком. Если она меньше кол-ва опций, то будет отображена вертикальная полоса прокрутки.
6. Опции: введите сюда все желаемые позиции - варианты опций по одному на каждую строку. Не более 31 варианта.
7. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
8. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
9. Обязательное поле: эта настройка позволяет устанавливать правила необходимости заполнения данного поля. Нет - мользователь может не заполнять поле. Нет, но показывать при регистрации - настройка будет отображена при регистрации, но от ее изменения пользователь может отказаться. Да, при регистрации и обновлении профиля - пользователь должен заполнить это поле при регистрации или при первом редактировании своего профиля. Да, всегда - пользователь должен будет заполнить это поле, в противном случае ему будет блокирован доступ на форум до тех пор пока он не выполнит изменение настройки.
10. Доступно для редактирования пользователем: Нет - пользователь сможет лишь один раз установить значение этой настройки или поля профиля. Да - пользователь может изменять настройку в любой момент. Только при регистрации - пользователь сможет отредактировать поле или настройку только раз - при регистрации.
11. Личное поле: определяет права доступа к чтению содержимого поля. Настройка имеет смысл только если она создается как дополнительное поле профиля. Если установить переключатель в положение "Да", то поле будет доступно для чтения только самому пользователю и тем пользователям, у кого есть необходимые разрешения на просмотр личных полей.
12. Доступен поиск по этому полю в списке пользователей: управляет доступностью этой опции в расширенном поиске форума. Если настройка включена, то пользователей можно будет икать по данному полю.
13. Отображать в списке пользователей: позволяет отобразить значение этого поля в списке пользователей в отдельной колонке.

Флажки.
1. Заголовок: заголовок отображается в качестве заголовка группы элементов в опциях пользователя.
2. Описание: описание позволяет Вам ввести текст, который бы описывал Вашу настройку пользователю. В этом поле можно использовать HTML-код, поэтому текст можно отформатировать по своему вкусу.
3. Категория профиля: этой настройкой определяется принадлежность поля к одной из раннее созданных категорий. Если у Вас несколько категорий, то они все будут в этом списке. Для того чтобы не привязывать опцию к категории поставьте переключатель в положение "(Вне категорий)".
4. Элементов на строку: позволяет Вам выбрать количество позиций в одной строке. Учтите, что если отключить эту опцию, то при большом числе позиций дизайн форума растянется.
5. Максимум опций: позволяет Вам установить максимальное количество вариантов опции, которое может выбрать пользователь. 0 - не ограниченно, хоть все.
6. Опции: введите сюда все желаемые позиции - варианты опций по одному на каждую строку. Не более 31 варианта.
7. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
8. Порядок отображения по: если Вы планируете создать несколько полей подряд, то этот параметр поможет Вам установить очередность их следования при отображении на форуме в Опциях Моего кабинета. Если Вы не установите своего значения, поле будет добавлено последним.
9. Обязательное поле: эта настройка позволяет устанавливать правила необходимости заполнения данного поля. Нет - мользователь может не заполнять поле. Нет, но показывать при регистрации - настройка будет отображена при регистрации, но от ее изменения пользователь может отказаться. Да, при регистрации и обновлении профиля - пользователь должен заполнить это поле при регистрации или при первом редактировании своего профиля. Да, всегда - пользователь должен будет заполнить это поле, в противном случае ему будет блокирован доступ на форум до тех пор пока он не выполнит изменение настройки.
10. Доступно для редактирования пользователем: Нет - пользователь сможет лишь один раз установить значение этой настройки или поля профиля. Да - пользователь может изменять настройку в любой момент. Только при регистрации - пользователь сможет отредактировать поле или настройку только раз - при регистрации.
11. Личное поле: определяет права доступа к чтению содержимого поля. Настройка имеет смысл только если она создается как дополнительное поле профиля. Если установить переключатель в положение "Да", то поле будет доступно для чтения только самому пользователю и тем пользователям, у кого есть необходимые разрешения на просмотр личных полей.
12. Доступен поиск по этому полю в списке пользователей: управляет доступностью этой опции в расширенном поиске форума. Если настройка включена, то пользователей можно будет икать по данному полю.
13. Отображать в списке пользователей: позволяет отобразить значение этого поля в списке пользователей в отдельной колонке.

Дополнительный ввод.
При создании полей профиля определенного типа, Вам может быть отображена опция дополнительного ввода. Ее включение позволяет пользователю не выбирать вариант из существующих, а написать свой в соответствующее текстовое поле, которое появится при отображении настройки в Моем кабинете. Настройки здесь аналогичны настройкам поля типа "Текстовое поле одной строкой".


VI. Показать страницу.
Установка значения этой настройки является одной из важнейших стадий создания дополнительного профиля пользователя. Она фактически определит роль нового поля профиля на форуме. Есть два варианта: 1 - значение опции будет отображено в профиле пользователя. Для этого необходимо выбрать из списка строку "Редактировать профиль". Настройка будет отображена в разделе "Редактировать профиль" Моего кабинета, а значение настройки будет выведено в профиль пользователя. 2 - опция будет управлять каким-либо поведением или внешним видом форума. Для этого настройку стоит поместить в наиболее подходящую группу раздела "Опции" Моего кабинета. Чтобы сделать это, просто выберите из списка строку с соответствующим названием группы. Ваша настройка будет отображена в одной из групп раздела "Опции" Моего кабинета, а ее значение будет управлять событиями на форуме или поведением/отображением форума пользователю.


VII. Немного коддинга.
Итак, новое поле создано и отображено в желаемом месте настроек Моего кабинета. Что же дальше? А дальше нам необходимо выяснить как использовать значение настройки в кодах шаблонов. Все значения полей профиля пользователя доступны через глобальный массив $userinfo. Кроме того, они доступны в массиве $post при просмотре темы. Для вывода значения опции используется синтаксис:
Code:
$userinfo[fieldX]
или
Code:
$post[fieldX]
где, X - числовой идентификатор поля. Его можно узнать, зайдя в Управление дополнительными полями профиля панели администратора. Колонка "Название" как раз содержит этот идентификатор. Допустим идентификатор поля - field20. Для вывода значения этого поля пользователя на экран Вы должны в шаблон вставить следующий код:
Code:
$userinfo[field20]
или
Code:
$post[field20]
Замечание: значение поля - это текстовая строка, значение которой точно совпадает с названием выбранной пользователем опции. Поэтому если Вам необходимо выяснить какое значение выбрал пользователь, то необходимо его поочередно сравнивать с заведомо известными вариантами, которые были предложены. Например пользователь выбрал вариант "Да". Значение поля будет точно таким же. Для того чтобы узнать выбор пользователя пишем код:
Code:
<if condition = "$userinfo[field20]=='Да'">
Ваш код здесь
<else />
Ваш код здесь
</if>
или
Code:
<if condition = "$userinfo[field20]=='Да'">
Ваш код здесь
</if>
<if condition = "$userinfo[field20]=='Нет'">
Ваш код здесь
</if>
В некоторых ситуациях не требуется выяснять какой выбор сделал пользователь, достаточно лишь установить пуста ли настройка или нет. Для этого используется синтаксис:
Code:
<if condition = "$userinfo['field20']">
Ваш код здесь
<else />
Ваш код здесь
</if>
или
Code:
<if condition = "$post['field20']">
Ваш код здесь
<else />
Ваш код здесь
</if>
Переменная $userinfo['fieldX'] имеет тип булевой перемменой, т.е. может принимать два значения - True и False. Если $userinfo['fieldX'] имеет значение True значит значение настройки не пустое, следовательно будет выполнена первая часть кода. Довольно часто вам будет необходимо узнавать значение конкретной настройки не того пользователя, пост или профиля просматривается в данный момент, а пользователя просматривающего форум. Для этого используется массив $bbuserinfo. Синтаксис выглядит так:
Code:
<if condition = "$bbuserinfo[field20]=='Да'">
Ваш код здесь
<else />
Ваш код здесь
</if>
или
Code:
<if condition = "$bbuserinfo['field20']">
Ваш код здесь
<else />
Ваш код здесь
</if>
Внимание! У вас может возникнуть вопрос: как проверить значения выбранных полей, если в настройках полей профиля стоит множественный выбор? Действительно, если мы создадим текстовое поле с выбором нескольких вариантов ответа, то переменная $userinfo['field20'] будет содержать что-то вроде "256847". Как перевести это в читаемый формат? Дело в том, что в случае выбора нескольких вариантов, в базу данных записываются биты этих вариантов. Каждый вариант идентифицируется битом по порядку: 1, 2, 4, 8, 16, 32, 64, 128, 256 и т.д. При выборе нескольких вариантов в базу записывается сумма этих битов. Чтобы проверить выбран ли тот или иной вариант, следует применять код:
Code:
<if condition = "$userinfo[fieldX] & 32">
Ваш код здесь
<else />
Ваш код здесь
</if>
или
Code:
<if condition = "$bbuserinfo[fieldX] & 32">
Ваш код здесь
<else />
Ваш код здесь
</if>
Код выше проверяет не выбрана ли опция номер 6.

VIII. Решение задач
Итак, для примера решим две довольно распространенные задачи.

Задача №1:
Необходимо дать возможность пользователю выбирать ширину основной таблицы форума через настройку в разделе "Опции" Моего кабинета.

Решение
1. Создаем новое поле профиля пользователя. Вибираем тип поля - "Радио" кнопки с выбором одного.
2. Заполняем настройки. Настройку "Опции" заполняем значениями: 100%, 90%, 80%, 950px, 750px, разделяя значения переводом строки (Enter-ом). px - латинские буквы, обозначающие единицы измерения - пикселы.
3. Задаем место отображения настройки - Опции: Другое.
4. Открываем шаблон spacer_open. В нем ищем код, определяющий ширину таблицы форума:
HTML Code:
<div class="page" style="width:$stylevar[outerdivwidth]; text-align:$stylevar[left]">
		<div style="padding:0px $stylevar[spacersize]px 0px $stylevar[spacersize]px">
4. Заменяем этот код на структуру if, которая будет обрабатывать ошибку в том случае, если значение поля окажется пустым. Следовательно:
HTML Code:
<if condition = "!$bbuserinfo['fieldX']">
	<div class="page" style="width:$stylevar[outerdivwidth]; text-align:$stylevar[left]">
		<div style="padding:0px $stylevar[spacersize]px 0px $stylevar[spacersize]px">
<else />
<div class="page" style="width:$bbuserinfo[fieldX]; text-align:$stylevar[left]">
		<div style="padding:0px $stylevar[spacersize]px 0px $stylevar[spacersize]px">
</if>
Обратите внимание, так как название вариантов опции соответствуют правильному HTML синтаксису, то мы можем просто заменить $stylevar[outerdivwidth] на $bbuserinfo[fieldX]. Форум просто подставит значение поля fieldX в код шаблона. Все! Теперь пользователь может выбирать ширину форума.

Задача №2:
Необходимо отобразить в легенде поста пользователя изображение, соответствующее его полу.

Решение
1. Создаем новое поле профиля пользователя. Вибираем тип поля - Меню с выбором одного.
2. Заполняем настройки. Настройку "Опции" заполняем значениями: [пустая строка], мужской, женский, разделяя значения переводом строки (Enter-ом). [пустая строка] - чтобы создать пустую строку, просто нажмите Enter.
3. Задаем место отображения настройки - Опции: просмотр темы.
4. Открываем шаблон postbit или postbit_legacy, и в нужном месте шаблона пишем код:
HTML Code:
<if condition = "!$post['fieldX']">
	<!-- do nothing //-->
<else />
<if condition = "$post[fieldX]=='мужской'">
Код картинки здесь
</if>
<if condition = "$post[fieldX]=='женский'">
Код картинки здесь
</if>
</if>
Первая часть кода говорит о том, что если значение поля отсутсвует, то никакая картинка отображена не будет. do nothing - это лишь комментарий, там можно написать что угодно. Все! Пользователь может выбирать картинку на посте в зависимости от своего пола.

IX. Задача для самопроверки
Разрешите пользователю использовать на форуме оба шаблона постов - postbit или postbit_legacy в зависимости от выбранных настроек. PHP код задания отображения темы с шаблоном postbit:
PHP Code:
$vbulletin->options['legacypostbit'] = 0
с шаблоном postbit_legacy:
PHP Code:
$vbulletin->options['legacypostbit'] = 1
Удачи в изучении! Все вопросы по пройденному материалу оставляйте здесь, буду отвечать...
 
Old  
kerk
k0t
 
kerk's Avatar
Default 0

никак, это доп. поля
только узер сам должен сменить, либо админ каждому в админке
 
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
Old  
d0s
Простоузер
Default 0

Вопрос поднимался, но ответа так вроде и не было:

Использование HTML в доп. поле, как реализовать?

в исходниках html получается
Code:
&lt;i&gt;Текст&lt;/i&gt;
 
Old  
deluxi
Простоузер
Default 0

Привет всем вот что получилось когда вписал такой код он виходит на еран
PHP Code:
<if condition="$post['field4']"><div>Адрес$post[field4]</div></if> 

а когда воттак пишу
PHP Code:
<if condition="$post['field4']"><div>$vbphrase[field4_title]: $post[field4]</div></if> 
тока 2 точки на екране что нетак ДЕЛАЮ??????
 
Old  
d0s
Простоузер
Default 0

Quote:
Originally Posted by deluxi View Post
тока 2 точки на екране что нетак ДЕЛАЮ??????
не знаю что у тебя за версия.. но если пытаешься вывести адрес, то:

заместо $vbphrase[field4_title] нужно писать $vbphrase[location_perm]
 
Old  
Doc177
Продвинутый
Default 0

Quote:
Originally Posted by UndeadDragon View Post
Подскажите, пожайлуста, как вывести значение дополнительного поля под аватар на форуме?
Тоже все прочитал, но так и не понял
Подскажите, для особо одарено тупых, как можно сделать под аваторкой, где написан адрес, при просмотре темы в сообщение, чтобы выводилось еще одно поле
У меня есть несколько дополнительных полей, в профили и при регистрации они отображаются без проблем
А вот под аваторкой не могу сделать
Тему прочитал, на то что там нашел, какие коды, то так и не чего не получается
Понимаю, что нужно запихнуть field5 куда то, но куда и с каким кодом непонятно и сам не могу найти

В теме таких вопросов много, но ответа нет не на одно сообщения
В первое сообщения не посылайте, я там уже был
 
Old  
MerK
Простоузер
Default 0

Подскажите пожалуйста рег.выражение, чтобы принималась только кириллица...
 
Old  
Sellrion
В Черном-причерном списке
 
Sellrion's Avatar
Default 2

Обновил чуток инструкцию...
 
Old  
KirillDE
Простоузер
Default 0

Quote:
Originally Posted by Тиджик View Post
Как сделать значёк по типу "ICQ" , "Скайпа" и .д но только для "В Котакта" , т.е что бы рядом с значком аськи был значёк Контакта и при нажатии на него перебрасывало на страницу пользователя
в postbit_legacy после
PHP Code:
$post[icqicon$post[aimicon$post[msnicon$post[yahooicon$post[skypeicon
вставляем:
PHP Code:
<if condition="$post['field9']">
<
a href="http://vkontakte.ru/$post[field9]target="_balnk">
<
img src="/images/misc/vkontakte.gif" border="0" alt="$post[field9]">
</
a>
</if> 
не забываем создать дополнительное поле (текстовое) и просить писать туда только id12345. поменять field9 на соответствующий id поля у вас и залить картинку "Вконтакте", в примере /images/misc/vkontakte.gif


_________________________________________

у меня в свою очередь другой вопрос знатокам,
как показать в postbit_legacy дополнительное поле с выбором нескольких вариантов ответа? в профиле они отображаются номально (Перавй, второй, третий) а при использовании в postbit_legacy $post[fieldXX] пояаляется просто цифра, рс основе которой, как я понимаю определяется, какие поля выбраны, но не сами поля
 
Old  
aonfan
Простоузер
Default 0

Quote:
Originally Posted by Doc177 View Post
Тоже все прочитал, но так и не понял
Подскажите, для особо одарено тупых, как можно сделать под аваторкой, где написан адрес, при просмотре темы в сообщение, чтобы выводилось еще одно поле
У меня есть несколько дополнительных полей, в профили и при регистрации они отображаются без проблем
А вот под аваторкой не могу сделать
Тему прочитал, на то что там нашел, какие коды, то так и не чего не получается
Понимаю, что нужно запихнуть field5 куда то, но куда и с каким кодом непонятно и сам не могу найти

В теме таких вопросов много, но ответа нет не на одно сообщения
В первое сообщения не посылайте, я там уже был
Присоединяюсь к вопросу.
 
Old  
KirillDE
Простоузер
Default 0

Quote:
Originally Posted by d0s View Post
Вопрос поднимался, но ответа так вроде и не было:

Использование HTML в доп. поле, как реализовать?

в исходниках html получается
Code:
&lt;i&gt;Текст&lt;/i&gt;
присоединяюсь.
не хочет html из дополнительных полей показывать, вероятно они через функцию, которая html теги заменяет....
 
 

Tags
profile fields, поля профиля

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 03:37 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.