Login  |  Register
HTML5 Icon HTML5 Icon HTML5 Icon
TP on Social Media

Recent

Welcome, Guest. Please login or register.
Did you miss your activation email?

August 12, 2022, 07:02:22 AM

Login with username, password and session length
Members
  • Total Members: 3842
  • Latest: Kokoro
Stats
  • Total Posts: 193479
  • Total Topics: 21088
  • Online today: 50
  • Online ever: 1035
  • (November 26, 2020, 04:45:12 AM)
Users Online
Users: 0
Guests: 41
Total: 41

Author Topic: Possible to create Who's Chatting TP module for Integrated Ajax Chat?  (Read 14995 times)

0 Members and 1 Guest are viewing this topic.

Offline Greater Realms

  • Jr. Member
  • **
  • Posts: 11
    • GreaterRealms
Thank you for helping test/trying too, Lesmond! I'm afraid that if it weren't for hard working people who make mods and ad ons like TP I wouldn't get anywhere  :uglystupid2:

Your code gives me the same error you are getting as well!

Offline IchBin

  • Friends
  • *
  • Posts: 16231
Greater Realms, SSI.php is already include in the TP code somewhere, so there's no need to include the file. You should be able to remove the include line.

Les, if it's in index.template.php for you (weird lol), then you should also be able to remove the include. Since index.template.php is included already in the process.

Offline Greater Realms

  • Jr. Member
  • **
  • Posts: 11
    • GreaterRealms

I am sort of going cross eyed at the moment.

Quote
Greater Realms, SSI.php is already include in the TP code somewhere, so there's no need to include the file. You should be able to remove the include line.

Does...that mean I don't need to use require_once($sourcedir . '/somefile.php');? I am so sorry for being this dense.  :uglystupid2:

Edited # 2: Had an error with Ajax chat, crisis averted. Still too dense to figure out how to place a Who's chatting. May need more coffee  O0


Offline Lesmond

  • Do what you have to!
  • Administrator
  • *
  • Posts: 3169
    • Tiny Pix... Free Image Hosting and Sharing.
Les, if it's in index.template.php for you (weird lol), then you should also be able to remove the include. Since index.template.php is included already in the process.
Brad the mod adds that bit to index.template.php
Please don't PM me for support without an invitation.


Offline IchBin

  • Friends
  • *
  • Posts: 16231
What I'm telling you Greater Realms, is that TinyPortal already uses things from the SSI.php file. So the file is already included for every page that you open in the forum because TP is already including it in it's own code. There's no need to include a file that is already included. In other words, you do not need that single line of code.

According to the mod instructions on the SMF mod site located here:
http://custom.simplemachines.org/mods/index.php?action=parse;mod=1319;attach=138620;smf_version=2.0_RC3

The chatOnlineUsers() function is actually in the Load.php file. So I'm guessing you guys have an old version of the mod or something. The function might be called in the index.template.php file Les, but the actual function is not declared in that file. It's either that, or you guys are not searching for the right function name.

Let me know if the code works without the include (require_once) line.

Offline Greater Realms

  • Jr. Member
  • **
  • Posts: 11
    • GreaterRealms
Thank you. That's what I was asking you so I could be clear.

I am not using the mod. I am sorry if I was not clear. I am using a version directly from the actual Ajax Chat creators site integrated for SMF found here: http://frug.github.io/AJAX-Chat/ because it is kept updated while the actual SMF mod offered on the SMF forums is not

The code did not work before you suggested the include, still doesn't work without it and it still gives me the same error:

Quote
Fatal error: Call to undefined function chatOnlineUsers() in /home/bariguy/gr.2phatgeeks.com/Sources/Load.php(2151) : eval()'d code(127) : eval()'d code on line 4

Quote
It's either that, or you guys are not searching for the right function name.

I wanted to reiterate that I cannot script or code my way out of a wet paper bag. When you say stuff like this 99 times out of 100 I don't understand because I don't even know where to start...This is why I'm here, unfortunately for you.

Offline IchBin

  • Friends
  • *
  • Posts: 16231
Ah ok, didn't realize you weren't using the mod. In that case, we'll just copy the whole function into the block too.

Add this code in with the other code I provided at the end.

Code: [Select]
function chatOnlineUsers(){
global $smcFunc;

$userIDs = array();
$result = $smcFunc['db_query']('', '
SELECT userID
FROM {db_prefix}ajaxchat_online WHERE NOW() <= DATE_ADD(dateTime, interval 2 MINUTE)' ,
  array()
);
while($row = $smcFunc['db_fetch_assoc']($result)) {
array_push($userIDs, $row['userID']);
}
$smcFunc['db_free_result']($result);
return array_unique($userIDs);
}

Offline Lesmond

  • Do what you have to!
  • Administrator
  • *
  • Posts: 3169
    • Tiny Pix... Free Image Hosting and Sharing.
I still have an error Brad..

The error ...
Code: [Select]
Table 'smf542.smf_ajaxchat_online' doesn't exist
File: D:\Ampp\Ampps\www\smf\Sources\Load.php(2158) : eval()'d code(127) : eval()'d code
Line: 55

heres the code I have used..
Code: [Select]
global $context, $smcFunc, $scripturl, $txt;

//ajax chat start
$userIDs = chatOnlineUsers();
$context['chat_links'] = array();
if (count($userIDs) > 0){
if (count($userIDs) == 1){
$result = $smcFunc['db_query']('', '
SELECT mem.id_member, mem.real_name, mem.id_group, mg.online_color, mg.id_group
FROM {db_prefix}members AS mem
LEFT JOIN {db_prefix}membergroups AS mg ON
(mg.id_group = IF(mem.id_group = 0, mem.id_post_group, mem.id_group)) WHERE mem.id_member = {int:the_id}',
array(
'the_id' => $userIDs[0],
)
);
} else {
$result = $smcFunc['db_query']('', '
SELECT mem.id_member, mem.real_name, mem.id_group, mg.online_color, mg.id_group
FROM {db_prefix}members AS mem
LEFT JOIN {db_prefix}membergroups AS mg ON
(mg.id_group = IF(mem.id_group = 0, mem.id_post_group, mem.id_group)) WHERE mem.id_member IN ({array_int:the_ids})',
array(
'the_ids' => $userIDs,
)
);
}
while ($row = $smcFunc['db_fetch_assoc']($result)) {
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'];
if($row['online_color'] != ""){
$link.= '" style="color: ' . $row['online_color'];
}
$link.= '">' . $row['real_name'] . '</a>';
array_push($context['chat_links'], $link);
}
$smcFunc['db_free_result']($result);
}

if (isset($context['chat_links'])) {
if (count($context['chat_links']) == 0)
echo '<br />' . $txt['chat_no_user'];
elseif (count($context['chat_links']) == 1 )
echo '<br />  1' . $txt['chat_aUser']. ':<br />', implode($context['chat_links']);
else
echo '<br /> ' . count($context['chat_links']). $txt['chat_users']. ':<br />', implode(', ', $context['chat_links']);
}
function chatOnlineUsers(){
global $smcFunc;

$userIDs = array();
$result = $smcFunc['db_query']('', '
SELECT userID
FROM {db_prefix}ajaxchat_online WHERE NOW() <= DATE_ADD(dateTime, interval 2 MINUTE)' ,
  array()
);
while($row = $smcFunc['db_fetch_assoc']($result)) {
array_push($userIDs, $row['userID']);
}
$smcFunc['db_free_result']($result);
return array_unique($userIDs);
}

I am not sure if its because the ajaxchat doesn't add the smf_  prefix to the tables in the database
Please don't PM me for support without an invitation.


Offline IchBin

  • Friends
  • *
  • Posts: 16231
Re: Possible to create Who's Chatting TP module for Integrated Ajax Chat?
« Reply #18 on: August 01, 2013, 11:13:50 PM »
If it doesn't add the smf_ prefix then just take out the {db_prefix} and add the prefix that the mod adds. But this is code that is directly from the mod. I haven't wrote any of the code. So if it's not working, then you are either using a different mod, or an outdated mod.