Fórum dos Fóruns

Fórum dos Fóruns Forumeiros

Welcome FdF Bem-vindo ao fórum de suporte Forumeiros  Muito feliz


Para aproveitar tudo o que o nosso fórum lhe oferece, agradecemos que se identifique, se já é nosso membro, ou que se junte à nossa comunidade, fazendo o seu registo.
Acesso rápido

Fóruns de suporte oficiais
Conectar-se

Esqueci minha senha

Últimos assuntos
» Efeito no avatar em mensagens no tópico
Hoje à(s) 01:34 am por Dark Hunter

» Imagem do topico
Ontem à(s) 11:50 pm por Harleen

» #10422 Forumeiros desativa e reenvia a url para este site
Ontem à(s) 10:39 pm por Forumpw

» [PEDIDO] - Logo
Ontem à(s) 09:38 pm por Tiger

» Caixa de resposta rápida nos tópicos
Ontem à(s) 09:07 pm por Harleen

» Template quebra ao ser editado
Ontem à(s) 08:52 pm por Starset

» Ícones de redes sociais e feed
Ontem à(s) 08:14 pm por Harleen

Perdi minha senha!
Você precisa recuperar sua senha?
Clique aqui
Parceiros Forumeiros
Os membros mais ativos da semana
Kyo Panda
 
Fatalisss
 
Harleen
 
JulioPais
 
APOllO
 
Shek
 
Holkis
 
MtX
 
Forumpw
 
Roger_Crazzy
 

Quem está conectado
230 usuários online :: 5 usuários cadastrados, Nenhum Invisível e 225 Visitantes :: 1 Motor de busca

Appoloz, Daemon, Jefferson105, Luiz, Sapinho

[ Ver toda a lista ]


O recorde de usuários online foi de 3131 em 24/12/09, 01:05 pm

Tempo online

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

Resolvido Tempo online

Mensagem por skilledpt em 20/10/16, 11:02 am

Detalhes da questão


Endereço do fórum: lsteam.forumeiros.com
Versão do fórum: PunBB

Descrição


Boa tarde, estou a tentar por um campo de perfil "tempo online", ja li alguns topicos aqui no forum e tentei este codigo criado pelo JScript, mas não consegi po-lo funcional, tentei criar um campo de perfil chamado tempo online mas continua sem funcionar.

Codigos usado:

Código:

