[Release]Cype Advanced BBCode Parser And Custom BBCode
FAQ:
What does this do?
This uses preg_replace instead of str_replace, giving the parser case-insensitivity, and more powerful replaces, with exact traces, unlike str_replace.
It also allows custom bbcode throught the DB.
==================================================
This is just the SQL Database Part and Cype BBCode Parser Remake- no website UI.
Go to MySQL, and make a new table called cype_bbcode.
In it, put the following table structure
===========================
id--INTEGER--Auto Increment
pattern--TEXT
replacement--TEXT
===========================
Now, go to sources>parser>bbcode.php
replace the entire file with:
PHP Code:
<?php
/*
Copyright (C) 2009 Murad <Murawd>
Josh L. <Josho192837>
BBCode Parser Modified By silv3rbullet
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
$c = preg_replace('|\[b\](.+?)\[\/b\]|i', '<b>$1</b>', $c);
$c = preg_replace('|\[i\](.+?)\[\/i\]|i', '<i>$1</i>', $c);
$c = preg_replace('|\[u\](.+?)\[\/u\]|i', '<u>$1</u>', $c);
$c = preg_replace('|\[*\](.+?)\[\/*\]|i', '<li>$1</li>', $c);
$c = preg_replace('|\[url="(.+?)"\](.+?)\[\/url\]|i', '<a href="$1" target="_blank">$2</a>', $c);
$c = preg_replace('|\[center\](.+?)\[\/center\]|i', '<center>$1</center>', $c);
/*
$c = str_replace(array("[right]", "[/right]"), array("<span align=\"right\">", "</span>"), $c);
$c = str_replace(array("[left]", "[/left]"), array("<span align=\"left\">", "</span>"), $c);
*/
$c = preg_replace('|\[img\](.+?)\[\/img\]|i', '<img src="$1" border="0" alt="">', $c);
$c = preg_replace('|\[font="(.+?)"](.+?)\[\/font\]|i', '<font face="$1">$2</font>', $c);
$c = str_replace(":)", "<img src=\"sources/parser/smileys/smile.gif\"/>" , $c);
$c = str_replace("=)", "<img src=\"sources/parser/smileys/smile.gif\"/>" , $c);
$c = str_replace("=P", "<img src=\"sources/parser/smileys/tounge.gif\"/>" , $c);
$c = str_replace(":P", "<img src=\"sources/parser/smileys/tounge.gif\"/>" , $c);
$c = str_replace(":lol:", "<img src=\"sources/parser/smileys/lol.gif\"/>", $c);
$c = str_replace(":haha:", "<img src=\"sources/parser/smileys/lol.gif\"/>", $c);
$c = str_replace(":laugh:", "<img src=\"sources/parser/smileys/lol.gif\"/>", $c);
$c = str_replace(">=(", "<img src=\"sources/parser/smileys/mad.gif\"/>", $c);
$c = str_replace(":mad:", "<img src=\"sources/parser/smileys/mad.gif\"/>", $c);
$c = str_replace(">:(", "<img src=\"sources/parser/smileys/mad.gif\"/>", $c);
$c = str_replace(":O", "<img src=\"sources/parser/smileys/ohmy.gif\"/>", $c);
$c = str_replace("=O", "<img src=\"sources/parser/smileys/ohmy.gif\"/>", $c);
$c = str_replace(":(", "<img src=\"sources/parser/smileys/sad.gif\"/>", $c);
$c = str_replace("=(", "<img src=\"sources/parser/smileys/sad.gif\"/>", $c);
$c = str_replace(";)", "<img src=\"sources/parser/smileys/wink.gif\"/>", $c);
$c = str_replace(";D", "<img src=\"sources/parser/smileys/wink.gif\"/>", $c);
$c = str_replace(";P", "<img src=\"sources/parser/smileys/wink.gif\"/>", $c);
$c = str_replace("=/", "<img src=\"sources/parser/smileys/bored.gif\"/>", $c);
$c = str_replace(":bored:", "<img src=\"sources/parser/smileys/bored.gif\"/>", $c);
$c = str_replace(":D", "<img src=\"sources/parser/smileys/happy.gif\"/>", $c);
$c = str_replace("=D", "<img src=\"sources/parser/smileys/happy.gif\"/>", $c);
$script = "SELECT * FROM `cype_bbcode`";
$query = mysql_query($script) or die(mysql_error());
while($fetch = mysql_fetch_array($query))
{
$c = preg_replace(''.$fetch['pattern'].'|i', $fetch['replacement'], $c);
}
?>
BBCode Pack 1: http://forum.ragezone.com/f427/relea...ht=bbcode+pack
Re: [Release]Cype Advanced BBCode
Nice job. cant wait for the rest
Re: [Release]Cype Advanced BBCode
Quote:
Originally Posted by
xdanl
Nice job. cant wait for the rest
Thanks (subliminally tries to tell you to thank me :P)
Re: [Release]Cype Advanced BBCode
Quote:
Originally Posted by
xSilv3rbullet
Thanks (subliminally tries to tell you to thank me :P)
~will do~ *Press thank button* [?]
Re: [Release]Cype Advanced BBCode
Quote:
Originally Posted by
xdanl
~will do~ *Press thank button* [?]
OMG, how did you know I wanted that?
:P
Re: [Release]Cype Advanced BBCode
Quote:
Originally Posted by
xSilv3rbullet
OMG, how did you know I wanted that?
:P
IDK! i was like hmm he recoded cype in some other way he deserves a press on the [?]
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
This really isn't that advanced at all.
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
It's more advanced than the current parser.
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
Quote:
Originally Posted by
xSilv3rbullet
It's more advanced than the current parser.
is it more advanced because you used preg_replace instead of str_replace?
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
Wow thats fucking tedious.
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
lol i just noticed the mysql code at the end...
people will need knowledge on how the code works and other ways to make the bbcode work. just because i put in [quote ][/quote] its not automatically make it work. theres a format that people will need to understand to make it work fully.
i just barely figured out how to make spoilers work fully in bbcode. if you want a taste here:
PHP Code:
$text = preg_replace("/\[spoiler\](.+?)\[\/spoiler\]/is","".$this->spoiler("\\1")."", $text);
im not going to release the other part but you can get the general idea.
ps to you copy-pasters, dont bother adding this unless you have at least a way to convert it to make it work. i say this because theres more that goes into code.
EDIT:
forgot to mention that i can also change the name of the spoiler button name to give it abit of a "classy" feeling or have it use both classy and non classy spoiler. (not saying that i can only do it because i know people that can do way more then i can)
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
Quote:
Originally Posted by
holthelper
is it more advanced because you used preg_replace instead of str_replace?
Why, yes!
:)
preg_replace better fits str_replace or str_ireplace because it's faster, it's REGEX, it's perl, and you can pin point text, unlike with str_replace
Example:
str_replace(array("[bob=", "]), array("hi", "bob"));
str_replace(array("[joe=", "]), array("lol", "joe"));
Now, even if you use [joe="hi"], it will output lol hi bob, cuz "bob" replaces any instances of "]".
:sleep:
Also, custom bbcode is added.
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
this seems to be your custom code
PHP Code:
$script = "SELECT * FROM `cype_bbcode`";
$query = mysql_query($script) or die(mysql_error());
while($fetch = mysql_fetch_array($query))
{
$c = preg_replace(''.$fetch['pattern'].'|i', $fetch['replacement'], $c);
}
?>
i rather have it in a file then in a db. since your going for speed anyways, people will tell you that retrieving from a db is slower then pulling data from a file.
why make it more complex then it is already?
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
Many people would rather put bbcode in a database, rather than in a file.
It's less complicated, and easier to use.
However, it DOES take longer, and cost more memory.
But you could just use a mysql_free_result()
Re: [Release]Cype Advanced BBCode Parser And Custom BBCode
you have a script that will add the bbcode into the db or does the user have to insert it them selfs?
plz do a thread search of my username and look for my discussion thread then ask. this is basically the same as my thread which i was referring to in my earlier post