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


----

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

 Сообщение Свои доп.поля в профиле 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, по ЛС не отвечаю !!!
          Вернуться наверх  
 


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

Не могу совладать с доп полем namme 8(
Сделал все по инструкции - но поле видно только в мини профиле под аватаркой и его заполнить получается только при редактировании профиля в админке.
Посмотрите пожалуйста мой ucp_profile_profile_info:
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку


Поле я добавлял перед ICQ но вот с выводом что то напутал


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


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

А разве у Вас нету мода -



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


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

amor1977 писал(а):

А разве у Вас нету мода -


Есть, там же я и делал доп поле NAMME, а в личном разделе - профиль - не показывается поле


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


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

А здесь настроки смотрели ?


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


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

amor1977, да, первые 4 галочки стоят


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


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

Добавил доп. поле "Пол"
Надпись убрал, а значек перенес к нику.
Так же, стоит рамка для аватар с увеличением при наведеии мышки. Рамка на CSS
И этот стиль (рамки) применился к значку, т.е. он тоже в рамке и увеличивается при наведении.
На сколько я понимаю, все дело в том, что весь этот код стоит в теге <dt>, а как можно подправить, что б это не применялось к коду пола?
Сам кусок кода такой (пол/ник/аватар)
<dt>                        
<br>
<img title="Мужской" alt="Мужской" src="http://support.iboards.ru/images/ranks/support_iboards_ru/icon_gender_m.gif">

                           <strong class="topic_username"><a class="username-coloured" style="color: #FF9900;" href="./memberlist.php?mode=viewprofile&amp;u=65">bublik</a></strong>            
                                                        <br>
                        <p></p><p></p><p>
                           <a href="./memberlist.php?mode=viewprofile&amp;u=65"><img width="128" height="140" alt="Аватар пользователя" src="./download/file.php?avatar=65_1389947279.jpg"></a><br>
                        
                     </p></dt>
 


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


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

Не мучайтесь, а поставьте мод Genders


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


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

DeaDRoMeO писал(а):

поставьте мод Genders

Что то мод навороченный, а что делает кроме выбора пола и добавления значков я не понял.
Так то и доп. поле с этим справляется, только код подправить немного.


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


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

Прописываю поле с реальным именем namme в ucp_profile_profile_info.html своего стиля
<dl>
      <dt><label<!-- IF  profile_fields.IDENT eq 'namme' -->>:<!-- IF profile_fields.S_REQUIRED --><b>*</b><!-- ENDIF --></label>
      <!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF --></dt>
         <dd>{profile_fields.FIELD}<!-- IF profile_fields.ERROR --><br /><span>{profile_fields.ERROR}</span><!-- ENDIF --><!-- ENDIF --></dd>
</dl>
 


но оно почему то не появляется там


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


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

Вот где ещё посмотрите настройки


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


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

amor1977, тут все на "Да" - я уверен что в коде проблемы, но не могу найти как правильно "вписать"


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


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

В общем не разобрался как его вписать - вернул старую форму... подучусь верстке и снова попробую)


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


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

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

пы.сы. а как сделать прокрутку для просмотра смайлов рядом с полем для сообщения, как у вас?)


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


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

прокрутка


_________________
Подпись:
три головы - это хорошо. но как же трудно придти к согласию...
* белк может помочь, но ставить за кого-то моды не будет... ни платно, ни бесплатно. *
          Вернуться наверх  
 


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

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

Сообщение добавлено... спустя 2 минуты 56 секунд:
В настройках поля пункт Скрытое поле, там галочки нет?


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


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

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

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

белк писал(а):

прокрутка

спасибо :son-ce:


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


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

Пересоздайте и скриншот настроек поля скиньте если будут проблемы


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


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

Всем доброго времени суток.
В профиле пользователя появилось-таки название поля, что говорит о том, что часть указаний выполнена верно, однако, оно не имеет у меня никаких обозначений – так сказать, всего лишь голая декларация))
Впрочем, иначе, и быть не может, ибо в центре пользователя нет возможности заполнить вообще, что-либо похожее на дополнительное поле.
Судя по инструкции, за появление этого поля должен отвечать код:
<!-- 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 -->

Но данный код абсолютно не вписывается в стройный перечень таблиц данной формы, в файле - ucp_profile_profile_info.html
Пришлось придумать, нечто вроде нижеследующего кода:
<tr>
<td class="row1" width="35%"><b class="genmed">{L_NAMME}: </b></td>
<td class="row2"><textarea class="post" name="namme" rows="3" cols="30">{NAMME}</textarea></td>
</tr>
Тут же в центре пользователя появилось и дополнительное поле, но оно не работает, ибо если внести в него запись, она не принимается формой при отправлении. Тут же пишет, что данная таблица не заполнена.
Отсюда следует вывод, что присутствие в файле - 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 -->

Его можно и убрать и поставить, но форма с заполненным дополнительным полем не отправится ни при каких обстоятельствах, ибо сам код, либо не на своем месте, либо неполон, либо представлен с грубейшими ошибками.
Склонен предположить, что данный код отвечает за суть вопроса, но для того, чтобы понять, где и в какой форме его необходимо разместить, у меня уйдет непозволительно много времени.
Нечто похожее на этот код, я нашел в файле - acp_users_profile.html
Пробовал совместить код с кодом этого файла, где кстати, эти два кода весьма схожи.
Ничего не вышло((
Шаг отчаяния:
В файле acp_users_profile.html
Создал такой код:

<dl>
<dt><label for="namme">{NAMME}:</label></dt>
<dd><textarea id="namme" name="namme" rows="3" cols="30">{NAMME}</textarea></dd>
</dl>
Я полагаю, что тут есть необходимость подобной самодеятельности, ибо я тут нашел, перечень таблиц всех полей соответствующих форме в центре пользователя.
Однако, и это не помогло и проблема по прежнему в том, что заполнить и отправить доп. поле не удается((
Был бы весьма признателен, за помощь в данном вопросе.


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


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

А с регистром букв все нормально? В админке и в коде регистр букв идентификатора совпадает?


_________________
Подпись:
-_- -_-
На вопросы, связанные с 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