Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 04-13-2009, 07:45 PM
Mark.B Mark.B is offline
Senior Member
 
Join Date: Feb 2004
Posts: 1,354
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Getting URL out of submission code

In another thread there has been some discussion of creating a style chooser dropdown that actually updates the member's profile details.

We have achieved that part of it ok.

It works like the existing style chooser, from a drop down list that then refreshes the page.

That works fine, but I would *also* like to get a URL equivalent to the dropdown that achieves the same thing. This will be for use in the postbit where I have an entry showing people's style as a clickable link.

The submit code being used in the php file is this:
Code:
if ($_POST['do'] == 'updateoptions')
{
    if ($show['member']){

        $vbulletin->input->clean_array_gpc('p', array('newstyleset'    => TYPE_INT));

        $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
        $userdata->set_existing($vbulletin->userinfo);

        // style set
        if ($vbulletin->options['allowchangestyles'] AND $vbulletin->userinfo['realstyleid'] != $vbulletin->GPC['newstyleset'])
        {
            $userdata->set('styleid', $vbulletin->GPC['newstyleset']);
        }

        ($hook = vBulletinHook::fetch_hook('profile_updateoptions')) ? eval($hook) : false;
        $userdata->save();
    }
    else {
         exec_header_redirect("../index.php?");
    }
}
And the HTML in the template is this:
Code:
<input type="hidden" name="s" value="" />
     <input type="hidden" name="do" value="updateoptions" />
     <input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
     <select class="forumselector" name="newstyleset" id="sel_newstyleset"  onchange="this.form.submit()";>
   				<optgroup label="$vbphrase[quick_style_chooser]">
					$quickchooserbits
				</optgroup>    
     </select>
Could someone let me know if it's possible to submit this form via a clickable URL? Or failing that, a submit button would do.... And if so what the syntax is?
Reply With Quote
  #2  
Old 04-13-2009, 08:09 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't believe you will be able to use the form in the postbit - or at least not for moderators or admins. You can't have a form within a form and for mods and admins, all the posts are located within a form for use in the Moderation dropdown at the bottom of the page. I suppose you could put a condition and if it's a mod/admin, you can have a link to go to another page which has the form.
Reply With Quote
  #3  
Old 04-13-2009, 08:25 PM
Mark.B Mark.B is offline
Senior Member
 
Join Date: Feb 2004
Posts: 1,354
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ah, I never thought of that. Thanks Lynne.

Do you know the URL format anyway? As I could also use it on THIS page which lists all my styles in thumbnail form. A link or button below each one is what I'd like.

No forms on this page, it's just generated with static html.
Reply With Quote
  #4  
Old 04-13-2009, 08:33 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm not sure I completely understand what you want. You just want to get the current page url so you can add the styleid=x to the end of it to get the style to change? Google gives me this - PHP: How to Get the Current Page URL
Reply With Quote
  #5  
Old 04-13-2009, 09:04 PM
Mark.B Mark.B is offline
Senior Member
 
Join Date: Feb 2004
Posts: 1,354
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, I sort of want a URL (or a button) that people could click to submit the form.
For this one I was thinking along the lines of a URL like:
Code:
   myprofile.php?do=updateoptions&newstyleset=114
However that doesn't work!

Failing that, I've been trying to convert the dropdown in the submission form into a button, but no joy there either!
Reply With Quote
  #6  
Old 04-13-2009, 10:08 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, you realize that doing it via a link is a GET, not a POST, right?
Reply With Quote
  #7  
Old 04-13-2009, 10:13 PM
Mark.B Mark.B is offline
Senior Member
 
Join Date: Feb 2004
Posts: 1,354
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

To be honest, no...I'm a bit out of what I'm comfortable with here.

I'm quite willing to accept it's not actually possible to this.

Alternatively I could modify the "myprofile" file that's used here and call it myprofile2 or something.

But a button would do just as well as a link...that would still be a POST presumably? But I'm struggling to make that work. It seems to load the page and redirect ok, but doesn't actually change the style.
Reply With Quote
  #8  
Old 04-13-2009, 10:18 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If you have a form, and you set the do parameter in the form (<input type="hidden" name="do" value="updateoptions" /> ), then using "if ($_POST['do'] == 'updateoptions')" would be appropriate. However, if you are sending the do variable ONLY via the url - myprofile.php?do=updateoptions&newstyleset=114 - then $_POST['do'] is not valid, you must change that line to use $_GET['do']. If using a button, as per the template you posted, then the condition using $_POST['do'] is valid.
Reply With Quote
  #9  
Old 04-13-2009, 11:09 PM
Mark.B Mark.B is offline
Senior Member
 
Join Date: Feb 2004
Posts: 1,354
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Lynne, that's sorted it, I have managed to do it using buttons.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:18 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04110 seconds
  • Memory Usage 2,240KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete