[opgelost]Foutmelding utd tag

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

User avatar
sef
Forum Members
Forum Members
Posts: 28
Joined: Wed May 26, 2010 6:59 pm
Location: Helden

[opgelost]Foutmelding utd tag

Post 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.
Last edited by sef on Mon Nov 05, 2012 6:34 pm, edited 1 time in total.
mcDavid
Power Poster
Power Poster
Posts: 377
Joined: Tue Mar 31, 2009 8:45 pm
Location: Delft, Netherlands

Re: Foutmelding utd tag

Post by mcDavid »

als je de eerste regel vervangt door $gCms = cmsms(); ben je volgens mij een heel eind.
User avatar
sef
Forum Members
Forum Members
Posts: 28
Joined: Wed May 26, 2010 6:59 pm
Location: Helden

Re: Foutmelding utd tag

Post by sef »

@mcDavid helaas dat mocht niet helpen krijg nog steeds de foutmelding als ik de utd uitvoer.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Foutmelding utd tag

Post 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.
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Foutmelding utd tag

Post 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);
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
sef
Forum Members
Forum Members
Posts: 28
Joined: Wed May 26, 2010 6:59 pm
Location: Helden

Re: Foutmelding utd tag

Post 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.
Jos
Support Guru
Support Guru
Posts: 4017
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Foutmelding utd tag

Post 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
User avatar
sef
Forum Members
Forum Members
Posts: 28
Joined: Wed May 26, 2010 6:59 pm
Location: Helden

Re: Foutmelding utd tag

Post 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.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Foutmelding utd tag

Post 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.
deactivated010521

Re: Foutmelding utd tag

Post by deactivated010521 »

----------
Last edited by deactivated010521 on Tue Mar 12, 2013 3:00 pm, edited 1 time in total.
User avatar
sef
Forum Members
Forum Members
Posts: 28
Joined: Wed May 26, 2010 6:59 pm
Location: Helden

Re: Foutmelding utd tag

Post 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.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Foutmelding utd tag

Post by velden »

Ik ken de notatie ' =+1' niet als incrementor.

Probeer eens '$count += 1' (plus en = omgedraaid dus)
User avatar
sef
Forum Members
Forum Members
Posts: 28
Joined: Wed May 26, 2010 6:59 pm
Location: Helden

Re: Foutmelding utd tag

Post by sef »

@velden bedankt voor de tip nu telt hij wel op .
User avatar
sef
Forum Members
Forum Members
Posts: 28
Joined: Wed May 26, 2010 6:59 pm
Location: Helden

Re: [opgelost]Foutmelding utd tag

Post 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
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: [opgelost]Foutmelding utd tag

Post 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.
Post Reply

Return to “Dutch - Nederlands”