Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Как скрыть пустую кастомную вкладку

Опубликовано:

Привет, в постах темы у пользователей под аватаркой сделал кастомные вкладки. Как то можно реализовать так же, как на картинке? Если вторая вкладка у пользователя пустая (к примеру доп поле пользователя не заполнено), то отображать только первую (которая изначально активная), а вторую вкладку скрывать. 

1673341410_2021-04-29131611.thumb.png.a86e82a2b8da9f200815360ff6f7a6d0.png

Рекомендованные сообщения

Опубликовано:

Если супер-просто и на уровне шаблонов, то:

1. В настройках поля профиля:

image.png

 

2. Добавить в шаблон:

 

{{if $comment->author()->contentProfileFields()["core_pfieldgroups_2"]["core_pfield_3"]}}
<div class='tab'>
	{$comment->author()->contentProfileFields()["core_pfieldgroups_2"]["core_pfield_3"]}
</div>
{{endif}}

 

ID группы полей и самого поля можно посмотреть в адресе при редактировании в АЦ, например:

/?app=core&module=membersettings&controller=profiles&tab=profilefields&do=form&id=2

/?app=core&module=membersettings&controller=profiles&tab=profilefields&subnode=1&do=form&id=3

 

Опубликовано:
  • Автор

@Lesovsky пока что то не вдуплю никак, смог сделать вот так, без скрытия пустых вкладок, теперь как то под ваш вариант переделывать надо)) : 

 

 <div id="tab_info_games">
      <div class="ipsTabs ipsTabs_small ipsTabs_stretch ipsClearfix" id="blocksTab_{$comment->$idField}" data-ipstabbar="" data-ipstabbar-contentarea="#blocksTab_{$comment->$idField}_content">
   <a href='#blocksTab_{$comment->$idField}' data-action='expandTabs'><i class='icon-caret-down'></i></a>
   <ul role='tablist'>
      <li role='presentation'>
         <a href="#" role='tab' id='blocksTab_{$comment->$idField}_forums' class='ipsTabs_item ipsType_center ipsTabs_activeItem' aria-selected="true">Игра</a>
      </li>
      <li role='presentation'>
         <a href="#" id='blocksTab_{$comment->$idField}_orion' role='tab' class='ipsTabs_item ipsType_center'>Прочее</a>
      </li>
   </ul>
</div>
<!-- The tab panel wrapper -->
<div id="blocksTab_{$comment->$idField}_content" class="ipsTabs_panels">
   <!-- The tab 1 -->
   <div id="ipsTabs_blocksTab_{$comment->$idField}_blocksTab_{$comment->$idField}_forums_panel" class="ipsTabs_panel" style="" aria-hidden="" animating="false">
      <div class="ipsWidget_inner">
         <div class="ipsPad_half" id="scroll_streams">
            <ul class="ipsDataList ipsDataList_reducedSpacing" id="results">	
           {{$fields = $comment->author()->contentProfileFields();}}
{{$field2 = $fields['core_pfieldgroups_5']['core_pfield_8'];}} 
          $field2 
          
              
    		
           </ul>
         </div>
      </div>
   </div>
   <!-- The tab 2 -->
   <div id="ipsTabs_blocksTab_{$comment->$idField}_blocksTab_{$comment->$idField}_orion_panel" class="ipsTabs_panel" style="" aria-hidden="" animating="false">
      <div class="ipsWidget_inner">
         <div class="ipsPad_half"  id="scroll_streams">
            <ul class="ipsDataList ipsDataList_reducedSpacing" id="results2">
           
            
           {{$fields = $comment->author()->contentProfileFields();}}
{{$field1 = $fields['core_pfieldgroups_5']['core_pfield_9'];}} 
          $field1
           </ul>
         </div>
      </div>
   </div>
</div>
        </div>

 

Опубликовано:

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

        <!-- The tab panel wrapper -->
        <div id="blocksTab_{$comment->$idField}_content" class="ipsTabs_panels">
            <!-- The tab 1 -->
            <div id="ipsTabs_blocksTab_{$comment->$idField}_blocksTab_core_pfieldgroups_5_forums_panel"
                 class="ipsTabs_panel" style="" aria-hidden="" animating="false">
				....
            </div>
            <!-- The tab 2 -->
            <div id="ipsTabs_blocksTab_{$comment->$idField}_blocksTab_core_pfieldgroups_6_orion_panel"
                 class="ipsTabs_panel" style="" aria-hidden="" animating="false">
				....
            </div>
        </div>

А чтобы скрыть пустую вкладку, нужно просто ссылку и контейнер скрывать условием в  котором проверять на пустоту группы полей.

Опубликовано:
  • Автор
8 часов назад, Lesovsky сказал:

А чтобы скрыть пустую вкладку, нужно просто ссылку и контейнер скрывать условием в  котором проверять на пустоту группы полей.

Ну id поста (каждого комментария) {$comment->$idField} делает же ID таба уникальным, разве нет? Эх, а вот с условиями я не шибко дружу)

Изменено пользователем alcatras

Опубликовано:

{$comment->$idField}  это ID поста, например у вашего сообщения оно 110202, соответственно в вашем коде ID у табов будут одинаковые:

        <!-- The tab panel wrapper -->
        <div id="blocksTab_110202_content" class="ipsTabs_panels">
            <!-- The tab 1 -->
            <div id="ipsTabs_blocksTab_110202_blocksTab_110202_forums_panel"
                 class="ipsTabs_panel" style="" aria-hidden="" animating="false">
				....
            </div>
            <!-- The tab 2 -->
            <div id="ipsTabs_blocksTab_110202_blocksTab_110202_orion_panel"
                 class="ipsTabs_panel" style="" aria-hidden="" animating="false">
				....
            </div>
        </div>

 

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

Эх, а вот с условиями я не шибко дружу)

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

И конечно не забывайте в браузере нажимать F12.

Опубликовано:
  • Автор

@Lesovsky спасибо за помощь. Будем пытаться 🙂

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.