The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Replace URL's With Page Title Details »» | |||||||||||||||||||||||||
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 you enjoy this mod, please nominate it for mod of the month (MOTM). Show Your Support
|
Благодарность от: | ||
Avimelech |
Comments |
#102
|
||||
|
||||
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 ); |
#103
|
|||
|
|||
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. |
#104
|
|||
|
|||
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. |
#105
|
|||
|
|||
Works on new threads only.
|
#106
|
|||
|
|||
Thanks Jafo for your confirmation.great work!
|
#107
|
|||
|
|||
No, vBSEO feature work with external and internal URL
this hack only external URL |
#108
|
|||
|
|||
*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:
|
#109
|
|||
|
|||
It only reads the pages title. So my advice would be to work on your page titles.
|
#110
|
|||
|
|||
So sorry... =(
*uninstalled* |
#111
|
|||
|
|||
runs perfectly on 3.7.0B3
|
Thread Tools | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|