Online User

BergR képe

Sziasztok nekem 1 olyan modul kellene ami egy blockban kiírja, hogy összesen hány látogató van a webhelyen. Nem egy adott oldalon, hanem a webhely összes látogatója mennyi.

Köszönöm a válaszokat.

Fórum: 
LaciApu képe

Adminisztráció / webhely építés / Blokkok
Itt van egy online felhasználók blokk csak be kell kapcsolni.

0
0
BergR képe

Igen erről tudok. De nekem olyan kellene, ami nem írja ki külön, hogy bejelentkezet felhasználó meg ilyesmi! És azt vettem észre, de lehet, hogy tévedek de az a modul csak azt írja ki, hogy azt az oldalt éppen hányan nézik, Nekem pedig olyan kellene ami az egész webhely jelenlegi látogatóját írja ki, függetlenül attól, hogy bejelentkezett-e vagy sem!

Pl.:

Jelenlévő látogatók: 120

Nekem csak ennyire lenne szükségem.

Kösz.

0
0
LaciApu képe

Ez nem igaz! Csak a user modulból kivettem és átírtam a szükséges részeket.
A modul neve newuser. Csinálj neki egy könyvtárat a szokott helyen és tedd bele az info és a module fájlt.
Az info fájl tartalma:
; $Id: newuser.info v1.0 2008.08.27 $
name = "New User"
description = "Online felhasználók számát írja ki"
core = 6.x

A module fájl tartalma:

/**
 * Implementation of hook_block().
 */
function newuser_block($op = 'list', $delta = 0, $edit = array()) {
  global $user;
 
  if ($op == 'list') {
    // Too dynamic to cache.
    $blocks[0]['info'] = t('Who\'s online');
    $blocks[0]['cache'] = BLOCK_NO_CACHE;
    return $blocks;
  }
  else if ($op == 'view') {
    $block = array();
 
    if (user_access('access content')) {
      // Count users active within the defined period.
      $interval = time() - 900;
 
      // Perform database queries to gather online user lists.  We use s.timestamp
      // rather than u.access because it is much faster.
      $anonymous_count = sess_count($interval);
      $authenticated_users = db_query('SELECT DISTINCT u.uid, u.name, s.timestamp FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.timestamp >= %d AND s.uid > 0 ORDER BY s.timestamp DESC', $interval);
      $authenticated_count = db_affected_rows($authenticated_users);
      $full_count = $authenticated_count + $anonymous_count;
 
      // Format the output with proper grammar.
      $output = 'Jelenleg ' . $full_count . ' felhasználó van a webhelyen.';
 
 
      $block['subject'] = t('Who\'s online');
      $block['content'] = $output;
    }
    return $block;
  }
}
 
Mielőtt éles oldalra teszed, teszteld, mert csak sietve ütöttem össze munka közben (és nem ez a munkám).
0
0
BergR képe

Megcsináltam amit kértél de nekem nem működik, tuti én vagyok a béna!

newuser.info
newuser.modul

newuser mappában a /modules mappába felmásoltam de a modullistában sajnos nekem nem szereplt, nem tudtam engedélyezni sem:(

De a drupal.org-on találtam ezt.:

<?php
// Count users with activity in the past defined period.
$interval = time() - 900;
 
// Perform database queries to gather online user lists.  We use s.timestamp
// rather than u.access because it is much faster is much faster..
$anonymous_count = sess_count($interval);
$authenticated_users = db_query('SELECT u.uid, u.name FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.timestamp >= %d AND s.uid > 0 ORDER BY s.timestamp DESC', $interval);
$authenticated_count = db_num_rows($authenticated_users);
 
// Format the output with proper grammar.
if ($anonymous_count == 1 && $authenticated_count == 1) {
  $output = t('There is currently %members and %visitors online.', array('%members' => format_plural($authenticated_count, '1 user', '@count users'), '%visitors' => format_plural($anonymous_count, '1 guest', '@count guests')));
}
else {
  $output = t('There are currently %members and %visitors online.', array('%members' => format_plural($authenticated_count, '1 user', '@count users'), '%visitors' => format_plural($anonymous_count, '1 guest', '@count guests')));
}
 
echo $output;
?>

Ezt 1 blokkba téve egészen szépen működik

Pont olyan mint a felhasználó blokk csak ez valóban az egész webhely jelenlévőit mutatja és nem csak az aktuális oldalét!

Azért nagyon szépen köszönöm, hogy próbáltál segíteni!!!

0
0
Dzsozef képe

Pontosabban hova kell tenni ezt a modult, melyik blokba?

0
0
crt képe

Szia.

Készítesz egy új blokkot aminek a tartalma a fenti kód lesz, a beviteli formát php-re állítod és engedélyezed a megfelelő régióba.

Üdv: Zoli

0
0
crt képe

Szia.

A 'newuser.modul' elírás, vagy így próbáltad a 'newuser.module' helyett? Esetleg jogosultsági probléma?

Üdv: Zoli

0
0
LaciApu képe

A különbség csak annyi, hogy én összeadtam a regisztrált és a regisztrálatlan felhasználókat (ahogy kérted) és egyszerűsítettem a kiíratást.

A fájlok helyeit pontosítom, mert lehet, hogy azért nem működöt neked.
Tehát:
./sites/all/modules/newuser/newuser.info
és
./sites/all/modules/newuser/newuser.module

Azt hittem ez egyértelmű, ezért nem írtam le pontosan. Bocs.

0
0
BergR képe

Pontosan oda tettem! De sajnos nem jelent meg a modul listában és engedélyezni sem tudtam!

0
0
dióhéj képe

ez nagyon klassz és milyen egyszerű, igazán köszönet, hogy ideírtad, pont ezt akartam és félórás keresgélés után rábukkantam :-)

0
0