Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 01-12-2008, 03:51 PM
PyroNET PyroNET is offline
 
Join Date: Aug 2004
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Multi-Quote Text Link

Anybody have any insight on how I could get Multi-Quote to work with a text link instead of an image?
Reply With Quote
  #2  
Old 01-13-2008, 05:20 PM
PyroNET PyroNET is offline
 
Join Date: Aug 2004
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Code:
<span id="mq_$post[postid]" onclick="mq_click(this.id.substr(3));">Multi-Quote</span>
Any reason this wouldn't be working?
Reply With Quote
  #3  
Old 01-14-2008, 07:59 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Look at the JS function. It tries to change the "image", but as there isn't one to start with, it errors out and stops executing the function. You will need to change the function for it to work, or alternatively, write your own.
Reply With Quote
  #4  
Old 01-14-2008, 11:27 AM
PyroNET PyroNET is offline
 
Join Date: Aug 2004
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dismounted View Post
Look at the JS function. It tries to change the "image", but as there isn't one to start with, it errors out and stops executing the function. You will need to change the function for it to work, or alternatively, write your own.
Thanks, got it working

Code:
/**
* Initializes the MQ images, so they are clickable. Additionally, it redoes
* the coloring of the image based on the current value of the cookie. This
* is helpful if a user uses the back button.
*
* @param	object	The object to search within for MQ images.
*/
function mq_init(obj)
{
	var cookie_ids = fetch_cookie('vbulletin_multiquote');
	if (cookie_ids != null && cookie_ids != '')
	{
		cookie_ids = cookie_ids.split(',');
	}
	else
	{
		cookie_ids = new Array();
	}

	var postid;

	var spans = fetch_tags(obj, 'span');
	for (var i = 0; i < spans.length; i++)
	{
		if (spans[i].id && spans[i].id.substr(0, 3) == 'mq_')
		{
			postid = spans[i].id.substr(3);
			spans[i].onclick = function(e) { return mq_click(this.id.substr(3)); };
			change_mq_thing(postid, (PHP.in_array(postid, cookie_ids) > -1 ? true : false));
		}
	}
}

/**
* Callback function to when an MQ image is clicked. Modifies the cookie and
* updates the look of the image to suit.
*
* @param	integer	Post ID of the image clicked.
*
* @return	false	Always returns false to ensure any href event does not run
*/
function mq_click(postid)
{
	var cookie_ids = fetch_cookie('vbulletin_multiquote');

	var cookie_text = new Array();
	var is_selected = false;

	if (cookie_ids != null && cookie_ids != '')
	{
		cookie_ids = cookie_ids.split(',');

		for (i in cookie_ids)
		{
			if (cookie_ids[i] == postid)
			{
				is_selected = true;
			}
			else if (cookie_ids[i])
			{
				cookie_text.push(cookie_ids[i]);
			}
		}
	}

	// flip the image to the other option
	change_mq_thing(postid, (is_selected ? false : true));

	// if we don't have the postid in the cookie, add it
	if (!is_selected)
	{
		cookie_text.push(postid);
		if (typeof mqlimit != 'undefined' && mqlimit > 0)
		{
			for (var i = 0; i < (cookie_text.length - mqlimit); i++)
			{
				var removal = cookie_text.shift();
				change_mq_thing(removal, false);
			}
		}
	}

	set_cookie('vbulletin_multiquote', cookie_text.join(','));

	return false;
}

/**
* Changes the MQ image to show as being selected or unselected
*
* @param	integer	ID of the post whose MQ button is changing
* @param	boolean	Whether to make the image selected or not
*/
function change_mq_thing(postid, to_selected)
{
	var mq_obj = fetch_object('mq_' + postid);
	if (mq_obj)
	{
		if (to_selected == true)
		{
			mq_obj.innerHTML = "Multi-Quote +";
		}
		else
		{
			mq_obj.innerHTML = "Multi-Quote -";
		}
	}
}

mq_init(fetch_object('posts'));
Reply With Quote
Reply

Thread Tools
Display Modes

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 02:10 PM.


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.07153 seconds
  • Memory Usage 2,185KB
  • 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
  • (2)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)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