Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение Свои доп.поля в профиле phpbb 2012-10-30

Аватар пользователя

Всем доброго времени суток, хотелось бы сегодня поделиться еще маленькой частью своего опыта в phpbb. Конкретней, излить пару мыслей по поводу дополнительных полей в профиле и методе их украшательства.

Не секрет то, что в phpbb есть возможность добавлять дополнительные поля в профиль, они могут быть разного назначения, очень полезная вещь.

Форма добавления дополнительных полей находится в Админка - Пользователи и группы - Дополнительные поля.
Не забудьте так же включить отображение для них в Админка - Общие - Нагрузка на сервер - Дополнительные поля


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

Вообщем то, единственным минусом стандартного вывода дополнительных полей является их однообразность, они выводятся в одном и том же месте, в мини-профилях, профилях, настройках профиля. Если полей несколько - они идут друг за другом. А что делать если хочется какое либо поле приукрасить или перенести выше(ниже) в профиле, поставить в другое место ???

Оказывается есть решение, притом достаточно простое. Но требующее определенных жертв. Основной жертвой будет вырезание стандартного вывода полей, а полезностью будет размещение полей в любом месте профиля, независимое притом размещение. Готовы к такому шагу ??? Я покажу лишь на одном примере, но этого будет достаточно.

Приглядитесь к моему мини-профилю, в область ника. Что там видите ??? Правильно, под ником отображается мое имя. Как я сделал ??? С помощью дополнительных полей. Вообщем приступаем, вырезаем для начала стандартный вывод полей, открываем шаблон /styles/ваш стиль/template/viewtopic_body.html и вырезаем следущий код.
Для стилей на основе просильвера
      <!-- IF postrow.S_PROFILE_FIELD1 -->
         <!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
         <dd><strong>{postrow.PROFILE_FIELD1_NAME}:</strong> {postrow.PROFILE_FIELD1_VALUE}</dd>
      <!-- ENDIF -->

      <!-- BEGIN custom_fields -->
         <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
      <!-- END custom_fields -->
 

Для стилей на основе сабсильвер2
<!-- IF postrow.S_PROFILE_FIELD1 -->
                  <!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
                  <br /><b>{postrow.PROFILE_FIELD1_NAME}:</b> {postrow.PROFILE_FIELD1_VALUE}
               <!-- ENDIF -->

               <!-- BEGIN custom_fields -->
                  <br /><b>{postrow.custom_fields.PROFILE_FIELD_NAME}:</b> {postrow.custom_fields.PROFILE_FIELD_VALUE}
               <!-- END custom_fields -->
 

После этого идем в шаблон /styles/ваш стиль/template/ucp_profile_profile_info.html и удаляем следущее.
Для стилей на основе просильвер
<!-- BEGIN profile_fields -->
      <dl>
         <dt><label<!-- IF profile_fields.FIELD_ID --> for="{profile_fields.FIELD_ID}"<!-- ENDIF -->>{profile_fields.LANG_NAME}:<!-- IF profile_fields.S_REQUIRED --> *<!-- ENDIF --></label>
         <!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF --></dt>
         <!-- IF profile_fields.ERROR --><dd class="error">{profile_fields.ERROR}</dd><!-- ENDIF -->
         <dd>{profile_fields.FIELD}</dd>
      </dl>
   <!-- END profile_fields -->
 

Для стилей на основе сабсильвер2
<!-- BEGIN profile_fields -->
   <tr>
      <td class="row1" width="35%">
         <b class="genmed">{profile_fields.LANG_NAME}: </b>
         <!-- IF profile_fields.S_REQUIRED --><b>*</b><!-- ENDIF -->
         <!-- IF profile_fields.LANG_EXPLAIN --><br /><span class="gensmall">{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF -->
      </td>
      <td class="row2">{profile_fields.FIELD}<!-- IF profile_fields.ERROR --><br /><span class="gensmall error">{profile_fields.ERROR}</span><!-- ENDIF --></td>
   </tr>
<!-- END profile_fields -->
 

После этого открываем файл includes/functions_profile_fields.php и находим
$template->assign_block_vars('profile_fields', array(
 

Вставляем после найденного
'IDENT'=> $row['field_ident'], 
 

Все, подготовка закончена. Теперь мат.часть :-0=)
Для начала нам надо создать само поле в админке, идем, создаем. Отмечаем флажки - отображать на страницах тем и в центре пользователя
Внимание !!! Имя поля должно быть написано английскими маленькими буквами !!! Иначе ничего не выйдет

Запоминаем имя, в моем случае это было namme. Теперь нам надо добавить код поля на страницу просмотра тем, открываем шаблон viewtopic_body.html и в области между условиями <!-- BEGIN postrow --> и <!-- END postrow --> (код между этими условиями отвечает за отображение одного сообщения) вставляем следущее
<!-- IF postrow.S_PROFILE_NAMME -->
         {postrow.PROFILE_NAMME_VALUE}
      <!-- ENDIF -->
 

В данном коде мы прописали имя нашего поля заглавными буквами
Цитата:
<!-- IF postrow.S_PROFILE_NAMME -->
{postrow.PROFILE_NAMME_VALUE}
<!-- ENDIF -->

Помните, что данный код можно оформить как угодно, допустим написать какой нибудь текст
<!-- IF postrow.S_PROFILE_NAMME -->
         Меня зовут {postrow.PROFILE_NAMME_VALUE}
      <!-- ENDIF -->
 

Или добавить какой нибудь элемент
<!-- IF postrow.S_PROFILE_NAMME -->
         <img src="адрес картинки" alt="" /> {postrow.PROFILE_NAMME_VALUE}
      <!-- ENDIF -->
 

Вот почему я требую от вас минимальных знаний в HTML и добавлять элементы надо строго внутри условия
<!-- IF postrow.S_PROFILE_NAMME -->
         тут код нашего поля
      <!-- ENDIF -->
 

Далее нам надо сделать так, чтобы данное поле могли пользователи настроить в Центре Пользователя, идем в шаблон ucp_profile_profile_info.html и добавляем туда, в более подходящее для вас место
<!-- IF  profile_fields.IDENT eq 'namme' -->
            <!-- IF profile_fields.S_REQUIRED --><b>*</b><!-- ENDIF -->
            <!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF -->
         {profile_fields.FIELD}<!-- IF profile_fields.ERROR --><br /><span>{profile_fields.ERROR}</span><!-- ENDIF --><!-- ENDIF -->
 

В строке
<!-- IF  profile_fields.IDENT eq 'namme' -->
 

идет присвоение идентификатора поля думаю сами заметили.
Этот код можно так же разнообразить HTML и текстовыми вставками, следите чтобы верстка не нарушилась.


Вот таким образом и я сделал себе дополнительное поле для ввода имени, вопросы у вас в любом случае будут, задавайте :bra_vo:


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!

Теги темы
Свои доп.поля в профиле phpbb
          Вернуться наверх  
 


Аватар пользователя

Ну так давайте полный код сюда, погляжу в чем беда


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Файл: - ucp_profile_profile_info

<!-- INCLUDE ucp_header.html -->
<!-- IF  profile_fields.IDENT eq 'namme' -->
            <!-- IF profile_fields.S_REQUIRED --><b>*</b><!-- ENDIF -->
            <!-- IF profile_fields.LANG_EXPLAIN --><br />{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF -->
         {profile_fields.FIELD}<!-- IF profile_fields.ERROR --><br />{profile_fields.ERROR}</span><!-- ENDIF --><!-- ENDIF -->
<table class="tablebg" width="100%" cellspacing="1">
<tr>
   <th colspan="2" valign="middle">{L_TITLE}</th>
</tr>
<!-- IF ERROR -->
   <tr>
      <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
   </tr>
<!-- ENDIF -->
<tr>
   <td class="row1" colspan="2"><span class="gensmall">{L_PROFILE_INFO_NOTICE}</span></td>
</tr>
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_UCP_ICQ}: </b></td>
   <td class="row2"><input class="post" type="text" name="icq" size="30" maxlength="15" value="{ICQ}" /></td>
</tr>
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_UCP_AIM}: </b></td>
   <td class="row2"><input class="post" type="text" name="aim" size="30" maxlength="255" value="{AIM}" /></td>
</tr>
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_UCP_MSNM}: </b></td>
   <td class="row2"><input class="post" type="text" name="msn" size="30" maxlength="255" value="{MSN}" /></td>
</tr>
    <tr>
        <td class="row1" width="35%"><b class="genmed">{L_UCP_SKYPE}: </b><br /><span class="gensmall">{SKYPE_EXPLAIN}</span></td>
        <td class="row2"><input class="post" type="text" name="skype" size="30" maxlength="255" value="{SKYPE}" /><br />
            <span class="gensmall">{L_SKYPE_TYPE}</span>
            <input type="radio" name="skype_type" id="skype_type1" value="1"<!-- IF S_SKYPE_TYPE --> checked="checked"<!-- ENDIF --> /> {L_SKYPE_CALL_TRANS}
            <input type="radio" name="skype_type" id="skype_type0" value="0"<!-- IF not S_SKYPE_TYPE --> checked="checked"<!-- ENDIF --> /> {L_SKYPE_CHAT_TRANS}</td>
    </tr>
   <tr>
   <td class="row1" width="35%"><b class="genmed">{L_UCP_YIM}: </b></td>
   <td class="row2"><input class="post" type="text" name="yim" size="30" maxlength="255" value="{YIM}" /></td>
</tr>
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_UCP_JABBER}: </b></td>
   <td class="row2"><input class="post" type="text" name="jabber" size="30" maxlength="255" value="{JABBER}" /></td>
</tr>
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_WEBSITE}: </b></td>
   <td class="row2"><input class="post" type="text" name="website" size="30" maxlength="255" value="{WEBSITE}" /></td>
</tr>
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_LOCATION}: </b></td>
   <td class="row2"><input class="post" type="text" name="location" size="30" maxlength="100" value="{LOCATION}" /></td>
</tr>
   <!-- INCLUDE ucp_user_flag.html -->
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_OCCUPATION}: </b></td>
   <td class="row2"><textarea class="post" name="occupation" rows="3" cols="30">{OCCUPATION}</textarea></td>
</tr>
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_INTERESTS}: </b></td>
   <td class="row2"><textarea class="post" name="interests" rows="3" cols="30">{INTERESTS}</textarea></td>
</tr>
<!-- IF S_BIRTHDAYS_ENABLED -->
   <tr>
      <td class="row1" width="35%"><b class="genmed">{L_BIRTHDAY}: </b><br /><span class="gensmall">{L_BIRTHDAY_EXPLAIN}</span></td>
      <td class="row2"><span class="genmed">{L_DAY}:</span> <select name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> <span class="genmed">{L_MONTH}:</span> <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> <span class="genmed">{L_YEAR}:</span> <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></td>
   </tr>
<!-- ENDIF -->

<tr>
   <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
</tr>
</table>

 


_________________
Подпись:
Как узнать, что ты на верном пути? Проще простого: если рядом с тобой не осталось никого, значит, ты действительно близок к сути. © Эмиль Мишель Чо́ран
          Вернуться наверх  
 


Аватар пользователя

Привет.
Вроде сделал все правки, но поле не показывается ни в темах ни в профиле.
Я заметил, что изначально дополнительные поля не показывались в темах, хоть я и ставил галочку, в профиле же все нормально.
Может у меня ошибка глубже, раз доп поля не показываются изначально в темах?


_________________
Подпись:
В любой непонятной ситуации – ложись спать!
          Вернуться наверх  
 


Аватар пользователя

В настройках нагрузки сервера в админке разрешен показ дополнительных полей ?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

А-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а, больше ничего не могу про себя сказать.
Сто пендалей мне, Сергею - черный пояс.


_________________
Подпись:
В любой непонятной ситуации – ложись спать!
          Вернуться наверх  
 


Аватар пользователя

Хах)) Ну теперь будешь знать)


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Проблема решена, удалите сообщение.


          Вернуться наверх  
 


Аватар пользователя

Все сделал как написано, при регистрации поле видно, в профиле тоже. В личном разделе нет.

Сообщение добавлено... спустя 1 час 11 минут 43 секунды:
Есть решение, что бы ни чего не вырезать, а просто добавить в профиль имя?


          Вернуться наверх  
 


Аватар пользователя

Пфф, создайте обыкновенное дополнительное поле через админку)))


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Спасибо, а как сделать, что бы имя было ниже ника?


          Вернуться наверх  
 


Аватар пользователя

А никак, в том то и дело, нужно разьединить вывод полей - осваивайте данную статью))


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

Сергей, добрый день. Не подскажешь, можно ли при создании дополнительных полей в профиле через админку использовать BBCodes? Задумка такая: Создал доп поле в профиле, на страничку Вконтакте. В профиле пользователя и под его ником при просмотре самого форума ссылка видна и работает, хотелось бы что бы вместо текстовой ссылки там отображалась либо графическая кнопочка, либо последняя часть ссылки с ником пользователя Вконтакте (то есть не http://vk.com/polzovatel а просто polzovatel) Можно это организовать через админку и BBcodes или нужно шаблоны править?


          Вернуться наверх  
 


Аватар пользователя

Только через шаблоны, нет такой возможности в админке


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

А при создании этих доп полей в шаблонах появляется запись о их выводе, которую уже можно править, или нужно самому всё прописывать будет?


          Вернуться наверх  
 


Аватар пользователя

Если по данной статье делать, то конечно))

Сообщение добавлено... спустя 2 минуты 11 секунд:
Хотя вопрос некорректный, если по статье, то прописывать и оформлять вручную надо будет, тут минимальные познания html будут нужны


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

Нет, я имел в виду немного другое. При создании дополнительных полей в админке, код их вывода автоматически прописывается в шаблонах? То есть при создании через админку дополнительного поля и присвоения ему значения "показывать в профиле и на странице тем", то появится ли в шаблоне код, который можно будет редактировать? То есть вопрос то собственно в том, где найти ту часть кода в шаблонах, которая отвечает за вывод дополнительных полей в профиле, редактируя которую, можно ссылку сделать картинкой? Я надеюсь моих знаний html хватит для этого. Просто я никак не пойму за счёт чего показываются дополнительные поля. Перелопатил все шаблоны, вижу, где выводятся все эти isq, jabber'ы а переменной vkont, которую я присвоил дополнительному полю, в упор не вижу.


          Вернуться наверх  
 


Аватар пользователя

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


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

Как же так? Насколько я понимаю, при создании дополнительного поля, допустим с именем vkont, в БД создаётся запись, которая будет содержать ссылку на страницу Вконтакте, для всех пользователей, которые не поленились её прописать.
Почему нельзя будет сделать например так:
<a href="{VKONT}">
<img src=...>
</a>
 


          Вернуться наверх  
 


Аватар пользователя

Пфф, как же вам популярно обьяснить то? Единственный код, выводящий допполя, созданные через админку, выглядит так
<!-- IF postrow.S_PROFILE_FIELD1 -->
         <!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
         <dd><strong>{postrow.PROFILE_FIELD1_NAME}:</strong> {postrow.PROFILE_FIELD1_VALUE}</dd>
      <!-- ENDIF -->

      <!-- BEGIN custom_fields -->
         <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
      <!-- END custom_fields -->
 

и если его отредактировать, то эти правки применятся ко всем допполям, а не только к тому которое нужно, потому и писал я данную статью. То что вы предлагаете вы пробовали делать то?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

Нет, не делал. Я и спрашиваю потому, что не знаю как это сделать. Так что, получается нет возможности редактировать дополнительные поля, созданные через админку? Нужно через шаблоны добавлять новое поле?


          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя Новые поля в профиле
Новые поля в профиле, которые просили некоторые пользователи-администраторы своих ресурсов

DeaDRoMeO

15

1327

Аватар пользователя

09 ноя 2012, 21:58

DeaDRoMeO

Аватар пользователя Восстановление дополнительного поля в профиле

fialkina

6

455

Аватар пользователя

17 дек 2012, 12:57

akella1900

Аватар пользователя Запрет на самостоятельное заполнение поля "Сайт" в профиле

ursego

8

466

Аватар пользователя

26 окт 2014, 09:52

Tatyana_S

Аватар пользователя Свои страницы ошибок (400, 401, 403, 404, 500) для phpbb3
Анонсирую мини-мод для создания страниц ошибок сервера в стиле форума

DeaDRoMeO

28

4555

Аватар пользователя

20 май 2016, 05:18

DeaDRoMeO

Аватар пользователя Создаем свои страницы в стиле форума phpbb3
Статейка о создании страниц в стиле вашего форума

DeaDRoMeO

27

3286

Аватар пользователя

09 дек 2015, 05:28

DeaDRoMeO

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


cron

Самая неформальная поддержка phpBB :P