vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   trying to get user name in widget (https://vborg.vbsupport.ru/showthread.php?t=282557)

Disco_Stu 05-07-2012 07:55 AM

trying to get user name in widget
 
I'm trying to retrieve the user name - or just see if the user is signed in - in an HTML widget using javascript but it isn't working

I tried using this but it didn't work

var username =$bbuserinfo[username];


Can someone post a sample script?

Thanks

LifesGreatestGift 05-07-2012 08:36 AM

cant you just use a php widget and do this
PHP Code:

if ($vbulletin->userinfo['userid'] > 0) {
    
$username $vbulletin->userinfo['username'];
    echo 
'Welcome ' $username '!';
} else {
    echo 
'Welcome Guest!';


P.S. I doubt the code above works, its a proof of concept.

Try this if you want to stick to JS

HTML Code:

var username =$vbulletin->bbuserinfo['username'];
not sure if single quotes are needed in JS.

Disco_Stu 05-07-2012 10:52 AM

The code doesn't work in my java function and causes the function to stop due to invalid syntax

Code:

var username =$vbulletin->bbuserinfo['username'];
I'm trying to get the user name in a Static HTML widget using java.

kh99 05-07-2012 11:09 AM

The problem is that a static html widget is not a template, so you can't use any variables, only html. You would have to use a php direct execution type widget and set $output to your html (although getting quotes and escape characters right can be tricky). You could also make your html a template then just use a php type widget that renders your template, like:

Code:

$template = vB_Template::create('my_widget_template');
$output = $template->render();
unset($template);


Then in your template you can use

Code:

var name = '{vb:escapeJS {vb:raw bbuserinfo.username}}';

Disco_Stu 05-07-2012 11:13 AM

Are there any functions or API I can call from java that will return the current user name or tell me if the user is logged in? I don't want to rewrite the widget as it has a lot of java code in it.

I tried using the userid cookie but for some reason it is not always present even when I log in.

kh99 05-07-2012 11:19 AM

Javascript runs in the browser, so it only has access to data that's included in the html document. If you look at the headinclude template there's a section that sets some javascript variables just for that purpose (so the data is available in js functions on the page). So you could edit the headinclude template and add the username there.

If you switched to a php widget with a template I don't think you'd have to rewrite the widget, you'd just copy what you have to a template and the widget code would be a few lines as posted above (if you wanted you could try it by creating a new widget so if it doesn't work out you can just delete it).

Disco_Stu 05-07-2012 11:22 AM

I'll try the head include approach and see if that works. Do I simply assign the variable value there?

Also, any idea why I don't always see the bb_userid cookie even when logged in? At what point is it created?

kh99 05-07-2012 11:24 AM

I don't know about that cookie. I almost suggested that in my previous post but I seemed to remember that it wasn't always set.

Disco_Stu 05-07-2012 11:27 AM

Could you give me an example of the syntax for the header include? I set a variable to the userid but my widget doesn't seem to recognize the variable so I must be doing something wrong

kh99 05-07-2012 11:30 AM

In the template headinclude, there's this code:

Code:

var SESSIONURL = "{vb:raw session.sessionurl_js}";
var SECURITYTOKEN = "{vb:raw bbuserinfo.securitytoken}";
var IMGDIR_MISC = "{vb:stylevar imgdir_misc}";


So I was thinking of adding a line like:

Code:

var USER_NAME = "{vb:raw bbuserinfo.username}";

To be honest I'm not sure what special chars in a user name might cause problems with this, but in any case it seems like that should allow you to use USER_NAME in your js code.


All times are GMT. The time now is 05:29 AM.

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.01155 seconds
  • Memory Usage 1,737KB
  • 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
  • (5)bbcode_code_printable
  • (1)bbcode_html_printable
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete