Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons

Reply
 
Thread Tools
Replace URL's With Page Title Details »»
Replace URL's With Page Title
Version: 1.1, by Jafo232 Jafo232 is offline
Developer Last Online: Oct 2022 Show Printable Version Email this Page

Category: Show Thread Enhancements - Version: 3.6.8 Rating:
Released: 08-21-2007 Last Update: 08-21-2007 Installs: 467
Uses Plugins
 
No support by the author.


This product will automatically take any incoming parsed link and display the title of that page instead of showing the URL.

Example:

https://vborg.vbsupport.ru/index.php

Is how URL's are displayed by default, after adding this plugin, automatically the page title of that URL will be displayed and linked:

VBulletin.org Forum

The only thing required to install is to upload the product file (see readme in attached file).

For those asking what the difference is between this mod, and a similar one, see my post here:

https://vborg.vbsupport.ru/showpost....7&postcount=23

Limitations:
  • If the page has no title tag, only the URL will be displayed.
  • If the title tag does not appear within the first 1000 lines of the page, only the URL will be displayed. To keep the script from locking on URL's that go to large files or other large documents that could put a strain on the server and timeout a post, only the first 1000 lines are accepting when retrieving the page information.
  • Links on pages posted prior to adding this mod will not be updated.
Changelog:
  • Aug 22-2007: Fixed issue where functions might redeclare themselves, especially with shoutbox.
(note 49 downloads v1.0)

If you enjoy this mod, please nominate it for mod of the month (MOTM).

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
Avimelech

Comments
  #102  
Old 12-19-2007, 06:23 PM
sweede's Avatar
sweede sweede is offline
 
Join Date: Jan 2007
Posts: 391
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

while(!feof) , while NOT end of file. the correct methon would be to use fread(resource, bytes) , which reads the stream until bytes and then closes the stream.

I actually tested this one.


HTML Code:
if (!function_exists(convert_url_to_bbcode_callback_auto_title)) {
    function convert_url_to_bbcode_callback_auto_title($messagetext, $prepend)
    {
    	// the auto parser - adds [url] tags around neccessary things
    	$messagetext = str_replace('\"', '"', $messagetext);
    	$prepend = str_replace('\"', '"', $prepend);

    	static $urlSearchArray, $urlReplaceArray, $emailSearchArray, $emailReplaceArray;
    	if (empty($urlSearchArray))
    	{
    		$taglist = '\[b|\[i|\[u|\[left|\[center|\[right|\[indent|\[quote|\[highlight|\[\*' .
    			'|\[/b|\[/i|\[/u|\[/left|\[/center|\[/right|\[/indent|\[/quote|\[/highlight';
    		$urlSearchArray = array(
    			"#(^|(?<=[^_a-z0-9-=\]\"'/@]|(?<=" . $taglist . ")\]))((https?|ftp|gopher|news|telnet)://|www\.)((\[(?!/)|[^\s[^$`\"'|{}<>])+)(?!\[/url|\[/img)(?=[,.!)]*(\)\s|\)$|[\s[]|$))#siU"
    		);

    		$urlReplaceArray = array(
    			"[url]\\2\\4[/url]"
    		);




    		$emailSearchArray = array(
    			"/([ \n\r\t])([_a-z0-9-]+(\.[_a-z0-9-]+)*@[^\s]+(\.[a-z0-9-]+)*(\.[a-z]{2,4}))/si",
    			"/^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[^\s]+(\.[a-z0-9-]+)*(\.[a-z]{2,4}))/si"
    		);

    		$emailReplaceArray = array(
    			"\\1[email]\\2[/email]",
    			"[email]\\0[/email]"
    		);
    	}

    	$text = preg_replace_callback($urlSearchArray, "auto_title", $messagetext);

    	if (strpos($text, "@"))
    	{
    		$text = preg_replace($emailSearchArray, $emailReplaceArray, $text);
    	}

    	return $prepend . $text;
    }
    
    function auto_title_http_get($url){ 

        $url_stuff = parse_url($url); 
        $port = isset($url_stuff['port']) ? $url_stuff['port'] : 80; 

        $fp = fsockopen($url_stuff['host'], $port); 

        $query  = "GET " . $url_stuff['path'] ."?". $url_stuff['query'] . " HTTP/1.0\n"; 
        $query .= "Host: " . $url_stuff['host']; 
        $query .= "\n\n"; 

        fwrite($fp, $query); 

       $buffer = fread($fp, 8192);

        preg_match('/Content-Length: ([0-9]+)/', $buffer, $parts); 

        return substr($buffer, - $parts[1]); 

    }
    function auto_title ($text)
    {

        if ($text[2] == 'www.' or $text[2] == 'WWW.') {
            $text[4] = $text[2] . $text[4]; 
            $text[2] = 'http://'; 
        }

        $paged = @fopen( $text[2] . $text[4], "r" ); #echo $page . "DONE"; 

        $page = auto_title_http_get($paged);

        preg_match("/<title>[\n\r\s]*(.*)[\n\r\s]*<\/title>/", $page, $title);

        if ($title[1] == '') {
            $title[1] = $text[2] . $text[4];
        }
            return "[url=\"" . $text[2] . $text[4] . "\"]" . preg_replace("/\&.+\;/", '', $title[1]) . "[/url]";
    }

}

$messagetext = preg_replace(
    '#(^|\[/(' . $skiptaglist . ')\])(.*(\[(' . $skiptaglist . ')|$))#siUe',
    "convert_url_to_bbcode_callback_auto_title('\\3', '\\1')",
    $messagetext
);
Reply With Quote
  #103  
Old 12-19-2007, 06:42 PM
Jafo232 Jafo232 is offline
 
Join Date: May 2004
Posts: 1,122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You are going to find that fsockopen can fall under the same security restrictions as fopen depending on the host.. Examples:

http://www.110mb.com/forum/external-...d-t3690.0.html

http://www.thescripts.com/forum/thread2690.html

http://www.webhostingtalk.com/archiv.../t-501791.html

http://forum.unlimitedmb.com/showthread.php?t=799

http://www.google.com/search?hl=en&c...ed&btnG=Search

So, yeah, I suppose your method COULD replace fopen, but the same reason why you would want to, could apply also to your solution.
Reply With Quote
  #104  
Old 12-19-2007, 11:22 PM
HDT HDT is offline
 
Join Date: Sep 2006
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

After installed look like old thread that contains link do not retrieve the title,this need to rebuild thread and post cache?

Work on new parsed link only.

Please advise.
Reply With Quote
  #105  
Old 12-20-2007, 01:11 AM
Jafo232 Jafo232 is offline
 
Join Date: May 2004
Posts: 1,122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Works on new threads only.
Reply With Quote
  #106  
Old 12-20-2007, 02:21 PM
HDT HDT is offline
 
Join Date: Sep 2006
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Jafo for your confirmation.great work!
Reply With Quote
  #107  
Old 12-20-2007, 06:51 PM
ymy ymy is offline
 
Join Date: Feb 2003
Posts: 117
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Phooey View Post
Yet another vBSEO feature for free, thanks!

/installed
No, vBSEO feature work with external and internal URL
this hack only external URL
Reply With Quote
  #108  
Old 12-20-2007, 07:52 PM
VADOS VADOS is offline
 
Join Date: Nov 2007
Location: Russia
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

*installed*
Thanx 4 the hack.

But could you tell me please how can I make links will be parsing without any external info, such as
Quote:
- Page 2 - My Board Name
I want to make links only with the name of the thread, but no more external info.
Reply With Quote
  #109  
Old 12-21-2007, 01:08 AM
Jafo232 Jafo232 is offline
 
Join Date: May 2004
Posts: 1,122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by VADOS View Post
*installed*
Thanx 4 the hack.

But could you tell me please how can I make links will be parsing without any external info, such as


I want to make links only with the name of the thread, but no more external info.
It only reads the pages title. So my advice would be to work on your page titles.
Reply With Quote
  #110  
Old 12-21-2007, 06:07 PM
VADOS VADOS is offline
 
Join Date: Nov 2007
Location: Russia
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

So sorry... =(
*uninstalled*
Reply With Quote
  #111  
Old 12-25-2007, 09:16 PM
KURTZ KURTZ is offline
 
Join Date: Nov 2006
Location: Italy
Posts: 2,257
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

runs perfectly on 3.7.0B3
Reply With Quote
Reply

Thread Tools

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 04:19 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.08624 seconds
  • Memory Usage 2,308KB
  • Queries Executed 25 (?)
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)bbcode_html
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (1)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete