Jump to content

Вторичное групповое форматирование

Featured Replies

Привет,

Позвольте мне попытаться объяснить, что я пытаюсь сделать.

Я в основном следовал руководству по добавлению пользовательских цветов и блесток для членов определенных групп.

Но это относится только к основным группам. Хотелось примерно так:

Если первичная группа - «Администратор», а вторичная - «Донор» -> примените форматирование «Администратор»
Если первичная группа - «Член», а вторичная - «Донор» -> примените форматирование «Донор»

Возможно ли это? Любая помощь будет принята с благодарностью!

Если вы не понимаете, что я имел в виду, дайте мне знать. Я использую Google Translate. 😅

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/
Share on other sites

Конечно. просто будет больше if else
if (первичная группа - «Администратор» и вторичная - «Донор») {
примените форматирование «Администратор»
}elseif (первичная группа - «Член», а вторичная - «Донор» ){
примените
 форматирование «Донор»
}else{
обычное форматирование 
}

тут есть тема, как делать форматирование для группы + логика что я написал = ты успешен 

вот тема 

 

Можно и стилями хитро добиться такого результата 

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169829
Share on other sites
13 hours ago, accop said:

<snip>

Думаю, я понял. Но в этой теме учат менять инфопанель. Я просто хотел бы изменить то, как их имена выглядят на страницах форума, если у них есть определенная первичная и вторичная группа.

Как это:

image.png.1ab060bf4bf84370dd181c888ed8d919.png

Если участник находится в основной группе «Администратор» и дополнительной группе «Донор», примените форматирование «Администратор» по умолчанию. Если участник входит в основную группу «Участник» и дополнительную группу «Донор», примените форматирование «Донор».

Это имело смысл?

Спасибо!

image.png

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169831
Share on other sites

Игнорируйте последний снимок экрана.
Я покопался и подумал, что мне нужно изменить userLink и userLinkFromData. Но я точно не знаю, что в них менять, так как я не программист.

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169832
Share on other sites

Вы всерьёз полагаете, что людям есть дело, какого цвета у кого-то ник?!

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169844
Share on other sites
10 minutes ago, Zero108 said:

Do you seriously believe that people care what color someone's nickname is ?!

Я ищу решение именно потому, что кто-то жаловался, что имена других доноров окрашены, а он нет.

Кроме того, я пытаюсь узнать что-то новое. Я новичок в программировании и подумал, что это будет хорошим началом. Для этого тоже есть плагин, но я не смог найти его в Интернете, чтобы я мог его изучить:

https://invisioncommunity.com/files/file/9833-secondary-group-formatting/

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169848
Share on other sites

Так что мне удалось заставить его работать, отредактировав "userLink". Однако теперь цветные имена отображаются почти везде, что неплохо, но не является обычным явлением.

Я попытался добавить к условию «$ groupFormatting», но это применимо только к определенным группам. Остальные группы по-прежнему везде раскрашиваются.

У тебя есть идеи, что я могу сделать? @accop

Это мой код "userLink":

{{if $anonymous}}
    {lang="post_anonymously_placename"}{{else}}
{{$groupFormatting = ( $groupFormatting === NULL ) ? ( ( \IPS\Settings::i()->group_formatting == 'global' ) ? TRUE : FALSE ) : $groupFormatting;}}
{{if $member->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members', 'front' ) ) }}<a href='{{if $warningRef}}{$member->url()->setQueryString( 'wr', $warningRef )}{{else}}{$member->url()}{{endif}}' data-ipsHover data-ipsHover-width='370' data-ipsHover-target='{$member->url()->setQueryString( array( 'do' => 'hovercard', 'wr' => $warningRef, 'referrer' => urlencode( \IPS\Request::i()->url() ) ) )}' title="{lang="view_user_profile" sprintf="$member->name"}" class="ipsType_break">
 
{{if ($member->member_group_id == 8 && $member->mgroup_others == 12)}}<span class="spkDoador">{$member->name}
{{else}}{$member->group['prefix']|raw}{$member->name}{{endif}}
{{if ($member->member_group_id == 8 && $member->mgroup_others == 12)}}</span>
{{else}}{$member->group['suffix']|raw}{{endif}}</a>
{{else}}{{if ($member->member_group_id == 8 && $member->mgroup_others == 12)}}<span class="spkDoador">{$member->name}
{{else}}{$member->group['prefix']|raw}{$member->name}{{endif}}
{{if ($member->member_group_id == 8 && $member->mgroup_others == 12)}}</span>
{{else}}{$member->group['suffix']|raw}{{endif}}
{{endif}}
{{endif}}

 

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169910
Share on other sites

BlackShot конечно есть идея :)

очень хорошо, что ты разобрался с этим. 

Сейчас напишу тебе простое решение

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169911
Share on other sites

BlackShot Смотри. Это мой код "userLink".

На последней строке я добавил в ссылку класс:

{{if $anonymous}}
	{lang="post_anonymously_placename"}{{else}}
{{$groupFormatting = ( $groupFormatting === NULL ) ? ( ( \IPS\Settings::i()->group_formatting == 'global' ) ? TRUE : FALSE ) : $groupFormatting;}}
{{if $member->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members', 'front' ) ) }}<a class='colorFor{$member->member_group_id}{{$test = implode("", explode(",", $member->mgroup_others));}}{$test}' href='{{if $warningRef}}{$member->url()->setQueryString( 'wr', $warningRef )}{{else}}{$member->url()}{{endif}}' data-ipsHover data-ipsHover-width='370' data-ipsHover-target='{$member->url()->setQueryString( array( 'do' => 'hovercard', 'wr' => $warningRef, 'referrer' => urlencode( \IPS\Request::i()->url() ) ) )}' title="{lang="view_user_profile" sprintf="$member->name"}" class="ipsType_break">{{if $groupFormatting && $member->group['prefix']}}{$member->group['prefix']|raw}{{endif}}{$member->name}{{if $groupFormatting && $member->group['suffix']}}{$member->group['suffix']|raw}{{endif}}</a>{{else}}{{if $groupFormatting && $member->group['prefix']}}{$member->group['prefix']|raw}{{endif}}{$member->name}{{if $groupFormatting && $member->group['suffix']}}{$member->group['suffix']|raw}{{endif}}{{endif}}{{endif}}

Было:

... <a href=' ...

Добавил класс:

... <a class='colorFor{$member->member_group_id}{{$test = implode("", explode(",", $member->mgroup_others));}}{$test}' href=' ...

Получается у тебя есть класс для каждой группы и для связки основной группы и дополнительной

если у пользователя только группа администратор (id 4) будет класс = colorFor4

если есть дополнительная группа, будет colorFor43 или colorFor42

Все последующие  группы будут добавляться цифрами к этому классу colorFor376

Потом просто добавляешь CSS в custom.css

.colorFor376{
color: red!important;
}

и так добавляешь стили для каждой уникальной связке групп

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169912
Share on other sites
34 minutes ago, accop said:

BlackShot Смотри. Это мой код "userLink".

На последней строке я добавил в ссылку класс:


{{if $anonymous}}
	{lang="post_anonymously_placename"}{{else}}
{{$groupFormatting = ( $groupFormatting === NULL ) ? ( ( \IPS\Settings::i()->group_formatting == 'global' ) ? TRUE : FALSE ) : $groupFormatting;}}
{{if $member->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members', 'front' ) ) }}<a class='colorFor{$member->member_group_id}{{$test = implode("", explode(",", $member->mgroup_others));}}{$test}' href='{{if $warningRef}}{$member->url()->setQueryString( 'wr', $warningRef )}{{else}}{$member->url()}{{endif}}' data-ipsHover data-ipsHover-width='370' data-ipsHover-target='{$member->url()->setQueryString( array( 'do' => 'hovercard', 'wr' => $warningRef, 'referrer' => urlencode( \IPS\Request::i()->url() ) ) )}' title="{lang="view_user_profile" sprintf="$member->name"}" class="ipsType_break">{{if $groupFormatting && $member->group['prefix']}}{$member->group['prefix']|raw}{{endif}}{$member->name}{{if $groupFormatting && $member->group['suffix']}}{$member->group['suffix']|raw}{{endif}}</a>{{else}}{{if $groupFormatting && $member->group['prefix']}}{$member->group['prefix']|raw}{{endif}}{$member->name}{{if $groupFormatting && $member->group['suffix']}}{$member->group['suffix']|raw}{{endif}}{{endif}}{{endif}}

Было:


... <a href=' ...

Добавил класс:


... <a class='colorFor{$member->member_group_id}{{$test = implode("", explode(",", $member->mgroup_others));}}{$test}' href=' ...

Получается у тебя есть класс для каждой группы и для связки основной группы и дополнительной

если у пользователя только группа администратор (id 4) будет класс = colorFor4

если есть дополнительная группа, будет colorFor43 или colorFor42

Все последующие  группы будут добавляться цифрами к этому классу colorFor376

Потом просто добавляешь CSS в custom.css


.colorFor376{
color: red!important;
}

и так добавляешь стили для каждой уникальной связке групп

Вау, отличное решение! Не могли бы вы показать мне, каким будет весь код в "userLink" после всех этих изменений?

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169913
Share on other sites

Не берите в голову. Я быстро проверил коды и не заметил, что все было на первой строчке. Я протестирую и дам знать! 😄

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169914
Share on other sites

@accop Мы почти на месте. Итак, в custom.css есть следующее:

.colorFor812 {
  color: #c90076;
  font-size: 102%;
  background: url(https://i.imgur.com/8wxFgdm.gif) repeat;
}

"color", "font-size" и "background" работают нормально. Но цвет ни на что не влияет.

Вы знаете, почему это так? 🤔

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169915
Share on other sites

BlackShot Используй 

!important

Скорее всего другие стили перекрывают твой. Поэтому надо добавлять !important чтобы повысить приоритет стиля

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169921
Share on other sites
8 hours ago, accop said:

BlackShot Используй 


!important

Скорее всего другие стили перекрывают твой. Поэтому надо добавлять !important чтобы повысить приоритет стиля

Именно в этом была проблема! Ты сделал это!!! 🤩

Однако есть одна небольшая проблема. Каждый, кого я добавляю в custom.css, получает свое имя в темах. Остальные пользователи этого не делают, что является нормальным поведением для IPS.

Чтобы решить эту проблему, я добавил в ваш код условие «$ groupFormatting»:

<a class='{{if $groupFormatting}}colorFor{$member->member_group_id}{{$test = implode("", explode(",", $member->mgroup_others));}}{$test}' href='{{if $warningRef}}{$member->url()->setQueryString( 'wr', $warningRef )}{{else}}{$member->url()}{{endif}}{{endif}}'

Так что я предполагаю, что теперь все работает нормально! БОЛЬШОЕ спасибо за вашу доброту и помощь! Я потратил более 5 часов только на то, чтобы вычислить тот последний фрагмент кода, который отправил вам, поскольку я не разработчик и не эксперт. 😅

Еще раз спасибо!!!!! 🥰💛

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169955
Share on other sites

@accop У меня почему-то пропала возможность щелкать названия профилей в темах/topics.

Я попытался добавить в код еще один "href", но это не помогло. Я постараюсь сделать больше редактирования позже, но не уверен, что разберусь.

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169956
Share on other sites

BlackShot Попробуй восстановить userLink по умолчанию и ещё раз внести правки. 

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169957
Share on other sites
1 hour ago, accop said:

BlackShot Попробуй восстановить userLink по умолчанию и ещё раз внести правки. 

Я узнал о проблеме после вашего комментария. Ваш код работает нормально. Я добавил условие «$ groupFormatting» даже для части URL. Вот что его сломало.

Теперь у меня есть:

<a class='{{if $groupFormatting}}colorFor{$member->member_group_id}{{$test = implode("", explode(",", $member->mgroup_others));}}{$test}{{endif}}' href='{{if $warningRef}}{$member->url()->setQueryString( 'wr', $warningRef )}{{else}}{$member->url()}{{endif}}'

Сейчас вроде все работает нормально. Еще раз спасибо! Я бы отреагировал на ваши сообщения, но в моем аккаунте нет такой возможности, лол.

🥰🤩

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=169958
Share on other sites
  • 2 месяца спустя...

@accop, есть некоторые виджеты, такие как whosOnline, которые используют userLinkFromData вместо userLink, поэтому имена пользователей не отображаются в формате (formatted). Вы знаете, как я могу это изменить? Или как изменить userLinkFromData, чтобы отразить наши изменения?

Спасибо!

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=171681
Share on other sites

BlackShot если добавить тот же класс в userLinkFromData, изменений тоже нет?

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=171683
Share on other sites
3 minutes ago, by_ix said:

BlackShot если добавить тот же класс в userLinkFromData, изменений тоже нет?

Я думаю, что переменные немного разные. Если я это сделаю, это испортит чтение данных. Я пробовал это раньше, и это не сработало. То же самое произошло бы, если бы я изменил whosOnline на userLink вместо userLinkFromData в некоторых файлах.

@by_ix eсть ли у вас еще какие-нибудь предложения?

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=171684
Share on other sites
1 час назад, BlackShot сказал:

Я думаю, что переменные немного разные.

сейчас посмотрю.

1 час назад, BlackShot сказал:

переменные немного разные

в том файле указаны только определённые переменные и нет переменной с айди групп, редачить его в пхп не хочу.
поэтому вот:

{{if $anonymous}}
	{lang="post_anonymously_placename"}{{else}}
{{$groupid = \IPS\Db::i()->select( 'member_group_id', 'core_members', array ( 'member_id=?', $id ) )->first();}}
{{$groupids = \IPS\Db::i()->select( 'mgroup_others', 'core_members', array ( 'member_id=?', $id ) )->first();}}
{{if $id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members', 'front' ) ) }}<a class='{{if $groupIdForFormatting}}colorFor{$groupid}{{$secondarygroups = implode("", explode(",", $groupids));}}{$secondarygroups}{{endif}}' href='{url="app=core&module=members&controller=profile&id={$id}" seoTemplate="profile" seoTitle="$seoName ?: \IPS\Http\Url::seoTitle( $name )"}' data-ipsHover data-ipsHover-width="370" data-ipsHover-target='{url="app=core&module=members&controller=profile&id={$id}&do=hovercard" seoTemplate="profile" seoTitle="$seoName ?: \IPS\Http\Url::seoTitle( $name )"}' title="{lang="view_user_profile" sprintf="$name"}" class="ipsType_break">{{if $groupIdForFormatting AND ( $groupFormatting === TRUE OR ( $groupFormatting === NULL AND \IPS\Settings::i()->group_formatting == 'global' ) )}}{expression="\IPS\Member\Group::load( $groupIdForFormatting )->formatName( $name )" raw="true"}{{else}}{$name}{{endif}}</a>{{else}}{{if $groupIdForFormatting AND ( $groupFormatting === TRUE OR ( $groupFormatting === NULL AND \IPS\Settings::i()->group_formatting == 'global' ) )}}{expression="\IPS\Member\Group::load( $groupIdForFormatting )->formatName( $name )" raw="true"}{{else}}{$name}{{endif}}{{endif}}
{{endif}}

возможно, можно вызвать группу без запроса к бд, другим запросом, по типу "\IPS\Member\Group::load()", но я его не знаю.

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=171687
Share on other sites
1 hour ago, by_ix said:

сейчас посмотрю.

в том файле указаны только определённые переменные и нет переменной с айди групп, редачить его в пхп не хочу.
поэтому вот:

{{if $anonymous}}
	{lang="post_anonymously_placename"}{{else}}
{{$groupid = \IPS\Db::i()->select( 'member_group_id', 'core_members', array ( 'member_id=?', $id ) )->first();}}
{{$groupids = \IPS\Db::i()->select( 'mgroup_others', 'core_members', array ( 'member_id=?', $id ) )->first();}}
{{if $id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members', 'front' ) ) }}<a class='{{if $groupIdForFormatting}}colorFor{$groupid}{{$secondarygroups = implode("", explode(",", $groupids));}}{$secondarygroups}{{endif}}' href='{url="app=core&module=members&controller=profile&id={$id}" seoTemplate="profile" seoTitle="$seoName ?: \IPS\Http\Url::seoTitle( $name )"}' data-ipsHover data-ipsHover-width="370" data-ipsHover-target='{url="app=core&module=members&controller=profile&id={$id}&do=hovercard" seoTemplate="profile" seoTitle="$seoName ?: \IPS\Http\Url::seoTitle( $name )"}' title="{lang="view_user_profile" sprintf="$name"}" class="ipsType_break">{{if $groupIdForFormatting AND ( $groupFormatting === TRUE OR ( $groupFormatting === NULL AND \IPS\Settings::i()->group_formatting == 'global' ) )}}{expression="\IPS\Member\Group::load( $groupIdForFormatting )->formatName( $name )" raw="true"}{{else}}{$name}{{endif}}</a>{{else}}{{if $groupIdForFormatting AND ( $groupFormatting === TRUE OR ( $groupFormatting === NULL AND \IPS\Settings::i()->group_formatting == 'global' ) )}}{expression="\IPS\Member\Group::load( $groupIdForFormatting )->formatName( $name )" raw="true"}{{else}}{$name}{{endif}}{{endif}}
{{endif}}

возможно, можно вызвать группу без запроса к бд, другим запросом, по типу "\IPS\Member\Group::load()", но я его не знаю.

Я попытался добавить их в userLink, но это привело к поломке всего макета. 😅

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=171691
Share on other sites

BlackShot потому что нужно заменить всё в userLinkFromData.

Edited by by_ix

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=171692
Share on other sites
7 minutes ago, by_ix said:

BlackShot потому что нужно заменить всё в userLinkFromData.

Ой, как плохо. Я посмотрел на структуру и подумал, что мне нужно изменить userLink, а не userLinkFromData. Я скоро попробую еще раз.

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=171693
Share on other sites

@by_ixТы удивительный! Теперь все работает нормально. Я сравню исходный код с вашим, чтобы увидеть, что мне нужно было сделать, и, надеюсь, немного узнаю. Спасибо!!!

Link to comment
https://ipbmafia.ru/topic/23232-vtorichnoe-gruppovoe-formatirovanie/?&do=findComment&comment=171695
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
Ответить в этой теме...

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

  • No registered users viewing this page.