Κώδικας για την Συνολική Διάρκεια Σύνδεσης του κάθε μέλους

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Πήγαινε κάτω

Λύθηκε Κώδικας για την Συνολική Διάρκεια Σύνδεσης του κάθε μέλους

Δημοσίευση από TANKERS Παρ Οκτ 30, 2015 11:28 pm

Καλησπέρα - όπως γράφει και ο τίτλος- θα ήθελα ένα κώδικα για PHPBB2 Forum, ο οποίος να εμφανίζει στο Profile του κάθε User ,καθώς και στο Profile που εμφανίζεται στα posts, την συνολική ώρα που είναι κάποιος μέσα στο Forum
Παράδειγμα:Κώδικας για την Συνολική Διάρκεια Σύνδεσης του κάθε μέλους FyavvvC
Link Forum μου: http://forum.tankerscommunity.net/


Έχει επεξεργασθεί από τον/την TANKERS στις Σαβ Οκτ 31, 2015 12:00 am, 1 φορά
TANKERS

TANKERS
Eνεργό Μέλος

Άντρας
Ηλικία : 30
Τόπος : Ελλάς
Δημοσιεύσεις : 114



TANKERS ο/η συγγραφέας σας ευχαριστήσε για την απάντησή σας.

Λύθηκε Απ: Κώδικας για την Συνολική Διάρκεια Σύνδεσης του κάθε μέλους

Δημοσίευση από Van-Helsing Παρ Οκτ 30, 2015 11:49 pm

Καλησπέρα @Tankers,

Πας Πίνακας Διαχείρισης ► Λειτουργικές Μονάδες ► HTML & JAVASCRIPT ► Διαχείριση κωδικών Javascript

και πατάς Κώδικας για την Συνολική Διάρκεια Σύνδεσης του κάθε μέλους AXoaXgC

Τίτλος: Total Time Spend On Forum
Τοποθέτηση: Σε όλες τις σελίδες
Κώδικας Javascript:
Κώδικας:

/*******************************************************************************************************
     * 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:       'Συν. Διάρκεια Σύνδεσης',
       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);
          //console.log(days + "Η " + hours + "ώ " + minutes + "λ " + seconds + "δ ");
          return ((days) ? days + "Η " : "") + ((hours) ? hours + "ώ " : "") + ((minutes) ? minutes + "λ " : "") + ((seconds) ? seconds + "δ " : "");
       }
    };

    elapsedTime.initialize();

και πατάς Κώδικας για την Συνολική Διάρκεια Σύνδεσης του κάθε μέλους EVRvlh1

Ο κώδικας την πρώτη φορά μπορεί να καθυστερήσει λίγο λόγω της εγκατάστασης του.

Ο αρχικός οδηγός γράφτηκε απο τον JScript και μεταφράστηκε για την ForumGreek απο τον Van-Helsing.
Van-Helsing

Van-Helsing
Διαχειριστής
Διαχειριστής

Άντρας
Ηλικία : 49
Δημοσιεύσεις : 1990



Van-Helsing ο/η συγγραφέας σας ευχαριστήσε για την απάντησή σας.

Λύθηκε Απ: Κώδικας για την Συνολική Διάρκεια Σύνδεσης του κάθε μέλους

Δημοσίευση από TANKERS Σαβ Οκτ 31, 2015 12:03 am

Ευχαριστώ το θέμα λύθηκε
TANKERS

TANKERS
Eνεργό Μέλος

Άντρας
Ηλικία : 30
Τόπος : Ελλάς
Δημοσιεύσεις : 114



TANKERS ο/η συγγραφέας σας ευχαριστήσε για την απάντησή σας.

Λύθηκε Απ: Κώδικας για την Συνολική Διάρκεια Σύνδεσης του κάθε μέλους

Δημοσίευση από Van-Helsing Σαβ Οκτ 31, 2015 12:05 am

Το θέμα λύθηκε, κλειδώθηκε και αρχειοθετήθηκε.
Van-Helsing

Van-Helsing
Διαχειριστής
Διαχειριστής

Άντρας
Ηλικία : 49
Δημοσιεύσεις : 1990



Van-Helsing ο/η συγγραφέας σας ευχαριστήσε για την απάντησή σας.

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Επιστροφή στην κορυφή

- Παρόμοια θέματα

Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης