vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=251)
-   -   Is this possible? (fieldX values in Thread Information) (https://vborg.vbsupport.ru/showthread.php?t=286967)

pureturk 08-23-2012 05:54 AM

Is this possible? (fieldX values in Thread Information)
 
I have a custom profile field where users must choose upon registration.
For example, lets say this profile field is called " favorite fruit"
and options are;
Apple
Melon
Grape
Banana

Now How do I get my "thread information" box to display users viewing forums as this;

There are currently 6 users browsing this thread.
Apple:1 Melon:2 Grape:0 Banana:3

kh99 08-23-2012 05:59 PM

Here's one way you might be able to do it: You would need to turn on "Show Users Browsing Thread" in the adminCP options, then create a plugin using hook showthread_loggedinuser and code like this:
Code:

$viewing_users[] = $loggedin['userid'];

Then you need to do a query, in another plugin using hook showthread_complete:
Code:

$viewing_users[] = $vbulletin->userinfo['userid'];
$field = 'fieldX'; // change X to your actual field #
$results = $vbulletin->db->query_read_slave("SELECT $field, count(*) AS num FROM " .  TABLE_PREFIX . "userfield WHERE userid IN (" . implode(',', $viewing_users) . ") GROUP BY $field");
while ($row = $vbulletin->db->fetch_array($results))
{
    $fruit_viewing[$row[$field]] = $row['num'];
}

// If you don't want to actually display the "users browsing", you could uncomment this:
// $show['activeusers'] = false;

vB_Template::preRegister('SHOWTHREAD', array('fruit_viewing' => $fruit_viewing));


Then in showthread where you want it to appear, something like:
Code:

<vb:each from="fruit_viewing" key="fruit" value="num">
    {vb:raw fruit}: {vb:raw num}
</vb:each>


BTW, I haven't actually tried this.

pureturk 08-24-2012 10:51 AM

Let me try it and I ll get back to you in a bit

--------------- Added [DATE]1345809644[/DATE] at [TIME]1345809644[/TIME] ---------------

This is way too advanced for me.

I went to add new plugin and chose "showthread_loggedinuser and put;
$viewing_users[] = $loggedin['userid'];
in the PHP code
Saved it.

Then if I did all that right, I m not too sure what you mean by "Then you need to do a query, in another plugin using hook showthread_complete:"

Quote:

Originally Posted by kh99 (Post 2359391)
Here's one way you might be able to do it: You would need to turn on "Show Users Browsing Thread" in the adminCP options, then create a plugin using hook showthread_loggedinuser and code like this:
Code:

$viewing_users[] = $loggedin['userid'];

Then you need to do a query, in another plugin using hook showthread_complete:
Code:

if (is_array($viewing_users) AND count($viewing_users))
{
  $field = 'fieldX'; // change X to your actual field #
  $results = $vbulletin->db->query_slave("SELECT $field, count(*) AS num FROM " .  TABLE_PREFIX . "userfield WHERE userid IN (" . implode(',', $viewing_users) . ") GROUP BY $field");
  while ($row = $vbulletin->db->fetch_array($results))
  {
      $fruit_viewing[$row[$field]] = $row['num'];
  }
}

// If you don't want to actually display the "users browsing", you could uncomment this:
// $show['activeusers'] = false;


Then in showthread where you want it to appear, something like:
Code:

<vb:each from="fruit_viewing" key="fruit" value="num">
    {vb:raw fruit}: {vb:raw num}
</vb:each>


BTW, I haven't actually tried this.


kh99 08-24-2012 11:27 AM

Quote:

Originally Posted by pureturk (Post 2359567)
Then if I did all that right, I m not too sure what you mean by "Then you need to do a query, in another plugin using hook showthread_complete:"

I was just talking about what the code is doing. You just have to create another plugin like you did for the first one. Make sure you check the "Yes" radio button to enable your plugins.

pureturk 08-24-2012 12:01 PM

Code:

<vb:each from="fruit_viewing" key="fruit" value="num">
    {vb:raw fruit}: {vb:raw num}
</vb:each>

Do I change anything in this? Obviuosly i dont care about peoples favorite fruit lol
It didnt work..

kh99 08-24-2012 12:11 PM

Yeah, I was assuming you'd edit the variable names to something that made more sense.

I did forget one line: at the end of the second plugin, you need to register the variable to the template, like:
Code:

vB_Template::preRegister('SHOWTHREAD', array('fruit_viewing' => $fruit_viewing));

pureturk 08-24-2012 02:16 PM

I created both hooks and added the line you provided at the end of second hook
changed the fieldX to Field 6 which is where the actual custom field is.

i edited the showthread template with the necessary code for the mod to show.

still no luck :(

kh99 08-24-2012 06:28 PM

Hmm...did you remember to turn on "Show Users Browsing Thread"?

If it doesn't work I might have to see your exact code (which you can PM if you'd rather).


All times are GMT. The time now is 04:25 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01010 seconds
  • Memory Usage 1,736KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (8)bbcode_code_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete