Welcome to all phpBB2 Refugees!This site is intended to continue support for the legacy 2.x line of the phpBB2 bulletin board package. If you are a fan of phpBB2, please, by all means register, post, and help us out by offering your suggestions. We are primarily a community and support network. Our secondary goal is to provide a phpBB2 MOD Author and Styles area. |
|
Author |
Message |
noisy Board Member
Joined: 04 Jun 2011
Posts: 35
|
Posted: Mon Jun 06, 2011 3:20 pm Post subject: handling of [url=] |
|
|
Does any one know if there is a way to make the [url=]...[/url] bbcode tags "disappear" from the post if the author does not input the bbcode correctly?
The instance i need to "disappear" is this
[url=]whatever[/url]
This will be parsed as text since the =value is missing. I want to make the whole thing invisible in post body, as long as the =value is missing of course.
Since my [url] bbcode is somewhat modified, i was thinking to use a "clean" bbcode that does the same thing, the [target] bbcode which can be found here http://www.phpbbhacks.com/download/258
From what i understand the bbcode is parsed twice, once when submitted and once when a user browses the topic. I guess what i want is that in this second parse, the specific instance [url=]whatever[/url] or [target=]whatever[/target] to be ignored completely. Not just the tags, but the "whatever" as well.
Do i make sense? possible or not possible? |
|
Back to top |
|
|
noisy Board Member
Joined: 04 Jun 2011
Posts: 35
|
Posted: Mon Jun 06, 2011 3:25 pm Post subject: Re: handling of [url=] |
|
|
just in case some one wants to help, the [target] bbcode mod is this
Code: |
#
#-----[ ACTION: open ]--------------------------------
#
includes/bbcode.php
#
#-----[ ACTION: find ]--------------------------------
#
$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']);
$bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\2', $bbcode_tpl['url4']);
#
#-----[ ACTION: add below ]---------------------------
#
$bbcode_tpl['target1'] = str_replace('{URL}', '\\1\\2', $bbcode_tpl['target']);
$bbcode_tpl['target1'] = str_replace('{DESCRIPTION}', '\\1\\2', $bbcode_tpl['target1']);
$bbcode_tpl['target2'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['target']);
$bbcode_tpl['target2'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['target2']);
$bbcode_tpl['target3'] = str_replace('{URL}', '\\1\\2', $bbcode_tpl['target']);
$bbcode_tpl['target3'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['target3']);
$bbcode_tpl['target4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['target']);
$bbcode_tpl['target4'] = str_replace('{DESCRIPTION}', '\\2', $bbcode_tpl['target4']);
#
#-----[ ACTION: find ]--------------------------------
#
// [email]user@domain.tld[/email] code..
$patterns[5] = "#\[email\]([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[5] = $bbcode_tpl['email'];
#
#-----[ ACTION: add below ]---------------------------
#
// [target]xxxx://www.phpbb.com[/target] code..
$patterns[6] = "#\[target\]([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\[/target\]#si";
$replacements[6] = $bbcode_tpl['target1'];
// [target]www.phpbb.com[/target] code.. (no xxxx:// prefix).
$patterns[7] = "#\[target\]([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\[/target\]#si";
$replacements[7] = $bbcode_tpl['target2'];
// [target=xxxx://www.phpbb.com]phpBB[/target] code..
$patterns[8] = "#\[target=([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\](.*?)\[/target\]#si";
$replacements[8] = $bbcode_tpl['target3'];
// [target=www.phpbb.com]phpBB[/target] code.. (no xxxx:// prefix).
$patterns[9] = "#\[target=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)\](.*?)\[/target\]#si";
$replacements[9] = $bbcode_tpl['target4'];
#
#-----[ ACTION: save close upload ]-------------------
#
#
#-----[ ACTION: open ]--------------------------------
#
templates/xxxx/bbcode.tpl
#
#-----[ ACTION: find ]--------------------------------
#
<!-- BEGIN url -->
<a href="{URL}" target="_blank" class="postlink">{DESCRIPTION}</a>
<!-- END url -->
#
#-----[ ACTION: add below ]---------------------------
#
<!-- BEGIN target -->
<a href="{URL}" target="_self" class="postlink">{DESCRIPTION}</a>
<!-- END target -->
#
#-----[ ACTION: save close upload ]-------------------
#
#
#
######### [ EOF ] #############################################
|
the only difference between the [target] and the native [url] bbcode is the target="_self" , which doesn't make a difference for me. |
|
Back to top |
|
|
Salvatos Board Member
Joined: 19 Feb 2009
Posts: 449 Location: Québec
|
Posted: Mon Jun 06, 2011 7:40 pm Post subject: Re: handling of [url=] |
|
|
As far as I can see, you just need to add two replacements to line ~217 in includes/bbcode.php. I suck at regular expressions, so I can't give you the actual code, but basically you'd have to add a replacement for "[url=not a url]not a url[/url]" and one for "[url]not a url[/url]". The tricky part is using regular expressions to represent "not a url" - I couldn't figure that out to save my life.
And instead of $replacements[] = $bbcode_tpl['url2'];, you'd be using $replacements[] = "";. Although I would personally recommend replacing it with something like "Invalid link code" instead so your users understand why their links aren't showing up. |
|
Back to top |
|
|
noisy Board Member
Joined: 04 Jun 2011
Posts: 35
|
Posted: Tue Jun 07, 2011 1:24 am Post subject: Re: handling of [url=] |
|
|
Salvatos wrote: | As far as I can see, you just need to add two replacements to line ~217 in includes/bbcode.php. I suck at regular expressions, so I can't give you the actual code, but basically you'd have to add a replacement for "[url=not a url]not a url[/url]" and one for "[url]not a url[/url]". The tricky part is using regular expressions to represent "not a url" - I couldn't figure that out to save my life.
And instead of $replacements[] = $bbcode_tpl['url2'];, you'd be using $replacements[] = "";. Although I would personally recommend replacing it with something like "Invalid link code" instead so your users understand why their links aren't showing up. |
i dont want to prevent ANY "not an url" error in the bbcode format. I only want to prevent this specific error [url=]whatever[/url], where the = parameter is empty!
This would make things easier for some one to create this replacement expression, no?? |
|
Back to top |
|
|
noisy Board Member
Joined: 04 Jun 2011
Posts: 35
|
Posted: Tue Jun 07, 2011 2:29 am Post subject: Re: handling of [url=] |
|
|
i think i did it, but i aint sure if my code is correct... I used the [target] bbcode, which is the same exactly as the native un-moded [url] bbcode
$patterns[10] = "#\[target=()\](.*?)\[/target\]#si";
$replacements[10] = "";
this will replace any instance of this nature [target=]whatever[/target] with blank.
I tested it, it works fine.
If some one with php knowledge could verify this is the correct setup, that would be great . Thanks in advance
EDIT: This is solved now. Correct expresion is
$patterns[10] = "#\[target=\].*?\[/target\]#si";
$replacements[10] = ""; |
|
Back to top |
|
|
|
Not affiliated with or endorsed by the phpBB Group
Powered by phpBB2 © phpBB Group
Generated in 0.0435 seconds using 16 queries. (SQL 0.0086 Parse 0.0006 Other 0.0343) |
phpBB Customizations by the phpBBDoctor.com
Template Design by DeLFlo and MomentsOfLight.com
|
|