vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Multi-Quote Text Link (https://vborg.vbsupport.ru/showthread.php?t=167602)

PyroNET 01-12-2008 03:51 PM

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?

PyroNET 01-13-2008 05:20 PM

Code:

<span id="mq_$post[postid]" onclick="mq_click(this.id.substr(3));">Multi-Quote</span>
Any reason this wouldn't be working?

Dismounted 01-14-2008 07:59 AM

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.

PyroNET 01-14-2008 11:27 AM

Quote:

Originally Posted by Dismounted (Post 1421095)
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'));



All times are GMT. The time now is 08:23 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.03665 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
  • (2)bbcode_code_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)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