Page 1 of 2
[opgelost]Foutmelding utd tag
Posted: Wed Oct 31, 2012 5:13 pm
by sef
Hallo jongens,
Ik heb een utd deze is gemaakt door Joost de Bruijn die mij moet tonen hoeveel leden en gasten er online zijn,maar als ik de utd uitvoer krijg ik een foutmelding.
Ik krijg dan deze melding.(Fatal error: Call to a member function Execute() on a non-object in /home/naam/domains/heldensehofzangers.nl/public_html/lib/classes/class.usertagoperations.inc.php(265) : eval()'d code on line 32)
Ik heb de utd via het forum gevonden ik krijg die fout als ik op de knop uitvoeren klik van de UTD.
Code: Select all
global $gCms;
$config = $gCms->config;
$feusers = &$gCms->modules['FrontEndUsers']['object'];
if($feusers)
{
$uid = $feusers->LoggedInID();
$username = $feusers->LoggedInName();
$count=0;
}
if(empty($params['minutes'])) $params['minutes'] = 10;
$t = time() - ($params['minutes'] * 60);
if(empty($params['pageid'])) $params['pageid'] = $gCms->variables['content_id'];
if(empty($params['separator'])) $params['separator'] = ', ';
if( empty($params['viewloggedonly']) || ($params['viewloggedonly'] == '0') ) $params['viewloggedonly'] = false;
else $params['viewloggedonly'] = true;
if( ($params['viewloggedonly']) && (!isset($username) || ($username == '')) )
return;
$result = array();
$db = &$gCms->db;
$q = "SELECT t1.userid, t2.username FROM " . cms_db_prefix() . "module_feusers_loggedin t1
INNER JOIN " . cms_db_prefix() . "module_feusers_users t2 ON t1.userid=t2.id
WHERE t1.lastused >= ?";
$dbresult = $db->Execute( $q, array($t));
if($dbresult && $dbresult->RecordCount() > 0)
{
while ( $row = $dbresult->FetchRow() )
{
$result[] = array($row['userid'] ,$row['username']);
$count=+1;
}
}
echo ($count);
Wie kan mij helpen met dit probleem.
Re: Foutmelding utd tag
Posted: Thu Nov 01, 2012 11:22 pm
by mcDavid
als je de eerste regel vervangt door $gCms = cmsms(); ben je volgens mij een heel eind.
Re: Foutmelding utd tag
Posted: Thu Nov 01, 2012 11:50 pm
by sef
@mcDavid helaas dat mocht niet helpen krijg nog steeds de foutmelding als ik de utd uitvoer.
Re: Foutmelding utd tag
Posted: Fri Nov 02, 2012 1:04 pm
by velden
Het lijkt me dat het het niet gelukt is om het CMSMS database object te 'verkrijgen' (regel 28: $db = &$gCms->db;)
Misschien is het wel van belang voor deze post om even je versie van CMSMS te vermelden. Wellicht dat er wat veranderd is in de tussentijd waardoor dit iets anders aangepakt moet worden.
Re: Foutmelding utd tag
Posted: Fri Nov 02, 2012 1:48 pm
by Rolf
Probeer eens:
Code: Select all
$config = cmsms()->config;
$feusers = cmsms()->modules['FrontEndUsers']['object'];
if($feusers)
{
$uid = $feusers->LoggedInID();
$username = $feusers->LoggedInName();
$count=0;
}
if(empty($params['minutes'])) $params['minutes'] = 10;
$t = time() - ($params['minutes'] * 60);
if(empty($params['pageid'])) $params['pageid'] = cmsms()->variables['content_id'];
if(empty($params['separator'])) $params['separator'] = ', ';
if( empty($params['viewloggedonly']) || ($params['viewloggedonly'] == '0') ) $params['viewloggedonly'] = false;
else $params['viewloggedonly'] = true;
if( ($params['viewloggedonly']) && (!isset($username) || ($username == '')) )
return;
$result = array();
$db =& cmsms()->GetDb();
$q = "SELECT t1.userid, t2.username FROM " . cms_db_prefix() . "module_feusers_loggedin t1
INNER JOIN " . cms_db_prefix() . "module_feusers_users t2 ON t1.userid=t2.id
WHERE t1.lastused >= ?";
$dbresult = $db->Execute( $q, array($t));
if($dbresult && $dbresult->RecordCount() > 0)
{
while ( $row = $dbresult->FetchRow() )
{
$result[] = array($row['userid'] ,$row['username']);
$count=+1;
}
}
echo ($count);
Re: Foutmelding utd tag
Posted: Fri Nov 02, 2012 4:27 pm
by sef
@mcDavid mijn versie van cmsms is 1.11.2 isabella
@Rolf ik ga het proberen en hou je op de hoogte van het resultaat.
Re: Foutmelding utd tag
Posted: Fri Nov 02, 2012 5:52 pm
by Jos
velden wrote:Het lijkt me dat het het niet gelukt is om het CMSMS database object te 'verkrijgen' (regel 28: $db = &$gCms->db;)
klopt, dat is gewijzigd naar: $db = cmsms()->GetDB();
zoals Rolf ook al in zijn post verwerkt heeft
Re: Foutmelding utd tag
Posted: Fri Nov 02, 2012 7:00 pm
by sef
@Rolf ik heb het veranderd nu krijg ik wel te zien dat er een lid online is maar zonder de naam van het lid als ik inlog.En volgens mij staat in het script toch dat het ook de naam moet weer geven of zie ik dat verkeerd.
Re: Foutmelding utd tag
Posted: Fri Nov 02, 2012 7:14 pm
by velden
Code: Select all
$result[] = array($row['userid'] ,$row['username']);
$count=+1;
}
}
echo ($count);
Volgens mij staat hier dat de array $result wordt gevuld met wederom arrays met userid en username. Tevens wordt de variabele $count telkens met één opgehoogd.
Tenslotte wordt met 'echo ($count)' het aantal gevonden users weergegeven.
De inhoud van $result wordt echter niet getoond, maar dat zou je zelf kunnen programmeren natuurlijk.
Re: Foutmelding utd tag
Posted: Fri Nov 02, 2012 8:35 pm
by deactivated010521
----------
Re: Foutmelding utd tag
Posted: Sat Nov 03, 2012 6:12 pm
by sef
@Rolf ik heb jou script gebruikt als ik dan inlog komt er onder aan de pag te staan 1 maar als er meerdere leden online zijn dan telt hij ze niet dus geen 2 of 3 maar gewoon 1 .
Enig idee waarom hij dat doet.
Re: Foutmelding utd tag
Posted: Sun Nov 04, 2012 4:01 pm
by velden
Ik ken de notatie ' =+1' niet als incrementor.
Probeer eens '$count += 1' (plus en = omgedraaid dus)
Re: Foutmelding utd tag
Posted: Mon Nov 05, 2012 6:32 pm
by sef
@velden bedankt voor de tip nu telt hij wel op .
Re: [opgelost]Foutmelding utd tag
Posted: Tue Nov 06, 2012 1:36 pm
by sef
@Rolf ik heb de code nu aangepast met een code die ik hier heb gevonden en nu zie je ook wie online is van de leden hier de code die ik gevonden hebt in het forum
http://forum.cmsmadesimple.org/viewtopi ... ne#p209255
Code: Select all
$config = cmsms()->config;
$feusers = cmsms()->modules['FrontEndUsers']['object'];
if($feusers)
{
$uid = $feusers->LoggedInID();
$username = $feusers->LoggedInName();
$count=0;
}
if(empty($params['minutes'])) $params['minutes'] = 10;
$t = time() - ($params['minutes'] * 60);
if(empty($params['pageid'])) $params['pageid'] = $gCms->variables['content_id'];
if(empty($params['separator'])) $params['separator'] = ', ';
if( empty($params['viewloggedonly']) || ($params['viewloggedonly'] == '0') ) $params['viewloggedonly'] = false;
else $params['viewloggedonly'] = true;
if( ($params['viewloggedonly']) && (!isset($username) || ($username == '')) )
return;
$result = array();
$db = cmsms()->GetDB();
$q = "SELECT t1.userid, t2.username FROM " . cms_db_prefix() . "module_feusers_loggedin t1
INNER JOIN " . cms_db_prefix() . "module_feusers_users t2 ON t1.userid=t2.id
WHERE t1.lastused >= ?";
$dbresult = $db->Execute( $q, array($t));
if($dbresult && $dbresult->RecordCount() > 0)
{
while ( $row = $dbresult->FetchRow() )
{
$result[] = array($row['userid'] ,$row['username']);
}
}
echo ($count);
echo"<div class=\"whoOnline\">";
if (isset($username) && ($username!= '')){
echo"<h3></h3>";
$links = array();
foreach($result as $link)
$links[]='<a href="users/'.$link[0].'/120/'.$link[1].'.html">'.$link[1].'</a>';
echo implode(", ", $links);
}elseif(!isset($username)|($username== '')){
echo"<h3>Online?</h3>";
$links = array();
foreach($result as $link)
$links[]=''.$link[1].'';
echo implode(", ", $links);
}
echo "</div>";
Nu nog kijken hoe ik het voor elkaar krijg dat het ook gasten online telt .
Thanx allemaal voor het meedenken
Re: [opgelost]Foutmelding utd tag
Posted: Tue Nov 06, 2012 1:44 pm
by velden
Count wordt nu niet meer opgeteld volgens mij. Wordt initieel op 0 gezet en later ge-echo-t. Maar ik zie nergens meer een optelling plaatsvinden.