Jump to content

Featured Replies

Posted
comment_163289

Привет!

Я хочу что-то сделать, но не очень получается...

У меня есть такой код:

{{if in_array ( \IPS\Member::loggedIn()->member_group_id, array ( 4 ) )  }}
код HTML
{{endif}}

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

Но чтобы задать настройки CSS, мне нужен ключевой код, например:

.theme[data-role='member_group_id'] {
......
.....
....
....
}

Надеюсь, вы понимаете, что я имел в виду.

Спасибо за внимание ...

comment_163290

Пляши отсюда, там уже шаблон есть, добавить классы и цветные кнопки только

https://invisioncommunity.com/news/community-management/theme-tip-use-html-logic-to-display-content-to-specific-groups-r957/

 

  • 3 недели спустя...
  • Author
comment_163509
В 10.08.2020 в 12:56, Maiden8 сказал:

Пляши отсюда, там уже шаблон есть, добавить классы и цветные кнопки только

https://invisioncommunity.com/news/community-management/theme-tip-use-html-logic-to-display-content-to-specific-groups-r957/

 

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

  • Author
comment_163511
3 минуты назад, WaNted сказал:

<a href='#' class='button group_{member.member_group_id}'>Кнопка</a>

.button {
	
}
.button.group_1 {
	
}
.button.group_4 {
	
}

 

Попробую, вернусь с ответом...

  • Author
comment_163519
1 час назад, WaNted сказал:

<a href='#' class='button group_{member.member_group_id}'>Кнопка</a>

.button {
	
}
.button.group_1 {
	
}
.button.group_4 {
	
}

 

Хороший метод
Но
Было бы лучше, если бы могли добавить этот код: group_ {member.member_group_id} в CSS, но не тот, который показывает в HTML. 

Я имею в виду вот так CSS: .button [group_{member="member_group_id"}] {

...............

......

} что-то в этом вроде 

А не так: .button group_1 {

.............

....

}

чуть не забыл, хорошо было бы чтобы ID не определился авто под каждой групой, а прописать самому ID группы

что-то в этом вроде: group_{member="member_group_4"}

  • Author
comment_163524
10 часов назад, ZIKURIK сказал:

.button {
{{if \IPS\Member::loggedIn()->member_group_id === 4}}
	color: white;
{{else}}
	color: red;
{{endif}}
}

 

не работает, или я что-то не так делаю

добавил ID класс к моему коду, вот так:

#logocentervips {
{{if \IPS\Member::loggedIn()->member_group_id === 7}}
	background: #262127;
  {{else}}
  background-image: linear-gradient(#81c30d1c,#26212700,#262127);
{{endif}}
}

когда захожу под пользователя VIP всё также 

comment_163525
1 час назад, murzic сказал:

#logocentervips { {{if \IPS\Member::loggedIn()->member_group_id === 7}} background: #262127; {{else}} background-image: linear-gradient(#81c30d1c,#26212700,#262127); {{endif}} }

проверил, странно работает если сравнение без тождественности, вместо "===" используй "=="

#logocentervips {
{{if \IPS\Member::loggedIn()->member_group_id == 7}}
	background: #262127;
{{else}}
	background-image: linear-gradient(#81c30d1c,#26212700,#262127);
{{endif}}
}

 

comment_163526
1 час назад, ZIKURIK сказал:

странно работает если сравнение без тождественности, вместо "===" используй "=="

Ничего странно, все данные из бд возвращаются в виде string-а, а в коде сравнивается типа integer и конечно они не будут равны. Какой-то новомодный стиль в php пихать направо и налево сравнение по типу. Как я устал от этого уже, приходится спорить часами - если значение не может быть иметь разные типы данных которые приводятся к другому формату при сравнения тогда не имеет смысла использовать сравнение по типу.

2ТС
@WaNtedвам подсказал правильный вариант. Файла CSS кешируются на диске, использовать там php переменные не имеет смысла.

comment_163527
18 минут назад, ololsh сказал:

Ничего странно, все данные из бд возвращаются в виде string-а, а в коде сравнивается типа integer и конечно они не будут равны. Какой-то новомодный стиль в php пихать направо и налево сравнение по типу. Как я устал от этого уже, приходится спорить часами - если значение не может быть иметь разные типы данных которые приводятся к другому формату при сравнения тогда не имеет смысла использовать сравнение по типу.

2ТС
@WaNtedвам подсказал правильный вариант. Файла CSS кешируются на диске, использовать там php переменные не имеет смысла.

код брался из статьи выше https://invisioncommunity.com/news/community-management/theme-tip-use-html-logic-to-display-content-to-specific-groups-r957/

Все предъявы к изобретателям из их команды.
CSS можно использовать и в шаблонах html.
В 4.5, у меня в CSS файле работает и такая связка {{$b = \IPS\Member::loggedIn()->member_group_id;}}{$b}

  • Author
comment_163528
3 часа назад, ZIKURIK сказал:

проверил, странно работает если сравнение без тождественности, вместо "===" используй "=="


#logocentervips {
{{if \IPS\Member::loggedIn()->member_group_id == 7}}
	background: #262127;
{{else}}
	background-image: linear-gradient(#81c30d1c,#26212700,#262127);
{{endif}}
}

 

у меня уже голова разболелась, от этого, никак не хочет работать

comment_163529
48 минут назад, ZIKURIK сказал:

Был не прав, как не парадоксально но ид пользователя действительно типа int (видимо все же работает ORM). Значит точное сравнение должно работать и в доках написано правильно.

 

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

CSS можно использовать и в шаблонах html.

Можно css и в шаблоне, можно указать стиль непосредственно элементу...

 

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

В 4.5, у меня в CSS файле работает и такая связка {{$b = \IPS\Member::loggedIn()->member_group_id;}}{$b}

Если css будет кешироваться, то использование такой конструкции бессмысленно, ибо файл закешируется от текущего пользователя и все условия будут применены для остальных пользователей. Хотя возможно php исполняется в нем при каждой загрузке страницы, не знаю, но на мой взгляд это не оптимально. По моему хороший вариант это который предложил @вантед или задать стиль непосредственно элементу style="{{if member.member_group_id == 7}}font-color: black;{{else}}font-color: white;{{endif}}"

comment_163530
12 минут назад, ololsh сказал:

Если css будет кешироваться, то использование такой конструкции бессмысленно, ибо файл закешируется от текущего пользователя и все условия будут применены для остальных пользователей. Хотя возможно php исполняется в нем при каждой загрузке страницы, не знаю, но на мой взгляд это не оптимально. По моему хороший вариант это который предложил @вантед или задать стиль непосредственно элементу style="{{if member.member_group_id == 7}}font-color: black;{{else}}font-color: white;{{endif}}"

да через css файлы не рекомендую

25 минут назад, murzic сказал:

у меня уже голова разболелась, от этого, никак не хочет работать

есть 3 варианта с моим кодом:
1. через globaltemplate перед </body>

<style>
#logocentervips {
{{if \IPS\Member::loggedIn()->member_group_id == 7}}
	background: #262127;
{{else}}
	background-image: linear-gradient(#81c30d1c,#26212700,#262127);
{{endif}}
}
</style>

2. собственноручно найти все кнопки и прописать им style="{{if member.member_group_id == 7}}background: #262127;{{else}}background-image: linear-gradient(#81c30d1c,#26212700,#262127);{{endif}}"

3. При помощи jquery обработать все кнопки по классу .button и добавить им нужные стили или перекрыть еще одним классом исходя из id группы

  • Author
comment_163535
1 час назад, ZIKURIK сказал:

да через css файлы не рекомендую

есть 3 варианта с моим кодом:
1. через globaltemplate перед </body>


<style>
#logocentervips {
{{if \IPS\Member::loggedIn()->member_group_id == 7}}
	background: #262127;
{{else}}
	background-image: linear-gradient(#81c30d1c,#26212700,#262127);
{{endif}}
}
</style>

2. собственноручно найти все кнопки и прописать им style="{{if member.member_group_id == 7}}background: #262127;{{else}}background-image: linear-gradient(#81c30d1c,#26212700,#262127);{{endif}}"

3. При помощи jquery обработать все кнопки по классу .button и добавить им нужные стили или перекрыть еще одним классом исходя из id группы

попробую так

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.