Jump to content

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


Mano

Recommended Posts

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

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

Link to comment
Share on other sites

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 и нужные поля. 

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

{{$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}

 

Link to comment
Share on other sites

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

 

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

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

 

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Ваша ссылка была автоматически строена.   Отображать как обычную ссылку

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...