Função de Abrir/Fechar Categorias

3 participantes

Ver o tópico anterior Ver o tópico seguinte Ir para baixo

Tópico resolvido Função de Abrir/Fechar Categorias

Mensagem por GuerreiroBR13 11.05.23 23:15

Detalhes da questão


Endereço do fórum: https://policedop.forumeiros.com
Versão do fórum: ModernBB

Descrição


Recentemente eu fiz uma mudança nas categorias do meu fórum ( https://ajuda.forumeiros.com/t117545-modificar-a-aparencia-das-categorias#830954 ) e no processo acabou excluindo a função de ocultar elas, e eu não sei como colocar novamente.

Além disso, eu queria aproveitar e fazer algumas mudanças:
- Deixar cores diferentes pra quando ela estiver aberta e fechada;
- E colocar um toggle no lugar do ícone padrão.

A ideia é ficar assim:
Função de Abrir/Fechar Categorias Fzrum15
GuerreiroBR13

GuerreiroBR13
*

Membro desde : 28/03/2023
Mensagens : 33
Pontos : 44

https://policedop.forumeiros.com

Ir para o topo Ir para baixo

Ajudeiro

Tópico resolvido Re: Função de Abrir/Fechar Categorias

Mensagem por Fraise 11.05.23 23:56

Olá @GuerreiroBR13!

Troque o seu template index_box pelo seguinte:
Código:
<ul class="linklist">
  <!-- BEGIN switch_user_logged_in -->
  <li><a href="{U_SEARCH_NEW}">{L_SEARCH_NEW}</a>&nbsp;•&nbsp;</li>
  <li><a href="{U_SEARCH_SELF}">{L_SEARCH_SELF}</a>&nbsp;•&nbsp;</li>
  <!-- END switch_user_logged_in -->
  <li><a href="{U_SEARCH_UNANSWERED}">{L_SEARCH_UNANSWERED}</a></li>
  <!-- BEGIN switch_user_logged_in -->
  <li class="rightside"><a href="{U_MARK_READ}" accesskey="m">{L_MARK_FORUMS_READ}</a></li>
  <!-- END switch_user_logged_in -->
</ul>
 
<!-- BEGIN catrow -->
  <!-- BEGIN tablehead -->
      <div class="forabg">
        <ul class="topiclist">
            <li class="header">
              <dl class="icon">
                  <dd class="dterm"><div class="table-title">{catrow.tablehead.L_FORUM}</div></dd>
                  <dd class="topics">&nbsp;</dd>
                  <dd class="posts">&nbsp;</dd>
                  <dd class="lastpost">&nbsp;</dd>
              </dl>
            </li>
        </ul>
        <ul class="topiclist forums">
  <!-- END tablehead -->
 
  <!-- BEGIN forumrow -->
            <li class="row">
              <dl class="icon" style="background:url({catrow.forumrow.FORUM_FOLDER_IMG}) no-repeat scroll {catrow.forumrow.INC_LEVEL} 50%;">
                  <dd class="dterm">
                    <div style="display: block; margin : 0 {catrow.forumrow.INC_LEVEL_RIGHT} 0 {catrow.forumrow.INC_LEVEL_LEFT};">
                        <h{catrow.forumrow.LEVEL} class="hierarchy">
                        <a href="{catrow.forumrow.U_VIEWFORUM}" class="forumtitle">{catrow.forumrow.FORUM_NAME}</a>
                        </h{catrow.forumrow.LEVEL}>
                        {catrow.forumrow.FORUM_DESC}
 
                        <!-- BEGIN switch_moderators_links -->
                          {catrow.forumrow.switch_moderators_links.L_MODERATOR}{catrow.forumrow.switch_moderators_links.MODERATORS}
                        <!-- END switch_moderators_links -->
                        {catrow.forumrow.L_LINKS}{catrow.forumrow.LINKS}
                        <strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}
                    </div>
                  </dd>
                  <dd class="topics">&nbsp; <dfn>&nbsp;</dfn></dd>
              <dd class="posts">&nbsp; <dfn>&nbsp;</dfn></dd>
                  <dd class="lastpost">
                    <!-- BEGIN ads -->
                    <span class="AD_LastPA">
                                <span class="lastpost-avatar"><img src="{catrow.forumrow.ads.IMG}" alt="{catrow.forumrow.ads.TITLE}" /></span>
                                <span class="AD_LastInfos">
                                    <a href="{catrow.forumrow.ads.LINK}">{catrow.forumrow.ads.TITLE}</a>
                                    {catrow.forumrow.ads.DATE}<br />
                                    {catrow.forumrow.ads.LOCATION}
                                </span>
                    </span>
                            <!-- END ads -->
                 
                            <!-- BEGIN avatar -->
                            <span class="lastpost-avatar">{catrow.forumrow.avatar.LAST_POST_AVATAR}</span>
                            <!-- END avatar -->
 
                    <span class="lastpost-infos">
                    <!-- BEGIN switch_topic_title -->
                    <a href="{catrow.forumrow.U_LATEST_TOPIC}" title="{catrow.forumrow.LATEST_TOPIC_TITLE}">{catrow.forumrow.LATEST_TOPIC_NAME}</a><br />
                    <!-- END switch_topic_title -->
                    {catrow.forumrow.USER_LAST_POST}
                    </span>
                  </dd>
              </dl>
            <dl name="shekCrowley" class="forumlHeader">
              <p>{catrow.forumrow.TOPICS} {L_TOPICS} e {catrow.forumrow.POSTS} {L_POSTS}</p>
            </dl>
            </li>
  <!-- END forumrow -->
 
  <!-- BEGIN tablefoot -->
            </ul>
      </div>
  <!-- END tablefoot -->
<!-- END catrow -->
 
<!-- BEGIN switch_forum_images -->
<div class="forabg">
  <div class="inner"><span class="corners-top"><span></span></span>
      <ul class="topiclist">
        <li class="header">
            <dl class="icon">
              <dd class="dterm"><div class="table-title"><h2>{switch_forum_images.TITLE}</h2></div></dd>
            </dl>
        </li>
      </ul>
      <div class="container-imgs-list" style="max-height: 500px" id="imageList">
        {switch_forum_images.SCRIPTS}
      </div>
  </div>
  <span class="corners-bottom"><span></span></span>
</div>
<!-- END switch_forum_images -->
 
<!-- BEGIN switch_on_index -->
<ul class="linklist">
  <li><a href="{U_TODAY_ACTIVE}">{L_TODAY_ACTIVE}</a>&nbsp;•&nbsp;</li>
  <li><a href="{U_TODAY_POSTERS}">{L_TODAY_POSTERS}</a>&nbsp;•&nbsp;</li>
  <li class="last"><a href="{U_OVERALL_POSTERS}">{L_OVERALL_POSTERS}</a></li>
  <!-- BEGIN switch_delete_cookies -->
  <li class="rightside"><a href="{switch_on_index.switch_delete_cookies.U_DELETE_COOKIES}" rel="nofollow">{switch_on_index.switch_delete_cookies.L_DELETE_COOKIES}</a></li>
  <!-- END switch_delete_cookies -->
</ul>
<!-- END switch_on_index -->
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
   var btn_collapse = $('<div></div>', {
      class: 'btn-collapse'
   });

   var btn_collapse_show = $('<i></i>', {
      class: 'fa-solid fa-toggle-off',
      'data-tooltip': '{L_EXPEND_CAT}'
   }).appendTo(btn_collapse);

   var btn_collapse_hide = $('<i></i>', {
      class: 'fa-solid fa-toggle-on',
      'data-tooltip': '{L_HIDE_CAT}'
   }).appendTo(btn_collapse);

   var collapsed = [];

   if (readCookie('collapsed') != null && readCookie('collapsed') != '') {
      collapsed = readCookie('collapsed').split(',');
   }

   $(document).on('click', '.btn-collapse', function() {
      $(this).children('.fa-solid fa-toggle-off').toggleClass('hidden');
      $(this).children('.fa-solid fa-toggle-on').toggleClass('hidden');
      $(this).parents('.forabg').toggleClass('hidden');

      if (readCookie('collapsed') != null && readCookie('collapsed') != '') {
         collapsed = readCookie('collapsed').split(',');
      }

      if (!$(this).parents('.forabg').hasClass('hidden')) {
         removeFromArray('' + $(this).parents('.forabg').data('cindex'), collapsed);

         createCookie('collapsed', collapsed);
      } else {
         collapsed.push('' + $(this).parents('.forabg').data('cindex'));

         createCookie('collapsed', collapsed);
      }
   });

   $('.forabg').each(function(i) {
      $(this).data('cindex', '' + i);

      $(btn_collapse)
         .clone()
         .attr('id', 'forabg' + i)
         .appendTo($(this).find('.header'));

      if ($.inArray('' + i, collapsed) > -1) {
         $(this).toggleClass('hidden');
         $('#forabg' + i).children('.fa-solid fa-toggle-off').toggleClass('hidden');
         $('#forabg' + i).children('.fa-solid fa-toggle-on').toggleClass('hidden');
      }
   });
});

function removeFromArray(item, array) {
   var i = array.indexOf(item);

   if (i > -1) {
      array = array.splice(i, 1);
   }
}

function createCookie(name, value, days) {
   var expires;

   if (days) {
      var date = new Date();
      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
      expires = "; expires=" + date.toGMTString();
   } else {
      expires = "";
   }
   document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
}

function readCookie(name) {
   var nameEQ = encodeURIComponent(name) + "=";
   var ca = document.cookie.split(';');
   for (var i = 0; i < ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0) === ' ') c = c.substring(1, c.length);
      if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));
   }
   return null;
}
//]]>
</script>

Para que surja o ícone nas categorias, é necessária efetuar a instalação de FontAwesome em seu fórum, para isso no seu template overall_header, logo abaixo da tag <head> adicione o seguinte código:
Código:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
Salve e publique.

Atenciosamente,
Fraise.

Tópico movido


O tópico foi movido para o setor: Questões sobre códigos.

Fraise

Fraise
Ajudeiro
Ajudeiro

Membro desde : 26/06/2015
Mensagens : 6561
Pontos : 8045

https://ajuda.forumeiros.com/ https://twitter.com/@FraiseFdF

Ir para o topo Ir para baixo

  • 0

Tópico resolvido Re: Função de Abrir/Fechar Categorias

Mensagem por GuerreiroBR13 12.05.23 2:56

A função voltou certinho, só tá faltando trocar a cor da categoria.

Função de Abrir/Fechar Categorias Fzrum16

A minha cor é um background-image: linear-gradient(to right, #151515 45%, #1b2066);, eu queria deixar só o #151515 quando ela estiver fechada.
GuerreiroBR13

GuerreiroBR13
*

Membro desde : 28/03/2023
Mensagens : 33
Pontos : 44

https://policedop.forumeiros.com

Ir para o topo Ir para baixo

Principal Contribuidor

Tópico resolvido Re: Função de Abrir/Fechar Categorias

Mensagem por Shek 12.05.23 14:20

Bom dia.

Localiza no seu CSS:
Código:
.topiclist > .header {
    background-image: linear-gradient(to right, #151515 45%, #1b2066);
    border-bottom: 3px solid #009cff;
}
E adicione abaixo:
Código:
div.forabg.hidden .topiclist > .header {
    background-color: #151515 !important;
    border-bottom: 3px solid #009cff;
}
Atenciosamente,
Shek King
Shek

Shek
Principal Contribuidor
Principal Contribuidor

Membro desde : 11/04/2009
Mensagens : 18896
Pontos : 22793

https://shiftactive.blogspot.com/ https://www.facebook.com/ShiftActif https://twitter.com/ShiftActif

Ir para o topo Ir para baixo

Tópico resolvido Re: Função de Abrir/Fechar Categorias

Mensagem por GuerreiroBR13 12.05.23 15:23

Apliquei o código no meu CSS e não funcionou.
GuerreiroBR13

GuerreiroBR13
*

Membro desde : 28/03/2023
Mensagens : 33
Pontos : 44

https://policedop.forumeiros.com

Ir para o topo Ir para baixo

Ajudeiro
  • 0

Tópico resolvido Re: Função de Abrir/Fechar Categorias

Mensagem por Fraise 12.05.23 20:25

Olá @GuerreiroBR13!

Remova o código fornecido pelo meu amigo Shek, e adicione em sua folha de estilos:
Código:
.forabg.hidden .header { background: #151515 !important; }

Atenciosamente,
Fraise.
Fraise

Fraise
Ajudeiro
Ajudeiro

Membro desde : 26/06/2015
Mensagens : 6561
Pontos : 8045

https://ajuda.forumeiros.com/ https://twitter.com/@FraiseFdF

Ir para o topo Ir para baixo

Tópico resolvido Re: Função de Abrir/Fechar Categorias

Mensagem por GuerreiroBR13 13.05.23 1:14

Funcionou certinho @Fraise, obrigado.
Pode fechar o tópico.

Sorrir
GuerreiroBR13

GuerreiroBR13
*

Membro desde : 28/03/2023
Mensagens : 33
Pontos : 44

https://policedop.forumeiros.com

Ir para o topo Ir para baixo

Ajudeiro

Tópico resolvido Re: Função de Abrir/Fechar Categorias

Mensagem por Fraise 13.05.23 13:12

Tópico resolvido


Movido para "Questões resolvidas".
Fraise

Fraise
Ajudeiro
Ajudeiro

Membro desde : 26/06/2015
Mensagens : 6561
Pontos : 8045

https://ajuda.forumeiros.com/ https://twitter.com/@FraiseFdF

Ir para o topo Ir para baixo

Ver o tópico anterior Ver o tópico seguinte Ir para o topo

- Tópicos semelhantes

Permissões neste sub-fórum
Não podes responder a tópicos