JScript

Programação & Desenvolvimento


Você não está conectado. Conecte-se ou registre-se

Topic Active Users v 1.1

Ir para baixo  Mensagem [Página 1 de 1]

1Topic Active Users v 1.1 Empty Topic Active Users v 1.1 Ter 02 Jul 2013, 5:31 pm

JScript

JScript
Administradores
Administradores



Topic Active Users v 1.7
"Quem está vendo este tópico?"

Créditos: JScript
Nota: Versão beta, fase de implementação. O código foi feito para quem
tem /portal ou usa uma página html como página principal!


- Campos do Perfil
Aceda em:

Painel de Controle
Usuários e Grupos -> Usuários -> Perfis


Clique em Topic Active Users v 1.1 Ajouterpara adicionar um novo campo de perfil, deixe-o exatamente como mostra as figuras abaixo:
Topic Active Users v 1.1 Field_10
Respeitando as letras maiúsculas e minúsculas!
Topic Active Users v 1.1 Field_11
Não esqueça de salvá-lo!

Atenção: Vá em um perfil de um membro e anote o nome do campo, exemplo: Se usa o Firefox, basta selecionar com o botão direito do mouse em cima do campo que foi criado e clique em [Inspecionar elemento], no caso desse tutorial o nome do campo que uso aqui é field_id3 e profile_field_13_3

Imagem de exemplo:
Topic Active Users v 1.1 Field_12


- Editando Templates
Aceda em:

Painel de Controle
Visualização -> Templates -> Geral


Selecione o template viewtopic_body, substitua o seguinte código:
Código:
<div id="pun-info" class="main">
 <div id="stats">
 { L_TABS_PERMISSIONS } <br />{ S_AUTH_LIST }</p>
 { LOGGED_IN_USER_LIST }
 </div>
</div>
Por este:
Código:
<!-- ACTIVE USERS -->
<div class="statistics clear2 clearfix" id="topic_stats">
    <div class="active_users" id="topic_active_users">
        <h4 class="statistics_head"><span id="topic_total_users">0</span> usuário(s) está(ão) lendo este tópico</h4>
        <p class="statistics_brief desc">
            <span id="topic_total_members">0</span> membro(s),
           <span id="topic_total_visit">0</span> visitante(s) e
           <span id="topic_total_anoni">0</span> membros anônimo(s)
        </p>
        <br>
        <ul id="topic_list_users" class="ipsList_inline"></ul>
        <!-- BEGIN switch_user_logged_in -->
        <br/>
        <h4 class="statistics_head">Este tópico já foi visualizado por <span id="topic_total_views">0</span> usuário(s)</h4>
        <br/>
        <ul id="topic_list_views" class="ipsList_inline"></ul>
        <!-- END switch_user_logged_in -->
    </div>
</div>
<script type="text/javascript">
    //<![CDATA[
    $(window).load(function() {
        var total_users = 0, last_views = '';
        var WereIam = '', target = 0;
        var pathname = location.pathname;
        var storListViews = pathname;
        var storTotalView = pathname + '_views';
        
        $.get('/forum', function (data) {
            target = $('#logged_in_user_list', data).find('a');
            if (target.length == 0) {
                target = $('#onlinelist').find('p:eq(1)').find('a');
            }
        }).always(function() {
            var len = target.length, last_views = '';
            if (len == 0) {return false}
            
            searchActiveUsers(target, 0, len, 0);
        });

        function searchActiveUsers(target, start, len, index){
            if (index == len) {
                <!-- BEGIN switch_user_logged_in -->
                last_views = localStorage.getItem(storListViews);
                if (last_views) {
                    $('#topic_list_views').html(last_views);
                    $('#topic_total_views').text(localStorage.getItem(storTotalView));
                }
                <!-- END switch_user_logged_in -->            
                return false
            }
            var oThis = $(target[index]);
            var USER_ID = oThis.attr('href');
            var USERNAME = '<a href="' + USER_ID + '">' + oThis.html() + '</a>';

            if (USER_ID.length !== 0) {
                $.get(USER_ID, function (data) {
                    WereIam = $('#field_id3', data).find('div.field_uneditable').text();
                }).always(function() {
                    if (WereIam == pathname) {
                        if (total_users == 0) {
                            $('#topic_list_users').append(USERNAME);
                        } else {
                            $('#topic_list_users').append(', ' + USERNAME);
                        }
                        total_users++;
                        $('#topic_total_users').text(total_users);
                        $('#topic_total_members').text(total_users);
                        <!-- BEGIN switch_user_logged_in -->
                        last_views = localStorage.getItem(pathname);
                        if (last_views) {
                            if (last_views.indexOf(USER_ID) == -1) {
                                localStorage.setItem(storListViews, last_views + ', ' + USERNAME);
                                var storValue = localStorage.getItem(storTotalView);
                                if (storValue == null) storValue = 0;
                                localStorage.setItem(storTotalView, parseInt(storValue) + 1);
                            }
                        } else {
                            localStorage.setItem(storListViews, USERNAME);
                            localStorage.setItem(storTotalView, 1);
                        }
                        <!-- END switch_user_logged_in -->
                    }
                    index++;
                    try {
                        searchActiveUsers(target, start, len, index);
                    } catch (e) {
                        console.log(index);
                    }                    
                });
            }
        }
    });
    //]]>
</script>            
<style type="text/css">
    <!--
    .clearfix:after {
        clear: both;
        content: ".";
        display: block;
        height: 0;
        visibility: hidden;
    }
    .statistics {
        border-top: 3px solid #D8D8D8;
        line-height: 1.3;
        margin: 20px 0 0;
        overflow: hidden;
        padding: 10px 0;
    }
    .clear2 {
        clear: both;
    }
    .statistics_head {
        font-size: 14px;
        font-weight: bold;
    }
    .desc, .desc.blend_links a, p.posted_info {
        color: #777777;
        font-size: 12px;
    }
    -->
</style>

<div id="pun-info" class="main" style="display: none;">
 <div id="stats">
 <!-- Backup <p>{L_TABS_PERMISSIONS} <br />{S_AUTH_LIST}</p> -->
 {LOGGED_IN_USER_LIST}
 </div>
</div>
Não esqueça de publicá-lo!
Nota: Substitua no código acima o nome do campo field_id3 pelo nome que anotou no passo anterior!


Selecione o template profile_add_body e adicione no final do arquivo o seguinte código:
Código:
<script type="text/javascript">
    $(function(){
        $('.main-content .frm-set dl:contains("_Log")').hide();
    });
</script>
Não esqueça de publicá-lo!

E por fim, selecione o template overall_header e adicione o código abaixo dentro da tag < head >:
Código:
   <script type="text/javascript">
    //<![CDATA[
        <!-- BEGIN switch_user_logged_in -->
        /* Where I am? */
        $(function () { /* Get the var {TID} */
         var TID = $('input[name="tid"]').val() + ''; /* Get the var USER_ID */
         var USER_ID = '';
         $.get('/profile?mode=editprofile&page_profil=avatars', function (data) {
         USER_ID = $('input[name="user_id"]', data).val() + '';
         }).always(function () {
                /* UPF in: http://jscript.forumeiros.com/t78-atualizar-campos-do-perfil */
         $.post("/ajax_profile.forum?jsoncallback=?", {
         id: "3",
         user: USER_ID,
         active: "1",
         content: '[["profile_field_13_3", "' + location.pathname + '"]]',
         tid: TID
         }, function (data) {
         console.log("OK: ajax_profile, userID = " + USER_ID);
         }, "json").fail(function () {
         console.log("error: ajax_profile, userID = " + USER_ID);
         });
         });
        });
        <!-- END switch_user_logged_in -->        
    //]]>
    </script>
Não esqueça de publicá-lo!
Nota: Substitua no código acima o nome do campo profile_field_13_3 pelo nome que anotou no passo anterior!
No código acima, procure por {id:"3", e substitua o 3 pelo final do número do campo!


- Resultado
Topic Active Users v 1.1 4teryR4

Link para visualização: http://jscript.forumeiros.com/





PunBB Forumeiros


Se tiver alguma dúvida relacionada com este tópico crie um tópico com o seguinte título:
Topic Active Users v 1.1



Última edição por JScript em Ter 20 Ago 2013, 4:40 pm, editado 6 vez(es) (Motivo da edição : Otimizações no código!)

http://autoitbrasil.com

2Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Ter 02 Jul 2013, 10:18 pm

JScript

JScript
Administradores
Administradores

Reservado

http://autoitbrasil.com

3Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Sex 05 Jul 2013, 9:40 pm

Convidado

avatar
Convidado

Olá,

muito bom o recurso, parabéns por desenvolvê-lo e obrigado por compartilhar .

Até mais .

4Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Sex 05 Jul 2013, 11:58 pm

JScript

JScript
Administradores
Administradores

Olá amigo, já testou o tutorial em algum fórum?

JS

http://autoitbrasil.com

5Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Sáb 06 Jul 2013, 11:32 am

Convidado

avatar
Convidado

Olá,

não, mas em breve testarei !

Até mais .

6Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Seg 08 Jul 2013, 1:19 pm

Convidado

avatar
Convidado

@Edit by Mazeko;

Obrigado por compartilhar o código! Realmente ótimo!
Apesar de que encontrei alguns 'problemas' com ele no qual não funciona em meu forum. Estarei criando um tópico para maior esclarecimento!

Att.

7Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Sex 12 Jul 2013, 10:23 pm

Convidado

avatar
Convidado

Realmente na PunBB forumeiros existem códigos e possibilidades as quais eu nunca tinha imaginado.
Este código seria possível em PhpBB3? Talvez substituindo a parte de templates por códigos em JavaScript?

Ps: Parabéns.

8Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Sex 12 Jul 2013, 10:31 pm

JScript

JScript
Administradores
Administradores

Com certeza que sim amigo!

Apesar de aqui só tratarmos de códigos dentro dos templates (isso evita erros!!!), abrirei uma exceção a você e lhe enviarei em breve por MP o necessário pra rodar em seu fórum ok?

Fico bastante feliz que tenha gostado!

Abraços,

JS

http://autoitbrasil.com

9Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Sex 12 Jul 2013, 11:39 pm

Convidado

avatar
Convidado

Sim, é especificamente para meu fórum: http://staffergroupbr.stuning.net/

10Topic Active Users v 1.1 Empty Re: Topic Active Users v 1.1 Ter 16 Jul 2013, 5:18 pm

Convidado

avatar
Convidado

Olá tentei fazer passo a passo este tutorial mas não encontro o profile_field_13_3. Queria saber se é sempre o mesmo ou muda pra cada fórum.

Obrigado.

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

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