/*******************************************************************************************************
 * Application: elapsedTime (Total Time Spent On Forums)
 * Description: Will show how much time each member spends logged into the site.
 * Version: RC1 - Beta tester only!
 * Made and Optimizations by JScript - 2015/02/18
 * Copyright (c) 2015 JScript <jscriptbrasil at live dot com>
 * This work is free. You can redistribute it and/or modify it
 * under the terms of the WTFPL, Version 2
********************************************************************************************************
-
Variables that can be changed by the user:
1- tTimeOut
2- checkTime
3- fieldName
Note: For those variables "tTimeout" and "checkTime" ->
      - to avoid the "Request Limit" the lowest value should be 10 seconds and 30 seconds respectively!
*/
var elapsedTime = {
  autor:      'JScript',
  version:  '1.02202015-jq1.9.1',
  codename:  'Narmer (Sheikh Muftah)',

  /**
    * Related to database.
    **/
  fieldName:      'Time Online',
  field_id:      0,
  fd_description:  'Will show how much time each member spends logged into the site.',
  db_field:      0,
  db_content:      '',
  db_description:  'Database to store the data of the module elapsedTime!',
  db_url:        '/admin/index.forum?part=users_groups&sub=users&mode=avatar_profil2&extended_admin=1&tid=',
  response:      '',
  evalTextarea:  'jQuery(\'label:contains("elapsedTime_DB"), span:contains("elapsedTime_DB"), dt:contains("elapsedTime_DB")\', response).closest("dl, tr").find("textarea")',

  db_default: {
      appInfo: {
        module:      'elapsedTime_DB',
        description: 'Database to store the data of the module elapsedTime!',
        author:      'JScript',
        version:    'RC1 b',
        release:    '2015/02/18'
      },
      userInfo: {
        isOnline:  1,
        dateOld:  Number(new Date()),
        dateNow:  Number(new Date()),
        dateSpent:  ''
      }
  },

  /**
    * Related to intervals.
    **/
  lInterval:  10,
  tTimeOut:  10000,
  checkTime:  30000,
  setLoop:  0,

  // other variables...
  evalTID:  'jQuery(\'a[href*="tid="]\').attr("href").split("tid=")[1].split("&")[0]',
  TID:      0,

  /**
    * JavaScript/jQuery functions
    */
  initialize: function() {
      $(function() {
        return (!_userdata.session_logged_in) ? false : elapsedTime.setup();
      });
  },

  setup: function() {
      elapsedTime.TID = eval(elapsedTime.evalTID);
      /**
      * First checks if the database exists!
      **/
      jQuery.get('/profile?mode=editprofile', function(response) {
        elapsedTime.response = eval(elapsedTime.evalTextarea);

        // If the database does not exist, then an administrator will create it now!
        if ((!elapsedTime.response.length) && (_userdata.user_level == 1)) {
            elapsedTime.async(false);
            jQuery.post(elapsedTime.db_url + elapsedTime.TID, { /* <- Parameters! */
              /* Post action */
              action:                  'add_field',
              id:                    0,
              type:                  0,
              action:                  'configuration_final',
              list_type_field:        2,
              field_name:              'elapsedTime_DB',
              field_desc:              elapsedTime.db_description + ' - Made by JScript, 2015/02/18',
              field_oblig:            0,
              field_display_profil:      1,
              list_field_type_view:      0,
              list_auth_field_himself:  1,
              list_field_view:        0,
              list_separator:            0,
              field_type_2_lng_max:      15000,
              submit:                  1,
              field_type_11_max_before:  14,
              field_type_11_max_after:  6
            }).done(function() {
              jQuery.get('/profile?mode=editprofile', function(response) {
                  elapsedTime.response = eval(elapsedTime.evalTextarea);
              });
            });
            jQuery.post(elapsedTime.db_url + elapsedTime.TID, { /* <- Parameters! */
              /* Post action */
              action:                  'add_field',
              id:                    0,
              type:                  0,
              action:                  'configuration_final',
              list_type_field:        13,
              field_name:              elapsedTime.fieldName,
              field_desc:              elapsedTime.fd_description + ' - Made by JScript, 2015/02/18',
              field_oblig:            0,
              field_display_message:      1,
              field_display_profil:      1,
              list_field_type_view:      0,
              list_auth_field_himself:  1,
              list_field_view:        -1,
              list_separator:            1,
              field_type_2_lng_max:      15000,
              submit:                  1,
              field_type_11_max_before:  14,
              field_type_11_max_after:  6
            }).done(function(e) {
              // console.log(e)
            });
            elapsedTime.async(true);
        }

        if (!elapsedTime.response.length) {
            return false;
        }

        elapsedTime.db_field = elapsedTime.response.attr('id');

        if (elapsedTime.response.val().length) {
            elapsedTime.db_content = JSON.parse(elapsedTime.response.val().replace(/'/g, '"'));
        }

        if ((!elapsedTime.response.val().length) || (!elapsedTime.db_content.userInfo.isOnline)) {
            elapsedTime.db_content = elapsedTime.db_default;

            elapsedTime.async(false);
              elapsedTime.dataSave(elapsedTime.db_field, JSON.stringify(elapsedTime.db_content).replace(/"/g, "'"));
            elapsedTime.async(true);

            elapsedTime.updateTime();
        }

        if (document.getElementById('fa_welcome') !== null) {
            jQuery('a[href$="logout=1"]').attr('href', jQuery('#logout').attr('href'));
        }
        jQuery('a[href*="logout=1"]').click(function(event) {
            elapsedTime.TID = eval(elapsedTime.evalTID);
            elapsedTime.db_content.userInfo.isOnline = 0;

            elapsedTime.async(false);
              elapsedTime.dataSave(elapsedTime.db_field, JSON.stringify(elapsedTime.db_content).replace(/"/g, "'"));
            elapsedTime.async(true);
        });
        /**
        * Writes the current time in the profile field...
        **/
        setTimeout(function() {
            setInterval(function() {
              elapsedTime.updateTime();
            }, elapsedTime.checkTime);
        }, elapsedTime.tTimeOut);

      }).fail(function(e) {
        console.log(e);
      });
  },

  async: function(mode) {
      jQuery.ajaxSetup({
        async: mode
      });
  },

  dataSave: function(field, content) {
      jQuery.post("/ajax_profile.forum?jsoncallback=?", {
        id: field.split("_")[3],
        user: _userdata.user_id,
        active: "1",
        content: '[["' + field + '", "' + content + '"]]',
        tid: elapsedTime.TID
      }, function(data) {
        // OK!
      }, "json").fail(function(e) {
        console.log(e);
      });
  },

  updateTime: function() {
      elapsedTime.TID = eval(elapsedTime.evalTID);

      jQuery.get('/profile?mode=editprofile', function(response) {
        elapsedTime.response = jQuery('label:contains("' + elapsedTime.fieldName + '"), span:contains("' + elapsedTime.fieldName + '"), dt:contains("' + elapsedTime.fieldName + '")', response).closest('dl, tr').find('input');
        elapsedTime.field_id = elapsedTime.response.attr('id');

        if (elapsedTime.response.length) {
            elapsedTime.response = eval(elapsedTime.evalTextarea);
            elapsedTime.db_content = JSON.parse(elapsedTime.response.val().replace(/'/g, '"'));

            elapsedTime.dataSave(elapsedTime.field_id, elapsedTime.getTime(elapsedTime.db_content.userInfo.dateOld));
        }
      }).fail(function(e) {
        console.log(e);
      });
  },

  getTime: function(date_old, date_now) {
      date_old = date_old || new Date(); //.toLocaleString('en-US', { hour12: false });
      date_now = date_now || new Date(); //.toLocaleString('en-US', { hour12: false });
      //date_old = date_old.split("/").swap(0, 1).join("/");
      //date_now = date_now.split("/").swap(0, 1).join("/");
      date_old = new Date(date_old);
      date_now = new Date(date_now);

      var seconds = Math.floor((date_now - (date_old)) / 1000),
        minutes = Math.floor(seconds / 60),
        hours = Math.floor(minutes / 60),
        days = Math.floor(hours / 24);

      hours = hours - (days * 24);
      minutes = minutes - (days * 24 * 60) - (hours * 60);
      seconds = seconds - (days * 24 * 60 * 60) - (hours * 60 * 60) - (minutes * 60);
      http://console.log(days + "d " + hours + "h " + minutes + "m " + seconds + "s ");
      return ((days) ? days + "d " : "") + ((hours) ? hours + "h " : "") + ((minutes) ? minutes + "m " : "") + ((seconds) ? seconds + "s " : "");
  }
};

elapsedTime.initialize();

Topico que consultei:

http://ajuda.forumeiros.com/t98130-colocar-um-campo-no-perfil-tempo-online#674614
avatar

skilledpt
Nível 4

Masculino
Inscrito dia : 17/10/2016
Mensagens : 33
Pontos Ativos : 67

http://lsteam.forumeiros.com

Resolvido Re: Tempo online

Mensagem por while em 20/10/16, 12:28 pm

Olá autor,

Vamos por parte tudo bem?

  • Como funciona: Esse código cria dois campos de perfil (não é preciso você criar), um para contabilizar o tempo online e outro para deixar visível o tempo em forma de Dia/Hora/minuto/segundo. Portanto é importante não excluir o ElapsedTime, e nem mexer em nada nele.

  • Como instalar o código: Você deve acessar:
    Painel de Controle -> Modulos -> HTML & Javascripts -> Gestão dos códigos Javascripts
    E crie um novo javascript com investimento em todas as paginas com o código que você citou no tópico. E pronto, estará resultando.


Até mais.
avatar

while
Hiperativo

Masculino
Inscrito dia : 24/04/2016
Mensagens : 3105
Pontos Ativos : 4499

http://www.ajuda.forumeiros.com https://www.facebook.com/https://www.facebook.com/profile.php?id=100012157981279

Resolvido Re: Tempo online

Mensagem por skilledpt em 20/10/16, 12:53 pm

Obrigado desde ja pela resposta,

So mudei o nome do field porque no script diz que esse campo pode-se mudar. Mas agora tentei com o script tem mexer em nada dele e nao criou os campos de perfil na mesma..


Cumps,
avatar

skilledpt
Nível 4

Masculino
Inscrito dia : 17/10/2016
Mensagens : 33
Pontos Ativos : 67

http://lsteam.forumeiros.com

Resolvido Re: Tempo online

Mensagem por while em 20/10/16, 01:06 pm

Troque o script por este:

Código:
var elapsedTime = {
    autor: 'JScript'
    , version: '1.02202015-jq1.9.1'
    , codename: 'Narmer (Sheikh Muftah)'
    , fieldName: 'Tempo Online'
    , field_id: 0
    , fd_description: 'Will show how much time each member spends logged into the site.'
    , db_field: 0
    , db_content: ''
    , db_description: 'Database to store the data of the module elapsedTime!'
    , db_url: '/admin/index.forum?part=users_groups&sub=users&mode=avatar_profil2&extended_admin=1&tid='
    , response: ''
    , evalTextarea: 'jQuery(\'label:contains("elapsedTime_DB"), span:contains("elapsedTime_DB"), dt:contains("elapsedTime_DB")\', response).closest("dl, tr").find("textarea")'
    , db_default: {
        appInfo: {
            module: 'elapsedTime_DB'
            , description: 'Database to store the data of the module elapsedTime!'
            , author: 'JScript'
            , version: 'RC1 b'
            , release: '2015/02/18'
        }
        , userInfo: {
            isOnline: 1
            , dateOld: Number(new Date())
            , dateNow: Number(new Date())
            , dateSpent: ''
        }
    }
    , lInterval: 10
    , tTimeOut: 10000
    , checkTime: 30000
    , setLoop: 0
    , evalTID: 'jQuery(\'a[href*="tid="]\').attr("href").split("tid=")[1].split("&")[0]'
    , TID: 0
    , initialize: function () {
        $(window)
            .load(function () {
                return (!_userdata.session_logged_in) ? false : elapsedTime.setup()
            })
    }
    , setup: function () {
        elapsedTime.TID = eval(elapsedTime.evalTID);
        jQuery.get('/profile?mode=editprofile', function (response) {
                elapsedTime.response = eval(elapsedTime.evalTextarea);
                if ((!elapsedTime.response.length) && (_userdata.user_level == 1)) {
                    elapsedTime.async(false);
                    jQuery.post(elapsedTime.db_url + elapsedTime.TID, {
                            action: 'add_field'
                            , id: 0
                            , type: 0
                            , action: 'configuration_final'
                            , list_type_field: 2
                            , field_name: 'elapsedTime_DB'
                            , field_desc: elapsedTime.db_description + ' - Made by JScript, 2015/02/18'
                            , field_oblig: 0
                            , field_display_profil: 1
                            , list_field_type_view: 0
                            , list_auth_field_himself: 1
                            , list_field_view: 0
                            , list_separator: 0
                            , field_type_2_lng_max: 15000
                            , submit: 1
                            , field_type_11_max_before: 14
                            , field_type_11_max_after: 6
                        })
                        .done(function () {
                            jQuery.get('/profile?mode=editprofile', function (response) {
                                elapsedTime.response = eval(elapsedTime.evalTextarea)
                            })
                        });
                    jQuery.post(elapsedTime.db_url + elapsedTime.TID, {
                            action: 'add_field'
                            , id: 0
                            , type: 0
                            , action: 'configuration_final'
                            , list_type_field: 13
                            , field_name: elapsedTime.fieldName
                            , field_desc: elapsedTime.fd_description + ' - Made by JScript, 2015/02/18'
                            , field_oblig: 0
                            , field_display_message: 1
                            , field_display_profil: 1
                            , list_field_type_view: 0
                            , list_auth_field_himself: 1
                            , list_field_view: -1
                            , list_separator: 1
                            , field_type_2_lng_max: 15000
                            , submit: 1
                            , field_type_11_max_before: 14
                            , field_type_11_max_after: 6
                        })
                        .done(function (e) {});
                    elapsedTime.async(true)
                }
                if (!elapsedTime.response.length) {
                    return false
                }
                elapsedTime.db_field = elapsedTime.response.attr('id');
                if (elapsedTime.response.val()
                    .length) {
                    elapsedTime.db_content = JSON.parse(elapsedTime.response.val()
                        .replace(/'/g, '"'))
                }
                if ((!elapsedTime.response.val()
                        .length) || (!elapsedTime.db_content.userInfo.isOnline)) {
                    elapsedTime.db_content = elapsedTime.db_default;
                    elapsedTime.async(false);
                    elapsedTime.dataSave(elapsedTime.db_field, JSON.stringify(elapsedTime.db_content)
                        .replace(/"/g, "'"));
                    elapsedTime.async(true);
                    elapsedTime.updateTime()
                }
                if (document.getElementById('fa_welcome') !== null) {
                    jQuery('a[href$="logout=1"]')
                        .attr('href', jQuery('#logout')
                            .attr('href'))
                }
                jQuery('a[href*="logout=1"]')
                    .click(function (event) {
                        elapsedTime.TID = eval(elapsedTime.evalTID);
                        elapsedTime.db_content.userInfo.isOnline = 0;
                        elapsedTime.async(false);
                        elapsedTime.dataSave(elapsedTime.db_field, JSON.stringify(elapsedTime.db_content)
                            .replace(/"/g, "'"));
                        elapsedTime.async(true)
                    });
                setTimeout(function () {
                    setInterval(function () {
                        elapsedTime.updateTime()
                    }, elapsedTime.checkTime)
                }, elapsedTime.tTimeOut)
            })
            .fail(function (e) {
                console.log(e)
            })
    }
    , async: function (mode) {
        jQuery.ajaxSetup({
            async: mode
        })
    }
    , dataSave: function (field, content) {
        jQuery.post("/ajax_profile.forum?jsoncallback=?", {
                id: field.split("_")[3]
                , user: _userdata.user_id
                , active: "1"
                , content: '[["' + field + '", "' + content + '"]]'
                , tid: elapsedTime.TID
            }, function (data) {}, "json")
            .fail(function (e) {
                console.log(e)
            })
    }
    , updateTime: function () {
        elapsedTime.TID = eval(elapsedTime.evalTID);
        jQuery.get('/profile?mode=editprofile', function (response) {
                elapsedTime.response = jQuery('label:contains("' + elapsedTime.fieldName + '"), span:contains("' + elapsedTime.fieldName + '"), dt:contains("' + elapsedTime.fieldName + '")', response)
                    .closest('dl, tr')
                    .find('input');
                elapsedTime.field_id = elapsedTime.response.attr('id');
                if (elapsedTime.response.length) {
                    elapsedTime.response = eval(elapsedTime.evalTextarea);
                    elapsedTime.db_content = JSON.parse(elapsedTime.response.val()
                        .replace(/'/g, '"'));
                    elapsedTime.dataSave(elapsedTime.field_id, elapsedTime.getTime(elapsedTime.db_content.userInfo.dateOld))
                }
            })
            .fail(function (e) {
                console.log(e)
            })
    }
    , getTime: function (date_old, date_now) {
        date_old = date_old || new Date();
        date_now = date_now || new Date();
        date_old = new Date(date_old);
        date_now = new Date(date_now);
        var seconds = Math.floor((date_now - (date_old)) / 1000)
            , minutes = Math.floor(seconds / 60)
            , hours = Math.floor(minutes / 60)
            , days = Math.floor(hours / 24);
        hours = hours - (days * 24);
        minutes = minutes - (days * 24 * 60) - (hours * 60);
        seconds = seconds - (days * 24 * 60 * 60) - (hours * 60 * 60) - (minutes * 60);
        return ((days) ? days + "d " : "") + ((hours) ? hours + "h " : "") + ((minutes) ? minutes + "m " : "") + ((seconds) ? seconds + "s " : "")
    }
};
elapsedTime.initialize();

veja se resulta agora.
Até mais.
avatar

while
Hiperativo

Masculino
Inscrito dia : 24/04/2016
Mensagens : 3105
Pontos Ativos : 4499

http://www.ajuda.forumeiros.com https://www.facebook.com/https://www.facebook.com/profile.php?id=100012157981279

Resolvido Re: Tempo online

Mensagem por skilledpt em 20/10/16, 01:36 pm

Fiz o que disse mas ainda nao aconteceu nada..
avatar

skilledpt
Nível 4

Masculino
Inscrito dia : 17/10/2016
Mensagens : 33
Pontos Ativos : 67

http://lsteam.forumeiros.com

Resolvido Re: Tempo online

Mensagem por skilledpt em 23/10/16, 11:39 am

up por ajuda
avatar

skilledpt
Nível 4

Masculino
Inscrito dia : 17/10/2016
Mensagens : 33
Pontos Ativos : 67

http://lsteam.forumeiros.com

Resolvido Re: Tempo online

Mensagem por Shek em 23/10/16, 12:06 pm

Olá!

Os códigos dos tutoriais do Javascript funcionam com os templates padrão dos fóruns. Ou seja, o seu template/tema não é o padrão ou aplicado via Histkin, e por isso não funciona.

Lamento.


ShekAdmineiro - Fórum dos Fóruns
Clicar no botão ou no OBRIGADO não mata ninguém!
avatar

Shek
Admineiro
Admineiro

Masculino
Inscrito dia : 11/04/2009
Mensagens : 16484
Pontos Ativos : 20865

http://www.shiftactif.com https://www.facebook.com/shek.crowley https://twitter.com/shek_forumactif

Resolvido Re: Tempo online

Mensagem por skilledpt em 23/10/16, 12:25 pm

Obrigado pela resposa. Existe algum codigo parecido que posso usar no meu forum?
avatar

skilledpt
Nível 4

Masculino
Inscrito dia : 17/10/2016
Mensagens : 33
Pontos Ativos : 67

http://lsteam.forumeiros.com

Resolvido Re: Tempo online

Mensagem por Shek em 23/10/16, 12:30 pm

Que conheço, não... Triste


ShekAdmineiro - Fórum dos Fóruns
Clicar no botão ou no OBRIGADO não mata ninguém!
avatar

Shek
Admineiro
Admineiro

Masculino
Inscrito dia : 11/04/2009
Mensagens : 16484
Pontos Ativos : 20865

http://www.shiftactif.com https://www.facebook.com/shek.crowley https://twitter.com/shek_forumactif

Resolvido Re: Tempo online

Mensagem por skilledpt em 23/10/16, 12:32 pm

Ok, obrigado pelo esclarecimento, pode fechar.
avatar

skilledpt
Nível 4

Masculino
Inscrito dia : 17/10/2016
Mensagens : 33
Pontos Ativos : 67

http://lsteam.forumeiros.com

Resolvido Re: Tempo online

Mensagem por Shek em 23/10/16, 01:25 pm

Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada.

Tópico marcado como Resolvido e movido para "Questões resolvidas".


ShekAdmineiro - Fórum dos Fóruns
Clicar no botão ou no OBRIGADO não mata ninguém!
avatar

Shek
Admineiro
Admineiro

Masculino
Inscrito dia : 11/04/2009
Mensagens : 16484
Pontos Ativos : 20865

http://www.shiftactif.com https://www.facebook.com/shek.crowley https://twitter.com/shek_forumactif

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum