Дополнительные поля профиля в виде картинок

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Дополнительные поля профиля в виде картинок

Сообщение Slava9 »

Добрый день!
Возникла такая идея. Помогите, пожалуйста, реализовать...
У моих пользователей в профиле есть дополнительные поля Дети.
Я хочу, чтобы под аватарой была картинка с ребенком (мальчиком или девочкой), при наведении или нажатии на нее выводилось имя и возраст малыша.
Думала реализовать через награды, но там при наведении на картинку ребеночка просто пишет Есть дочка или Есть сын...
Помогите, пожалуйста
Последний раз редактировалось Nekstati 16.08.2010 17:31, всего редактировалось 1 раз.
Причина: изменён заголовок
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Re: дополнительное поле+переход на него с картинки

Сообщение Slava9 »

Если у кого-нибудь появятся идеи на этот счет, я все еще не отчаиваюсь это реализовать...
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: дополнительное поле+переход на него с картинки

Сообщение Nekstati »

Что-то я на вашем форуме такого дополнительного поля не вижу. Но предположим, что поле выглядит так: Дети: Маша, 6 месяцев.

Открываем styles/prosilver/template/viewtopic_body.html, ищем:

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

		<!-- BEGIN custom_fields -->
			<dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
		<!-- END custom_fields -->
Заменяем на:

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

		<!-- BEGIN custom_fields -->
			<!-- IF custom_fields.S_LAST_ROW -->
				<dd><img src="{T_IMAGESET_PATH}/baby.gif" alt="" title="{postrow.custom_fields.PROFILE_FIELD_VALUE}" /></dd>
			<!-- ELSE -->
				<dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
			<!-- ENDIF -->
		<!-- END custom_fields -->
Картинку baby.gif кладём в папку styles/prosilver/imageset. Дополнительное поле «Дети» должно быть самым последним (нижним) из дополнительных полей, если их несколько. Получаем картинку с всплывающей подсказкой «Маша, 6 месяцев».
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Re: дополнительное поле+переход на него с картинки

Сообщение Slava9 »

есть у меня такие поля :shock: в личном профиле пользователей...
спасибо большое за подсказку! сейчас попробую. я же могу созадать картинку для каждого дополнительного поля или только для одного? на случай, если детей 2? или чтобы для мальчиков -выбрать картинку мальчики, а для девочек - девочки?
просто у меня несколько дополнительных полей: 1-й ребенок, 2-й ребенок... Или как это лучше организовать?
Пока эти данные отражаются только в личном профиле пользователей, потому как хочется вывести эти данные картинками-детками
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: дополнительное поле+переход на него с картинки

Сообщение Nekstati »

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

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

      <!-- BEGIN custom_fields -->

         <!-- IF custom_fields.S_ROW_COUNT == 0 -->
            <dd><img src="{T_IMAGESET_PATH}/baby0.gif" alt="" title="{postrow.custom_fields.PROFILE_FIELD_VALUE}" /></dd>
         <!-- ELSEIF custom_fields.S_ROW_COUNT == 1 -->
            <dd><img src="{T_IMAGESET_PATH}/baby1.gif" alt="" title="{postrow.custom_fields.PROFILE_FIELD_VALUE}" /></dd>
         <!-- ELSEIF custom_fields.S_ROW_COUNT == 2 -->
            <dd><img src="{T_IMAGESET_PATH}/baby2.gif" alt="" title="{postrow.custom_fields.PROFILE_FIELD_VALUE}" /></dd>

         <!-- ELSE -->
            <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
         <!-- ENDIF -->
      <!-- END custom_fields -->
Здесь счёт полей начинается с нуля, то есть 0 — первое поле, 1 — второе поле, 2 — третье поле. Картинки, соответственно, baby0.gif, baby1.gif, baby2.gif.

На мальчиков и девочек разделить будет сложнее…

Добавлено спустя 7 минут 41 секунду:
P.S. Одна и та же картинка для всех полей:

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

		<dd>
          <!-- BEGIN custom_fields -->
                <img src="{T_IMAGESET_PATH}/baby.gif" alt="" title="{postrow.custom_fields.PROFILE_FIELD_VALUE}" />&nbsp;
          <!-- END custom_fields -->
		</dd>
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Re: дополнительное поле+переход на него с картинки

Сообщение Slava9 »

Спасибо Вам за помощь!
Но загвоздка как раз в том, чтобы, к примеру, на 2-м ребенке мальчике, во втором дополнительном поле, не отображалась картинка с девочкой baby2.gif...
Может быть возможно сделать так, чтобы пользователи сами выбирали подходящую картинку под поле? Что-то типа выпадающего списка...
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: дополнительное поле+переход на него с картинки

Сообщение Nekstati »

Итак, делаем разные картинки для мальчиков и девочек. Имя, возраст и т. п. отображаются во всплывающей подсказке при наведении курсора. Выглядит это примерно так (в данном случае заполнены поля для двух детей, мальчика и девочки):
Image 5.png
Открываем файл styles/prosilver/template/viewtopic_body.html, изменяем его кодировку на UTF8 без BOM, ищем строки:

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

          <!-- BEGIN custom_fields -->
             <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
          <!-- END custom_fields -->
Заменяем на:

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

		<dd style="line-height: 0">
			<!-- BEGIN custom_fields -->
				<!-- IF custom_fields.S_ROW_COUNT is even -->
					<!-- IF postrow.custom_fields.PROFILE_FIELD_VALUE == 'Девочка' -->
						<img src="{T_IMAGESET_PATH}/baby_girl.gif" style="margin-top: 5px" alt="" 
					<!-- ELSEIF postrow.custom_fields.PROFILE_FIELD_VALUE == 'Мальчик' -->
						<img src="{T_IMAGESET_PATH}/baby_boy.gif" style="margin-top: 5px" alt="" 
					<!-- ELSE -->
						<img src="" width="0" height="0" alt="" 
					<!-- ENDIF -->
				<!-- ELSE -->
						title="{postrow.custom_fields.PROFILE_FIELD_VALUE}" /> &nbsp;
				<!-- ENDIF -->
			<!-- END custom_fields -->
		</dd>
Картинки baby_girl.gif и baby_boy.gif кладём в папку styles/prosilver/imageset.

Открываем includes/functions_profile_fields.php, ищем и удаляем эти строки (468…471):

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

				if ($value === NULL)
				{
					continue;
				}
Дополнительные поля профиля организуем следующим образом.
  • Первое поле — тип «Раскрывающийся список», название «Первый ребёнок», три значения: «Нет», «Девочка», «Мальчик», значение по умолчанию — «Нет».
  • Второе поле — тип «Однострочное текстовое поле», название «Имя и возраст», значение по умолчанию — пустое.
  • Третье поле — копия первого, только название меняем на «Второй ребёнок».
  • Четвёртое поле — копия второго.
И так далее, создаём поля парами.

В личном разделе это должно выглядеть так:
Image 2.png
Условие: в админке не должно быть создано никаких других дополнительных полей, кроме перечисленных. Иначе придётся усложнять код.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Re: дополнительное поле+переход на него с картинки

Сообщение Slava9 »

Nekstati
это просто обалденно! пойду быстрее опробую, но заранее спасибо Вам огромное за оперативную и внимательную поддержку!!!!

Добавлено спустя 56 минут 36 секунд:
А что будет если я не удалю дополнительные поля другие? у меня там такая хорошая защита стоит от спамеров и ботов, пока еще ни один не прокрался)))))
И знаки гороскопа.


картинка не появляется( просто выводит Первый ребенок: Мальчик
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: дополнительное поле+переход на него с картинки

Сообщение Nekstati »

По-моему, вы не очистили кэш.
Slava9 писал(а):А что будет если я не удалю дополнительные поля другие?
Если они не выводятся на страницах тем, то, думаю, ничего не будет.
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Re: дополнительное поле+переход на него с картинки

Сообщение Slava9 »

Так и есть :D
суперовенько так получилось! вот мои мамочки обрадуются! спасибо Вам большое за помощь!
У Вас на картинке выводится просто имя ребенка и его возраст при наведении, а у меня вот так Заголовок:имя, возраст
Это можно исправить? если нет, то и так хорошо) заметила это только в Опере...
В опере, кстати, при наведении на все ссылки так пишет
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: дополнительное поле+переход на него с картинки

Сообщение Nekstati »

Что-то с вашей Оперой не в порядке. Обновить её, наверное, пора. Смотрю Оперой 10.61 вот здесь: http://forum.uti-puti.com.ua/viewtopic.php?p=6591#p6591, вижу «имя, возраст», как и полагается.
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Re: дополнительное поле+переход на него с картинки

Сообщение Slava9 »

хорошо, обновлю! Еще раз огромное спасибо за помощь!
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: дополнительное поле+переход на него с картинки

Сообщение Nekstati »

Slava9, есть ещё маленький косяк в профиле (memberlist.php?mode=viewprofile&u=XXX): там отображаются не только заполненные поля, но и незаполненные. Откройте styles/prosilver/template/memberlist_view.html, найдите

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

		<!-- BEGIN custom_fields --><dt>{custom_fields.PROFILE_FIELD_NAME}:</dt> <dd>{custom_fields.PROFILE_FIELD_VALUE}</dd><!-- END custom_fields -->
И замените на

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

		<!-- BEGIN custom_fields --><!-- IF custom_fields.PROFILE_FIELD_VALUE --><dt>{custom_fields.PROFILE_FIELD_NAME}:</dt> <dd>{custom_fields.PROFILE_FIELD_VALUE}</dd><!-- ENDIF --><!-- END custom_fields -->
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Re: дополнительное поле+переход на него с картинки

Сообщение Slava9 »

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

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

Не заполнено поле «Второй ребенок».
Не заполнено поле «Имя и возраст второго ребенка».
Не заполнено поле «Третий ребенок».
Не заполнено поле «Имя и возраст третьего ребенка».
и никакие изменения в профиль внести из-за этого нельзя
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: дополнительное поле+переход на него с картинки

Сообщение Nekstati »

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

Вернуться в «Запросы модов для phpBB 3.0.x»