[TRICK] displaying the "unknown action" in the who's online list

Started by Kindred, January 30, 2012, 10:20:00 PM

Previous topic - Next topic

Kindred

so, you have a bunch of mods installed and 90% of them - while they add functionality to your forum - don't add themselves into the list of valid actions in the Who's Online list.

This little trick won't fix ALL of the problems (it's a quick trick, it doesn't drill down into special actions or sub-actions) but it will, at least, display where the user actually IS in your system.

Code (find in Sources/Who.php) Select

function determineActions($urls, $preferred_prefix = false)
{
  global $txt, $user_info, $modSettings, $smcFunc, $context;


Code (add after) Select

global $scripturl;


Code (find in Sources/who.php) Select

// Unlisted or unknown action.
else
$data[$k] = $txt['who_unknown'];


Code (replace) Select

// Unlisted or unknown action.
else
$data[$k] = $txt['who_thisaction'] . '<a href="' . $scripturl . '?action=' . $actions['action'] . '">' . $actions['action'] . '</a>';


then add the following text string to modifications.YOURLANGUAGE.txt

$txt['who_thisaction'] = 'Viewing the ';
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Kindred

note: I have been playing with the following, but it doesn't quite work....


// Unlisted or unknown action.
else {
if (isset($actions['sa'])) {
$extraaction['sa']['text'] = ' - ' . $actions['sa'];
$extraaction['sa']['url'] = ';sa=' . $actions['sa'];
} else {
$extraaction['sa']['text'] = '';
$extraaction['sa']['url'] = '';
}
if (isset($actions['area'])) {
$extraaction['area']['text'] = ' - ' . $actions['area'];
$extraaction['area']['url'] = ';area=' . $actions['area'];
} else {
$extraaction['area']['text'] = '';
$extraaction['area']['url'] = '';
}
if (isset($actions['u'])) {
$extraaction['u']['text'] = ' for User ID' . $actions['u'];
$extraaction['u']['url'] = ';u=' . $actions['u'];
} else {
$extraaction['u']['text'] = '';
$extraaction['u']['url'] = '';
}
if (isset($actions['cat'])) {
$extraaction['cat']['text'] = ' in Category' . $actions['cat'];
$extraaction['cat']['url'] = ';cat=' . $actions['cat'];
} else {
$extraaction['cat']['text'] = '';
$extraaction['cat']['url'] = '';
}

$data[$k] =  'Viewing the <a href="' . $scripturl . '?action=' . $actions['action'] . $extraaction['sa']['url'] . $extraaction['area']['url'] . $extraaction['u']['url'] . $extraaction['cat']['url'] .'">' . $actions['action'] . $extraaction['sa']['text'] . $extraaction['area']['text'] . $extraaction['u']['text'] . $extraaction['cat']['text'] . '</a>';
}

Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Matthew K.

Very neat, Kindred...it'd be cool if eventually SMF had this implemented into the core so modifications didn't HAVE to.

nza2k

Thank you Kindred,

Is there any way, without killing the sever, to display real time stats instead of a list of names.

For instance :
- 5 members and 1 moderator are watching post 1
- 7 members are watching post 2
- 3 members are connecting
- 1 member is posting a new message
...

?
Avis sur les voyagistes dans le forum de Voyage-Net, propulsé par SMF depuis des années :)

Kindred

that would require a whole bunch more recoding...   my trick is just to replace the frustrating "unknown action"
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

nza2k

Avis sur les voyagistes dans le forum de Voyage-Net, propulsé par SMF depuis des années :)

Kindred

note:  I just discovered that you also should add $scripturl to the global variables at the start of the function.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

geek_andy

Quote from: Labradoodle-360 on January 30, 2012, 11:34:55 PM
Very neat, Kindred...it'd be cool if eventually SMF had this implemented into the core so modifications didn't HAVE to.

I completely agree.

Works great Kindred! Thanks!

Chalky




NanoSector

My Mods / Mod Builder - A tool to easily create mods / Blog
"I've heard from a reliable source that the Answer is 42. But, still no word on what the question is."

TattooLeashed

Only the word 'Portal' is seen now by the members. Guests show the proper things. Strange...

Kindred

which code snippet did you use?   And did you make exactly the edit that I showed?
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

NanoSector

My Mods / Mod Builder - A tool to easily create mods / Blog
"I've heard from a reliable source that the Answer is 42. But, still no word on what the question is."

Kindred

ah yes...   I didn't even think to $txt the english string (naughty me!)

Sorry, my dutch is non existent, so I can't comment directly. lol....
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

NanoSector

Quote from: Kindred on April 05, 2012, 04:08:43 PM
ah yes...   I didn't even think to $txt the english string (naughty me!)

Sorry, my dutch is non existent, so I can't comment directly. lol....
First code's what needs to be added in Modifications.{language}.php, second and third code is Find > Replace.
My Mods / Mod Builder - A tool to easily create mods / Blog
"I've heard from a reliable source that the Answer is 42. But, still no word on what the question is."

Antechinus

Nifty. I like it. Should be default IMO.

What I would also like is a change in that silly "Nothing, or nothing you can see" message. It would make more sense to say "Ant is messing around in admin" or something like that, if it is the case, rather than getting all spooky about it.

TattooLeashed

I did all that Yoshi but it still doesn't work :(


This is how it looks like in who.php:


// Unlisted or unknown action.
else {
if (isset($actions['sa'])) {
$extraaction['sa']['text'] = ' - ' . $actions['sa'];
$extraaction['sa']['url'] = ';sa=' . $actions['sa'];
} else {
$extraaction['sa']['text'] = '';
$extraaction['sa']['url'] = '';
}
if (isset($actions['area'])) {
$extraaction['area']['text'] = ' - ' . $actions['area'];
$extraaction['area']['url'] = ';area=' . $actions['area'];
} else {
$extraaction['area']['text'] = '';
$extraaction['area']['url'] = '';
}
if (isset($actions['u'])) {
$extraaction['u']['text'] = ' for User ID' . $actions['u'];
$extraaction['u']['url'] = ';u=' . $actions['u'];
} else {
$extraaction['u']['text'] = '';
$extraaction['u']['url'] = '';
}
if (isset($actions['cat'])) {
$extraaction['cat']['text'] = ' in Category' . $actions['cat'];
$extraaction['cat']['url'] = ';cat=' . $actions['cat'];
} else {
$extraaction['cat']['text'] = '';
$extraaction['cat']['url'] = '';
}

$data[$k] = $txt['unknown_action_viewing'] . ' <a href="' . $scripturl . '?action=' . $actions['action'] . '">' . $actions['action'] . '</a>';
}[s][/s] 


And I put the txt line in my modifications.dutch.php file. What am i doing wrong? Starts to bug me ;)

NanoSector

That's the code that doesn't work ;)

Just use the code I provided, it's in the first post of this topic.
My Mods / Mod Builder - A tool to easily create mods / Blog
"I've heard from a reliable source that the Answer is 42. But, still no word on what the question is."

TattooLeashed

That one doesn't work for me. I only see my own status, the other statusses remain portal only.

Dan    18:15:13    Bekijkt Wie is er online.
Online Lisje 18:15:10    Bekijkt portal
Online Mylvan     18:15:09    Bekijkt portal
Online Mair 18:15:08    Bekijkt portal
Online Siin 18:15:07    Bekijkt portal
Online Luppie    18:15:06    Bekijkt portal
Online Chefke 18:15:05    Bekijkt portal
Online TVT    18:15:04    Bekijkt portal
Gast     18:14:43    Bekijkt topic Paintedflesh werken.
Gast    18:14:31    Bekijkt de forumindexpagina van .

NanoSector

Guess the portal is taking over then. Sorry, I dunno what to do with annoying portals taking over the world :(
My Mods / Mod Builder - A tool to easily create mods / Blog
"I've heard from a reliable source that the Answer is 42. But, still no word on what the question is."

TattooLeashed


Kindred

the only thing that my trick does is to replace the "doing something unknown" statement with the actual action that the user is doing.
If there is any other action defined (like "portal") it never gets to my little but of code.
I'd say it's a poorly coded action for whatever portal you are using.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

TattooLeashed

I'm using Simple Portal. Recently updated to 2.3.5. Never had any problems with it.

mr.Curiosity


Zelite poptpuno besplatno reklamirati svoj server?
Posjetite  www.reklamiraj-server.netne.net
Ocekujemo Vas!

Deezel

Thanks Kindred... worked like a charm on my site!!
running
SMF 2.0.2
and
SimplePortal 2.3.5

Chalky

Quote from: Antechinus on April 05, 2012, 04:17:37 PM
What I would also like is a change in that silly "Nothing, or nothing you can see" message. It would make more sense to say "Ant is messing around in admin" or something like that, if it is the case, rather than getting all spooky about it.

Did anyone find a way of doing this yet?

Kindred

Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

NanoSector

* Yoshi2889 mumbles something about "...first post.......same problem.......fixed......."
My Mods / Mod Builder - A tool to easily create mods / Blog
"I've heard from a reliable source that the Answer is 42. But, still no word on what the question is."

Chalky

Yes, I did!  I made the edit some time ago and I love it!  However, my regular members complain that they still see the "nothing or nothing you can see" message while I'm doing Admin stuff, which is why I quoted Antechinus' post in particular.

I would also like my members to see something a little more friendly when I'm admin'ing, however, if this was indeed fixed in the first post along with all the other actions that this edit has revealed for me so wonderfully, then I have clearly missed something, but I suspect you misunderstood me  ;)

Antechinus

Yup, that's different to the OP. The OP only deals with the "unknown action" message, not with the other one.

Kindred

Oops, sorry, sabrinova, I misread your question (that's the problem, reading from a phone).

I'd say you have to check the list for the admin and other actions and remove the permissions check
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Chalky


Kindred

you can change the text "nothing, or nothing you can see", but that would change every use of it, not just the admin instance.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

OzzyMozzy

This might be a silly question but what file do I download to make this change? I haven't done a Manual mod before, I thought this might be a good one to start off with.

Kindred

lol....   actually, not that silly a question.
I started to write back for you to read the OP and realized that I had forgotten to indicate the filename in the OP. 'DOH!

fixed in the OP...  but the file is Sources/Who.php
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

OzzyMozzy

thanks i found it and made the change but i dont understand this bit, where do i find and put it?

'then add the following text string to modifications.YOURLANGUAGE.txt'

OzzyMozzy

OMG i did it and it works, well it says 'portal' now instead. Is that right or did i miss something?

Kindred

Some portals may interfere with the action list.... they assume that you are always in the portal unless you are doing something specific.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

OzzyMozzy

That's ok at least it's not saying Unknown action anymore. thanks heaps

Chalky

Hi, me again!  As I've said earlier in this topic, this trick is working great for me.  However, I decided to sort out my error logs, so I deleted all errors, went about my business and checked back.  Within a few minutes of leaving my computer on the auto-refreshing Who's Online, I had 30 instances of this error:

Quote
http://******.com/index.php?action=who
8: Undefined variable: scripturl
File: /home/content/**/*******/html/******/Sources/Who.php
Line: 451

Line 451 is this:

// Unlisted or unknown action.
else
$data[$k] = $txt['who_thisaction'] . '<a href="' . $scripturl . '?action=' . $actions['action'] . '">' . $actions['action'] . '</a>';


Please can you help me stop this error from occurring, or is everyone else getting it and it's just something I have to accept?  As I said, there are no problems with the trick itself, it does exactly what it should.

Thank you  :)

Kindred

Hmmmmm... Really? Wonder why it does not trigger that for me.

Anyway, simple fix. Add
global $scripturl;
Up above... At the start of the function, where the other global declarations are

Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Chalky

Thanks Kindred, I think I've put it in the right place  ;)

Just emptied my error log again so I'll see what appears now.  Thanks for the fast response  :)

Kindred

now that I can get to my code from an actual computer:

Code (find in Sources/Who.php) Select

function determineActions($urls, $preferred_prefix = false)
{
  global $txt, $user_info, $modSettings, $smcFunc, $context;


Code (add after) Select

global $scripturl;


edit- after looking through the code, I wonder why this error was not noticed before...   because, in the core, unedited code, it looks like $scripturl is not actually defined in the determineActions function. It must have been added by another mod to my code and I missed it for the trick.   Original code in the first post has been edited.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Chalky

Woohoo!  I had put it in the right place and that seems to have sorted it!  I have left it on the WO for ages and no more errors have appeared in the log.  Brilliant, thanks Kindred  :D

Cutter65

Installed this tip today and it works great! ;D

Thanks Kindred!

[UGP]Jeffry

Hello, first of all sorry for bumping this topic, but this seems to be useful and might be worth to discuss about.
So I have added the code of the first post, and now it shows

Viewing the portal

anywhere, where before Unknown Action was taking place.
Whats up to this portal thing? Can it be removed from the actions, because even if it shows that somebody is viewing the portal, they DO NOT view it. :/

Any ideas?

Shambles

Just change the text to read

Not viewing the portal

Doddle ;)


Joking aside, do you actually have a portal installed?

Kindred

right... so, if you have a portal installed, then it sounds like the default "action" is "portal" which comes across as "viewing the portal"

(as I just realized that we have already discussed, if you read back a  few messages)
Quote from: Kindred on May 06, 2012, 09:59:35 AM
Some portals may interfere with the action list.... they assume that you are always in the portal unless you are doing something specific.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

babsbatgirlfan

Is there anyone here who could do this coding for me on my site? I cant ever figure out where anything is lol and i think it would be easier if I set up an admin account for someone lol. I hate the 'unknown action' and would like to know what everyone is doing.

my site is: http://www.dcnurpg.com

thank you so much.

Kindred

THe instructions in the first post are pretty straight forward...

But, either way, an admin account would not work. You can not edit those files from admin.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

babsbatgirlfan

Well I own the site so would it need to be done with my account then? I cannot find the areas, at all where to do these changes I have never been good at this stuff at all. Maybe if I PM you my info could you get it so the unknown action is gone and it showsd what everyone is doing? I just cannot find the right area to go into lol.

Chalky

How do I use FTP? / What is FTP?

You need to download two free programs from the Internet. An FTP client such as FileZilla and a text editor such as Notepad ++. Then you grab the specified files from your server using FTP, keep a copy of them as backup, make the edits using the text editor (Word. Notepad, etc will not do, be sure to download one designed for the purpose), then upload your edited file using FTP, overwriting the existing one and you're done!  If you get a parse error replace with the copy of the file you saved as backup and try again  ;)

NekoJonez

This is actually working great for me. I think SimplePortal messes up a lot.
Retro video game blogger, writer, actor, podcaster and general amazing dude.

Twitter
My Blog

Biology Forums

Thanks for the trick, Kindred, I just noticed it!

However, I took a slightly different path. Instead of showing the vague action, I said why not skip it

Here's how I did it:

Find:
$data[$k] = $txt['who_unknown'];

Replace:
else
//$data[$k] = $txt['who_unknown'];
continue;


Hope this helps

Arantor

The reason you generally pull the extra data is so you can figure out what is missing, rather than just making it go away.

Biology Forums

Quote from: Arantor on July 06, 2017, 11:05:24 AM
The reason you generally pull the extra data is so you can figure out what is missing, rather than just making it go away.

I agree. Do you have another suggestion how I could do it better?

Arantor

Quote from: Stylus on July 06, 2017, 12:09:56 PM
Quote from: Arantor on July 06, 2017, 11:05:24 AM
The reason you generally pull the extra data is so you can figure out what is missing, rather than just making it go away.

I agree. Do you have another suggestion how I could do it better?

Not really - you take the information about unknown actions and create the matching $txt entries so they're no longer unknown actions...

Advertisement: