Ελληνική Κοινότητα Υποστήριξης ForumGreek
Καλωσήρθατε στο Ελληνικό Φόρουμ Υποστήριξης της ForumGreek!!

Για να αποκτήσετε πλήρη πρόσβαση στο φόρουμ και στα όσα προσφέρει, μπορείτε πολύ απλά να κάνετε μια σύνδεση ή αν δεν έχετε λογαριασμό μία δωρεάν εγγραφή και μπείτε στην κοινότητά μας!!

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

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

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

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

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


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

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

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

Επιστροφή στην κορυφή Πήγαινε κάτω

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

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

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

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

και πατάς

Τίτλος: 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();

και πατάς

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

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






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

Διαχειριστής

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

Επιστροφή στην κορυφή Πήγαινε κάτω

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

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

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

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

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

Επιστροφή στην κορυφή Πήγαινε κάτω

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

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

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






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

Διαχειριστής

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

Επιστροφή στην κορυφή Πήγαινε κάτω

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


 
Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης
Χρειάζεστε βοήθεια;
Στις Συχνές Ερωτήσεις μπορείτε να βρείτε σημαντικές πληροφορίες που θα σας βοηθήσουν!