murzic Posted August 10, 2020 Share Posted August 10, 2020 Привет! Я хочу что-то сделать, но не очень получается... У меня есть такой код: {{if in_array ( \IPS\Member::loggedIn()->member_group_id, array ( 4 ) ) }} код HTML {{endif}} Я хочу сделать это, если кнопка X серая предназначена для участников, я хочу, чтобы она была другого цвета для премиум-класса. Но чтобы задать настройки CSS, мне нужен ключевой код, например: .theme[data-role='member_group_id'] { ...... ..... .... .... } Надеюсь, вы понимаете, что я имел в виду. Спасибо за внимание ... Quote Link to comment Share on other sites More sharing options...
Maiden8 Posted August 10, 2020 Share Posted August 10, 2020 Пляши отсюда, там уже шаблон есть, добавить классы и цветные кнопки только https://invisioncommunity.com/news/community-management/theme-tip-use-html-logic-to-display-content-to-specific-groups-r957/ SlawkA 1 Quote Link to comment Share on other sites More sharing options...
murzic Posted August 25, 2020 Author Share Posted August 25, 2020 В 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, это проще. Добавить идентификатор или класс, и все готово Quote Link to comment Share on other sites More sharing options...
WaNted Posted August 25, 2020 Share Posted August 25, 2020 <a href='#' class='button group_{member.member_group_id}'>Кнопка</a> .button { } .button.group_1 { } .button.group_4 { } ololsh 1 Quote Link to comment Share on other sites More sharing options...
murzic Posted August 25, 2020 Author Share Posted August 25, 2020 3 минуты назад, WaNted сказал: <a href='#' class='button group_{member.member_group_id}'>Кнопка</a> .button { } .button.group_1 { } .button.group_4 { } Попробую, вернусь с ответом... Quote Link to comment Share on other sites More sharing options...
WaNted Posted August 25, 2020 Share Posted August 25, 2020 {member.member_group_id} замените только на {member="member_group_id"}, ошибся. Quote Link to comment Share on other sites More sharing options...
murzic Posted August 25, 2020 Author Share Posted August 25, 2020 ok Quote Link to comment Share on other sites More sharing options...
murzic Posted August 25, 2020 Author Share Posted August 25, 2020 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"} Quote Link to comment Share on other sites More sharing options...
Exception Posted August 25, 2020 Share Posted August 25, 2020 .button { {{if \IPS\Member::loggedIn()->member_group_id === 4}} color: white; {{else}} color: red; {{endif}} } Maiden8, alexis and Respected 3 Quote Link to comment Share on other sites More sharing options...
murzic Posted August 26, 2020 Author Share Posted August 26, 2020 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 всё также Quote Link to comment Share on other sites More sharing options...
Exception Posted August 26, 2020 Share Posted August 26, 2020 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}} } Quote Link to comment Share on other sites More sharing options...
ololsh Posted August 26, 2020 Share Posted August 26, 2020 1 час назад, ZIKURIK сказал: странно работает если сравнение без тождественности, вместо "===" используй "==" Ничего странно, все данные из бд возвращаются в виде string-а, а в коде сравнивается типа integer и конечно они не будут равны. Какой-то новомодный стиль в php пихать направо и налево сравнение по типу. Как я устал от этого уже, приходится спорить часами - если значение не может быть иметь разные типы данных которые приводятся к другому формату при сравнения тогда не имеет смысла использовать сравнение по типу. 2ТС@WaNtedвам подсказал правильный вариант. Файла CSS кешируются на диске, использовать там php переменные не имеет смысла. WaNted 1 Quote Link to comment Share on other sites More sharing options...
Exception Posted August 26, 2020 Share Posted August 26, 2020 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} Quote Link to comment Share on other sites More sharing options...
murzic Posted August 26, 2020 Author Share Posted August 26, 2020 3 часа назад, ZIKURIK сказал: проверил, странно работает если сравнение без тождественности, вместо "===" используй "==" #logocentervips { {{if \IPS\Member::loggedIn()->member_group_id == 7}} background: #262127; {{else}} background-image: linear-gradient(#81c30d1c,#26212700,#262127); {{endif}} } у меня уже голова разболелась, от этого, никак не хочет работать Quote Link to comment Share on other sites More sharing options...
ololsh Posted August 26, 2020 Share Posted August 26, 2020 48 минут назад, ZIKURIK сказал: код брался из статьи выше https://invisioncommunity.com/news/community-management/theme-tip-use-html-logic-to-display-content-to-specific-groups-r957/ Был не прав, как не парадоксально но ид пользователя действительно типа 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}}" WaNted 1 Quote Link to comment Share on other sites More sharing options...
Exception Posted August 26, 2020 Share Posted August 26, 2020 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 группы Quote Link to comment Share on other sites More sharing options...
murzic Posted August 26, 2020 Author Share Posted August 26, 2020 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 группы попробую так Quote Link to comment Share on other sites More sharing options...
murzic Posted August 26, 2020 Author Share Posted August 26, 2020 сработала через </body> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.