Свои доп.поля в профиле phpbb

В данном подфоруме будут располагаться все статьи, помогающие освоиться в администрировании форума.

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Правила форума
----
Ответить
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

Всем доброго времени суток, хотелось бы сегодня поделиться еще маленькой частью своего опыта в 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 -->
В данном коде мы прописали имя нашего поля заглавными буквами
[quote]<!-- IF postrow.S_PROFILE_NAMME -->
{postrow.PROFILE_NAMME_VALUE}
<!-- ENDIF -->[/quote]
Помните, что данный код можно оформить как угодно, допустим написать какой нибудь текст
[code]<!-- IF postrow.S_PROFILE_NAMME -->
Меня зовут {postrow.PROFILE_NAMME_VALUE}
<!-- ENDIF -->
[/code]
Или добавить какой нибудь элемент
[code]<!-- IF postrow.S_PROFILE_NAMME -->
<img src="адрес картинки" alt="" /> {postrow.PROFILE_NAMME_VALUE}
<!-- ENDIF -->
[/code]
Вот почему я требую от вас минимальных знаний в HTML и добавлять элементы надо строго внутри условия
[code]<!-- IF postrow.S_PROFILE_NAMME -->
тут код нашего поля
<!-- ENDIF -->
[/code]
Далее нам надо сделать так, чтобы данное поле могли пользователи настроить в Центре Пользователя, идем в шаблон 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 -->
В строке
[code]<!-- IF profile_fields.IDENT eq 'namme' -->[/code]
идет присвоение идентификатора поля думаю сами заметили.
Этот код можно так же разнообразить HTML и текстовыми вставками, следите чтобы верстка не нарушилась.
Вот таким образом и я сделал себе дополнительное поле для ввода имени, вопросы у вас в любом случае будут, задавайте :bra_vo:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#1
Аватара пользователя
St_roy
Завсегдатай Форума
Завсегдатай Форума
Сообщения: 873
Стаж: 9 лет 4 месяца
Откуда: Москва
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение St_roy »

И эта тема в закладки не добавляется
Зри в корень
#2
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

Да ЧОРД блин, логи чистые(( Наверное надо закладки отрубать к чертям
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#3
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

Андрюх, через оперу сидишь ??? Выкинь ее тогда нах, у меня в опере не помещается в закладки, а через Хром - помещается, уффф какая же опера гавняшка стала(((
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#4
Аватара пользователя
St_roy
Завсегдатай Форума
Завсегдатай Форума
Сообщения: 873
Стаж: 9 лет 4 месяца
Откуда: Москва
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение St_roy »

Нет, через Хром))
Зри в корень
#5
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

Значит просто лаг, у меня наоборот ситуация))
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#6
Аватара пользователя
dqdmitry
Самый Любознательный
Самый Любознательный
Сообщения: 377
Стаж: 8 лет 6 месяцев
Откуда: Ангарск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение dqdmitry »

Сергей, привет.
Подскажи, возможно-ли через доп. поля в профиле сделать кнопку Skype? И как это сделать грамотно.
Есть вот такой мод, но я прочитал где-то на твоем форуме, что он грузит страницу, проверяя постоянно статус присутствия.
Это нам не нужно. Достаточно просто доп. надпись, или иконка в профиле, нажав на которую можно увидеть (самое простое) ник пользователя в скайпе, или (наверное сложное) форму, с помощью которой можно сразу выполнить запрос пользователю для добавления в контакты скайпа. Статус присутствия не нужен. А может посоветуешь какое нибудь другое решение.
Спасибо.
Сергей, в ЛС писал тебе о проблеме в моде медалей (не было возможности номинировать). Вроде нашли причину, проверяя файл за файлом мода. Оказалось, что в styles/prosilver/template/viewtopic_body.html изчез вот этот кусок:

Код: Выделить всё

		<!-- BEGIN medal -->
		<!-- IF postrow.medal.S_HAS_MEDALS or postrow.medal.S_HAS_NOMINATIONS --><dd><strong>{L_MEDALS}:</strong> {postrow.medal.MEDALS_COUNT}{postrow.medal.MEDALS_NOMINATED}</dd><!-- ENDIF -->
			<!-- BEGIN medal_row -->
			<dd>
				<!-- BEGIN medal_col -->
					<img src="{postrow.medal.medal_row.medal_col.MEDAL_IMAGE}" border="0" alt="{postrow.medal.medal_row.medal_col.MEDAL_NAME} {postrow.medal.medal_row.medal_col.MEDAL_COUNT}" title="{postrow.medal.medal_row.medal_col.MEDAL_NAME} {postrow.medal.medal_row.medal_col.MEDAL_COUNT}" {postrow.medal.medal_row.medal_col.MEDAL_WIDTH} {postrow.medal.medal_row.medal_col.MEDAL_HEIGHT} />
				<!-- END medal_col -->
			</dd>
			<!-- END medal_row -->
		<!-- END medal --> 
После каких наших манипуляций он исчез, возможно только одному автомоду известно :-0=), но сейчас вроде все работает. Осталась проблема со стилями, но по ней если что, свяжемся. Еще раз спасибо тебе за кучу полезной инфы :co_ol:
нуевонафигэтотавтомод
#7
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

dqdmitry, ставьте мод скайпа, но пропустите некоторые правки для viewtopic.php и viewtopic_body.html, лично я усебя их вырезал, оставив весь функционал только в просмотре профиля))
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#8
Аватара пользователя
dqdmitry
Самый Любознательный
Самый Любознательный
Сообщения: 377
Стаж: 8 лет 6 месяцев
Откуда: Ангарск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение dqdmitry »

