Jump to content

Текстовое поле в постконтейнере

Featured Replies

Posted
comment_173949

Ребят, всем привет!

Такой вопрос, можно ли как-то реализовать, чтобы в новой версии движка с новыми званиями была возможность ещё отдельного звания, или статуса, как угодно можно назвать, который будет отображаться текстом под ником в постконтейнере? Может как-то совместить старые и новые звания, но по сути не нужно, чтобы что-то выводилось по умолчанию, просто чтобы было текстовое поле, которое могут редактировать админы? Думал как-то реализовать при помощи доп полей, но разве можно как-то отдельно, в нужном месте вывести доп поле? Они вроде привязаны к блоку вывода доп полей, где все и выводятся.

comment_173954
13 часов назад, the.bunin сказал:

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

Перебрать $comment->author->contentProfileFields(), найти свое поле, вывести в любом месте.

{{foreach $comment->author()->contentProfileFields() as $group => $fields}}
  {{if $group == 'core_pfieldgroups_1'}} ----- нужная группа
    {{foreach $fields as $field => $value}}
      {{if $field=='core_pfield_2'}}  ----- нужное поле
        <p class='ipsResponsive_hidePhone ipsType_break'>
          {$v = explode(": ", strip_tags($value))}
          {$v[1]}
        </p>
      {{endif}}
    {{endforeach}}
  {{endif}}
{{endforeach}}

Или шаблон создать и передавать туда $author и нужные поля. 

comment_173955

Или так как вариант:

{{if $comment->author()->member_id}}
	{{$ProfileFields = $comment->author()->contentProfileFields();}}
	{$ProfileFields['core_pfieldgroups_GID']['core_pfield_PID']}
{{endif}}

GID - id группы доп. полей
PID - id доп. поля профиля
Чтобы убрать заголовок можно использовать пользовательское форматирование введя только {$content}

comment_173956

Блин, заработался, можно же проще

{{$a = explode(": ", strip_tags( $comment->author()->contentProfileFields()['core_pfieldgroups_1']['core_pfield_2']));}}      
{$a[1]}

 

2 минуты назад, ZIKURIK сказал:

Чтобы убрать заголовок можно использовать пользовательское форматирование введя только {$content}

Тогда еще проще:)

{{$a = $comment->author()->contentProfileFields()['core_pfieldgroups_1']['core_pfield_2'];}}
{$a}

 

  • Author
comment_173959
19 минут назад, Desti сказал:

Тогда еще проще:)

{{$a = $comment->author()->contentProfileFields()['core_pfieldgroups_1']['core_pfield_2'];}}
{$a}

Как раз в этом варианте заголовок вывелся, а в первом без него :) 

Desti ZIKURIK ребят, супер, спасибо огромное) Только возник вопрос, а как сделать, чтобы отображалось только в том месте, где я вывожу? Потому что получается дублируется ещё в общем блоке доп полей. А если в настройках доп поля указываю, чтобы не отображать с контентом, то везде пропадает, логично)

comment_173960
5 минут назад, the.bunin сказал:

Потому что получается дублируется ещё в общем блоке доп полей.

Можно покурочить шаблон customFieldsDisplay, добавить условия типа {{if $group != 'core_pfieldgroups_1'}} и {{if $field == 'core_pfield_2'}} в циклы

 

Это, конечно, костылики, но Custom поля применяются во вполне конкретных местах и красиво их не сделать. Можно добавить свою функцию myContentProfileField() в \IPS\Member и получать одно конкретное поле прямо из базы, но это уже плюгин и хак. 

comment_173962
21 минуту назад, the.bunin сказал:

Только возник вопрос, а как сделать, чтобы отображалось только в том месте, где я вывожу? Потому что получается дублируется ещё в общем блоке доп полей. А если в настройках доп поля указываю, чтобы не отображать с контентом, то везде пропадает, логично)

выключи в настройках поля отображение в темах и в профиле.
и в постконтейнер в нужное место:
field_7 = айди поля. в таблице core_pfields_content.

		{{$status = \IPS\Db::i()->select( 'field_7', 'core_pfields_content', array( 'member_id=?', $comment->author()->member_id ) )->first();}}
			{{if $status != NULL}}
				<li class='ipsList_reset'>{$status}</li>
			{{endif}}

как итог:

Спойлер

321.PNG.6f05a035efdb796b21eb3206ad9257a3.PNG

321321.PNG.add2057789594db71068f295a825d526.PNG

 

 

comment_173965

Какие вы крутые, ребята! 

comment_173968
3 минуты назад, by_ix сказал:

а кто-то говорил, что нужно без них? 

Официальная позиция инвижынов - "если есть возможность, постарайтесь обходиться без них". 

  • Author
comment_173970
20 минут назад, by_ix сказал:

выключи в настройках поля отображение в темах и в профиле.
и в постконтейнер в нужное место:
field_7 = айди поля. в таблице core_pfields_content.

		{{$status = \IPS\Db::i()->select( 'field_7', 'core_pfields_content', array( 'member_id=?', $comment->author()->member_id ) )->first();}}
			{{if $status != NULL}}
				<li class='ipsList_reset'>{$status}</li>
			{{endif}}

как итог:

  Показать контент

321.PNG.6f05a035efdb796b21eb3206ad9257a3.PNG

321321.PNG.add2057789594db71068f295a825d526.PNG

 

Вообще ТОП 🔥 спасибо, встало как надо)

  • Author
comment_173974

Ребят, вопрос, а почему не применяется в постконтейнере форматирование к полю? То есть, если выставляю тип поля "Код" или даже "Редактор", делаю наклонные текст или жирный, то выводится с содержимым. Как исправить?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.