Der Code des Moduls
PHP-Code:
<?php
/**
* @version $Id: mod_whosonline.php 445 2005-10-11 03:37:23Z stingrey $
* @package Joomla
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
$showmode = $params->get( 'showmode' );
$content = '';
if ($showmode==0 || $showmode==2) {
$query = "SELECT COUNT( session_id ) AS guest_online"
. "\n FROM #__session"
. "\n WHERE guest = 1"
. "\n AND ( usertype is NULL OR usertype = '' )";
$database->setQuery( $query );
$guest_array = $database->loadResult();
$query = "SELECT COUNT( DISTINCT( username ) ) AS user_online"
. "\n FROM #__session"
. "\n WHERE guest = 0"
;
$database->setQuery( $query );
$user_array = $database->loadResult();
if ($guest_array != 0 && $user_array==0) {
if ($guest_array==1) {
$content.=_WE_HAVE;
$content.=_GUEST_COUNT;
$content.=_ONLINE;
eval ("\$content = \"$content\";");
} else {
$content.=_WE_HAVE;
$content.=_GUESTS_COUNT;
$content.=_ONLINE;
eval ("\$content = \"$content\";");
}
}
if ($guest_array==0 && $user_array != 0) {
if ($user_array==1) {
$content.=_WE_HAVE;
$content.=_MEMBER_COUNT;
$content.=_ONLINE;
eval ("\$content = \"$content\";");
} else {
$content.=_WE_HAVE;
$content.=_MEMBERS_COUNT;
$content.=_ONLINE;
eval ("\$content = \"$content\";");
}
}
if ($guest_array != 0 && $user_array != 0) {
if ($guest_array==1) {
$content.=_WE_HAVE;
$content.=_GUEST_COUNT;
$content.=_AND;
eval ("\$content = \"$content\";");
} else {
$content.=_WE_HAVE;
$content.=_GUESTS_COUNT;
$content.=_ONLINE;
$content.=_AND;
eval ("\$content = \"$content\";");
}
if ($user_array==1) {
$content.=_MEMBER_COUNT;
$content.=_ONLINE;
eval ("\$content = \"$content\";");
} else {
$content.=_MEMBERS_COUNT;
$content.=_ONLINE;
eval ("\$content = \"$content\";");
}
}
}
if ($showmode==1 || $showmode==2) {
$query = "SELECT DISTINCT a.username"
."\n FROM #__session AS a"
."\n WHERE a.guest = 0"
;
$database->setQuery($query);
$rows = $database->loadObjectList();
foreach($rows as $row) {
$content .= "<ul>\n";
$content .= "<li><strong>" . $row->username . "</strong></li>\n";
$content .= "</ul>\n";
}
if ( !$content ) {
echo _NONE ."\n";
}
}
?>
Und hier ein übersicht über die PHP Version:
PHP built On: Linux h4657 2.4.25 #3 SMP Sun Apr 4 19:32:54 CEST 2004 i686
Database Version: 4.0.15
PHP Version: 4.3.3
Web Server: Apache/2.0.48 (Linux/SuSE)
WebServer to PHP interface: apache2handler
Joomla! Version: Joomla! 1.0.3 Stable [ Sunlight ] 14-Oct-2005 10:00 UTC
User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6
Relevant PHP Settings:
Safe Mode: OFF
...
Display Errors: ON
Short Open Tags: ON
File Uploads: ON
Magic Quotes: ON
Register Globals: ON
Output Buffering: OFF
Session save path: /tmp
Session auto start: 0
XML enabled: Yes
Zlib enabled: Yes
Disabled Functions: none
WYSIWYG Editor: No WYSIWYG Editor
Du sagtest das das Problem bekannt sei, wurde es auch schon gelöst? Auf dem selben Server läuft zudem über eine andere Domain Mambo, wo dieses Modul ohne probleme läuft. Sehr merkwürdig das ganze...
Wie man im Quellcode sieht werden alle fälle durchgegangen, also wenn das user_array leer ist oder das guests_array .. oder wenn eins von beiden gefüllt ist mit werten oder beide.. daher kann ich mir den fehler nich erklären ... was ich versuche ist jetzt mal nen alert mit javascript einzubaun um zu gucken ob er diese fälle abhandelt.
Es könnte auch an der Sprachübersetzung der Joomla 1.0.3 liegen - ich werde dies auch direkt überprüfen
*nachtrag*: an der sprachdatei liegt es nicht.
*nachtrag*: ich habe jetzt mal mit
PHP-Code:
print_r($user_array);
echo "<br/>---------<br/>";
print_r($guest_array);
echo "<br/>";
mir den Inhalt der Arrays ausgeben lassen, jedoch versteh ich die werte nicht ganz und es wird auch nicht, wenn ich mich angemeldet hab im user bereich irgendwas hinzugezählt Oo...
Ich hab doch nix an dem modul verändert ...
Lesezeichen