DeaDRoMeO писал(а):dqdmitry, ставьте мод скайпа, но пропустите некоторые правки для viewtopic.php и viewtopic_body.html, лично я усебя их вырезал, оставив весь функционал только в просмотре профиля))
Сергей, уточни пожалуйста. Во viewtopic.php и viewtopic_body.html, изменения вообще не делать, или делать только некоторые (какие?)?.
Ссори, если вопрос глупый.
нуевонафигэтотавтомод
#9
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

Дайй ссылку на скачку мода, а то посеял ее))
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#10
Аватара пользователя
dqdmitry
Самый Любознательный
Самый Любознательный
Сообщения: 377
Стаж: 8 лет 6 месяцев
Откуда: Ангарск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение dqdmitry »

DeaDRoMeO писал(а):Дайй ссылку на скачку мода, а то посеял ее))
Пришлось отлучиться немного... Вот ссылка, Сергей.
нуевонафигэтотавтомод
#11
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

Вообщем пропускаем правки для styles/prosilver/template/overall_header.html, styles/prosilver/template/viewtopic_body.html и viewtopic.php, не нужен он в мини-профиле, все опции будут только при просмотре полного профиля пользователя
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#12
Аватара пользователя
dqdmitry
Самый Любознательный
Самый Любознательный
Сообщения: 377
Стаж: 8 лет 6 месяцев
Откуда: Ангарск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение dqdmitry »

DeaDRoMeO писал(а):...не нужен он в мини-профиле, все опции будут только при просмотре полного профиля
Сергей, спасибо, буду пробовать сегодня.
А все-же, чтобы в мини профиле был значок скайпа, но при этом он не проверял статус присутствия, в этом случае что оставить?
Или так не получится?
нуевонафигэтотавтомод
#13
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

К сожалению так не получится, там не разделить вставляемый код
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#14
girl
Заглянул на огонек
Заглянул на огонек
Сообщения: 11
Стаж: 8 лет 7 месяцев

Свои доп.поля в профиле phpbb

Сообщение girl »

если не ошибаюсь, то инфу о доп.полях нельзя в phpbb вывести в общий список пользователей. на phpbbex решение разработчик нашел,за что ему спс. думаю что применимо и к phpbb будет
#15
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

girl писал(а):то инфу о доп.полях нельзя в phpbb вывести в общий список пользователей
Так то нет, если поковырять код - то вроде не сложно сделать
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#16
Аватара пользователя
Beksssss
Завсегдатай Форума
Завсегдатай Форума
Сообщения: 789
Стаж: 8 лет 10 месяцев
Откуда: Грозный
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение Beksssss »

SENSEY - DeaDRoMeO !
Поле...Свежее поОоле...!
Светит луна...но найти не могу...
Правки все сделал...Кеши очистил...
Но увы, не нашел... не нашел, ни Гу...Гу...))
С безграничным уважением :uch_tiv:
Пароль от входа в админку форума ни святому, и ни самому черту не даю! Надеюсь на благоразумие своих доброжелателей!
#17
Аватара пользователя
Beksssss
Завсегдатай Форума
Завсегдатай Форума
Сообщения: 789
Стаж: 8 лет 10 месяцев
Откуда: Грозный
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение Beksssss »

<!-- 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 -->
---------------------------------------------------------------------------------------
SENSEY - DeaDRoMeO !
Извиняюсь за не красиво поданный материал, но BB-коды в редакторе этой именно темы - отказали.
------------------------------------------------------------------------------
Итак, этот код, куда бы я его не вставил в файле - ucp_profile_profile_info.html
Не желает работать.
Я заметил, что работая с правками этого файла в редакторе Дримвьювера - этот код -становится мертвым. Т.е. если все строки кода в этом файле живенько смотрятся отливая и синим и красным цветом, то этот код полностью черно-белый - угасший какой-то. Такое обычно бывает, когда код не валидный.
С безграничным уважением :uch_tiv:
Последний раз редактировалось Beksssss 26 фев 2013, 07:48, всего редактировалось 2 раза.
Пароль от входа в админку форума ни святому, и ни самому черту не даю! Надеюсь на благоразумие своих доброжелателей!
#18
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16748
Стаж: 10 лет 2 месяца
Откуда: Витебск
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение DeaDRoMeO »

Beksssss писал(а):Я заметил, что работая с правками этого файла в редакторе Дримвьювера
Так редактируйте в нотепаде++, дрим бывает жует теги или автоматом закрывает в не нужных местах
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#19
Аватара пользователя
Beksssss
Завсегдатай Форума
Завсегдатай Форума
Сообщения: 789
Стаж: 8 лет 10 месяцев
Откуда: Грозный
Контактная информация:

Свои доп.поля в профиле phpbb

Сообщение Beksssss »

DeaDRoMeO писал(а):Так редактируйте в нотепаде , дрим бывает жует теги или автоматом закрывает в не нужных местах

SENSEY - DeaDRoMeO !
Такое ощущение, что здесь явная ошибка!
Этот код очень не органично вписывается в код страницы.
Редактировал и в нотепаде - не помогло!
Пробовал код станицы отредактированной в нотепаде посмотреть через дримвивер - но там он тухнет сразу - говоря, о том, что код не валидный.
С безграничным уважением :uch_tiv:
Последний раз редактировалось Beksssss 27 фев 2013, 07:35, всего редактировалось 1 раз.
Пароль от входа в админку форума ни святому, и ни самому черту не даю! Надеюсь на благоразумие своих доброжелателей!
#20
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение