SitePoint Sponsor

User Tag List

Results 1 to 15 of 15

Thread: bb code

Hybrid View

  1. #1
    masquerading Nick's Avatar
    Join Date
    Jun 2003
    Location
    East Coast
    Posts
    2,215
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    bb code

    I'm sure this has been discussed before but the search function keeps telling me crap about having to have at least 3 words, even when I have a whole sentence

    Anyways, how can I incorperate 'bb code' into my pages? Or something similar. Like, when people are entering text into a textarea, placeing
    TEXT
    will make whatever inside those tags have font x and size y, etc? I can do it with variables, by doing something like

    $Quote = '<font size=2 color=#efefef>'

    But how about more BB Code type stuff?

    Thanks!

  2. #2
    SitePoint Wizard
    Join Date
    Mar 2002
    Location
    Bristol, UK
    Posts
    2,240
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Try this:
    PHP Code:
    $text '[ quote]Text[ /quote]';
    eregi_replace("\\[quote\\]([^\\[]*)\\[/quote\\]""<div class=\"quote\">\\1</div>"$text);
    echo 
    $text
    Couple of things:
    1. Delete the spaces after the ['s in the $text variable.
    2. Create a CSS class called "quote" and all styling can be applied via that.

    Hope this helps [img]images/smilies/smile.gif[/img]

    -Sam
    Sam Hastings

  3. #3
    SitePoint Member
    Join Date
    Oct 2003
    Location
    Miami Beach
    Posts
    9
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    No need to create a class called quote, unless that you intend to only use it once. Just redefine the INPUT , TEXTAREA, etc. tag within a CSS and you can do anything & everything you want.

    If you need variances, then do a child INTPUT.quote1, INPUT.quote2, etc.

  4. #4
    PHP manual bot bronze trophy Gaheris's Avatar
    Join Date
    Oct 2003
    Location
    Germany
    Posts
    2,195
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Uh, Anim8d Life, he asked about how to implement BB Code.

  5. #5
    SitePoint Member
    Join Date
    Oct 2003
    Location
    Miami Beach
    Posts
    9
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yea, not sure how to display code, w/o it rendering

  6. #6
    SitePoint Enthusiast
    Join Date
    Oct 2003
    Location
    Germany
    Posts
    88
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi.
    Wouldn`t it better to use preg_replace instead of eregi_replace?

    Like this:
    PHP Code:
    $string '[*quote]My Quote[/*quote]';
    $string preg_replace("`\[quote\](.*?)\[/quote\]`is""<div class='quote'>\\1</div>"$string); 
    Thats how I`ve done it until now... espacially if he want to use more than this one BBCode ereg should be to slow and does force the server to much (I`m out of right words to explain...).

    Edit: This is an example of more BBCodes:
    PHP Code:
    $string preg_replace("`\[(b|u|i|s|tt|center)\](.*)\[/\\1\]`is""<\\1>\\2</\\1>"$string);
    // This will give you the following BBCodes:
    // b, u, i, s, tt, center - they do the same as their HTML-Opposits as(/because) they are translated into them...
    $string preg_replace("`\[font=(.*)\](.*?)\[/font\]`is""<font face='\\1'>\\2</font>"$string);
    // That should enable you to use the font-BBCode to change the font-face 
    The Color-BBCode should be the same as the font... you will only have to change a few things.

  7. #7
    SitePoint Wizard
    Join Date
    Mar 2002
    Location
    Bristol, UK
    Posts
    2,240
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Your second example would work, however, if he wants to go for XHTML compliance, this wouldn't be an acceptable solution unfortunately.

    On a CMS I'm developing, I make [b] into <strong> and [i] into <em> (which are still within XHTML standards) - any other formatting tags I leave out - although one work around would be to convert [u] into something like <span style="text-decoration: underline;">, which although slightly longer, would still provide a standards-compliant way of displaying it.

    Although, this all depends on whether he wants his site to be compliant with the latest standards or not [img]images/smilies/wink.gif[/img]

    -Sam
    Sam Hastings

  8. #8
    masquerading Nick's Avatar
    Join Date
    Jun 2003
    Location
    East Coast
    Posts
    2,215
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'll try that, thanks.

    Oh, and, i'm not too worried about being xhtml compliant

  9. #9
    PHP manual bot bronze trophy Gaheris's Avatar
    Join Date
    Oct 2003
    Location
    Germany
    Posts
    2,195
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Oh, and, i'm not too worried about being xhtml compliant
    Too bad, I hope you're at least writing W3C compliant HTML 4.01 markup?

  10. #10
    masquerading Nick's Avatar
    Join Date
    Jun 2003
    Location
    East Coast
    Posts
    2,215
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Gaheris
    Too bad, I hope you're at least writing W3C compliant HTML 4.01 markup?
    For the most part, yes, I make my code clean.

  11. #11
    SitePoint Enthusiast
    Join Date
    Oct 2003
    Location
    Germany
    Posts
    88
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I don`t use strong or em... normaly I use span style insteed...

    But I`m also not intrested to do things like W3C say`s... everytime I try it I get a couple of errors... like if I want to trade Parameters in URL`s I get an error like "expecting ; in Blabla on Line blabla"... because I use it like script.php?next=true&back=false or something like that... I don`t know why that happend by me and not by the other people... but I`ve given up to try it... ^^"

    But I only want to show an example not the perfect way... if such a way exists... ^^"

  12. #12
    We like music. weirdbeardmt's Avatar
    Join Date
    May 2001
    Location
    Channel Islands Girth: Footlong
    Posts
    5,882
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Off Topic:


    Quote Originally Posted by Possibility
    I'm sure this has been discussed before but the search function keeps telling me crap about having to have at least 3 words, even when I have a whole sentence
    That refers to each word having to have at least three letters not the phrase having at least three words..
    I swear to drunk I'm not God.
    » Matt's debating is not a crime «
    Hint: Don't buy a stupid dwarf ö Clicky

  13. #13
    masquerading Nick's Avatar
    Join Date
    Jun 2003
    Location
    East Coast
    Posts
    2,215
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hmm excuse me if I am being thick...here is my code:

    PHP Code:
    <?
     $string 
    preg_replace("`\[(b|u|i|s|tt|center)\](.*)\[/\\1\]`is""<\\1>\\2</\\1>"$string);
    // This will give you the following BBCodes:
    // b, u, i, s, tt, center - they do the same as their HTML-Opposits as(/because) they are translated into them...
    $string preg_replace("`\[font=(.*)\](.*?)\[/font\]`is""<font face='\\1'>\\2</font>"$string);
    // That should enable you to use the font-BBCode to change the font-face 
    ?>
    <?
    echo
    '
    [b]Bold[/b]
    '
    ;
    ?>
    EDIT: Don't know why it is turning the [] into <> at bold, but it is written []

    But it does not work.

  14. #14
    PHP manual bot bronze trophy Gaheris's Avatar
    Join Date
    Oct 2003
    Location
    Germany
    Posts
    2,195
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You could have told us what wasn't working, anyway, try this.
    PHP Code:
    $string preg_replace("`\[(b|u|i|s|tt|center)\](.*)\[/\\1\]`isU""<\\1>\\2</\\1>"$string);
    $string preg_replace("`\[font=(.*)\](.*?)\[/font\]`isU""<font face='\\1'>\\2</font>"$string); 

  15. #15
    SitePoint Member Croft's Avatar
    Join Date
    Nov 2003
    Location
    sweden
    Posts
    18
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    man yust what im looking for

    Finaly i find some cool coders =)
    For adding bbcode to forms and stuff i use this.

    /************************************************/
    /* BBCode v1.0a */
    /* Date: 03/2003 */
    /* */
    /* A simple and effective script that */
    /* allows you to implement bbcode type */
    /* behaviour on your php website. */
    /* */
    /* Contact: bbcode@netgem.freeserve.co.uk */
    /* */
    /* Usage: */
    /* */
    /* Put the following line at the top of */
    /* the page you want to have the bbocde */
    /* in...(assumes both pages are in the */
    /* folder */
    /* */
    /* include("bbCode.php"); */
    /* */
    /* Pass the text to the function: */
    /* */
    /* $mytext = BBCode("This is my BBCODE"); */
    /* or */
    /* $mytext = "This is my text"; */
    /* $mytext = BBCode($mytext); */
    /* */
    /* echo $mytext; */
    /* */
    /************************************************/

    <style type="text/css">
    <!--
    body {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    }

    .bold {
    font-weight: bold;
    }

    .italics {
    font-style: italic;
    }

    .underline {
    text-decoration: underline;
    }

    .strikethrough {
    text-decoration: line-through;
    }

    .overline {
    text-decoration: overline;
    }

    .sized {
    text-size:
    }

    .quotecodeheader {
    font-family: Verdana, arial, helvetica, sans-serif;
    font-size: 12px;
    font-weight: bold;
    }

    .codebody {
    background-color: #FFFFFF;
    font-family: Courier new, courier, mono;
    font-size: 12px;
    color: #006600;
    border: 1px solid #BFBFBF;
    }

    .quotebody {
    background-color: #FFFFFF;
    font-family: Courier new, courier, mono;
    font-size: 12px;
    color: #660002;
    border: 1px solid #BFBFBF;
    }

    .listbullet {
    list-style-type: disc;
    list-style-position: inside;
    }

    .listdecimal {
    list-style-type: decimal;
    list-style-position: inside;
    }

    .listlowerroman {
    list-style-type: lower-roman;
    list-style-position: inside;
    }

    .listupperroman {
    list-style-type: upper-roman;
    list-style-position: inside;
    }

    .listloweralpha {
    list-style-type: lower-alpha;
    list-style-position: inside;
    }

    .listupperalpha {
    list-style-type: upper-alpha;
    list-style-position: inside;
    }
    -->
    </style>

    <?php
    //Local copy

    function BBCode($Text)
    {
    // Replace any html brackets with HTML Entities to prevent executing HTML or script
    // Don't use strip_tags here because it breaks [url] search by replacing & with amp
    $Text = str_replace("<", "&lt", $Text);
    $Text = str_replace(">", "&gt", $Text);

    // Convert new line chars to html <br /> tags
    $Text = nl2br($Text);

    // Set up the parameters for a URL search string
    $URLSearchString = " a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'";
    // Set up the parameters for a MAIL search string
    $MAILSearchString = $URLSearchString . " a-zA-Z0-9\.@";

    // Perform URL Search
    $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/", '<a href="$1" target="_blank">$1</a>', $Text);
    $Text = preg_replace("(\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[/url\])", '<a href="$1" target="_blank">$2</a>', $Text);

    // Perform MAIL Search
    $Text = preg_replace("(\[mail\]([$MAILSearchString]*)\[/mail\])", '<a href="mailto:$1">$1</a>', $Text);
    $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.+?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);

    // Check for bold text
    $Text = preg_replace("(\[b\](.+?)\[\/b])is",'<span class="bold">$1</span>',$Text);

    // Check for Italics text
    $Text = preg_replace("(\[i\](.+?)\[\/i\])is",'<span class="italics">$1</span>',$Text);

    // Check for Underline text
    $Text = preg_replace("(\[u\](.+?)\[\/u\])is",'<span class="underline">$1</span>',$Text);

    // Check for strike-through text
    $Text = preg_replace("(\[s\](.+?)\[\/s\])is",'<span class="strikethrough">$1</span>',$Text);

    // Check for over-line text
    $Text = preg_replace("(\[o\](.+?)\[\/o\])is",'<span class="overline">$1</span>',$Text);

    // Check for colored text
    $Text = preg_replace("(\[color=(.+?)\](.+?)\[\/color\])is","<span style=\"color: $1\">$2</span>",$Text);

    // Check for sized text
    $Text = preg_replace("(\[size=(.+?)\](.+?)\[\/size\])is","<span style=\"font-size: $1px\">$2</span>",$Text);

    // Check for list text
    $Text = preg_replace("/\[list\](.+?)\[\/list\]/is", '<ul class="listbullet">$1</ul>' ,$Text);
    $Text = preg_replace("/\[list=1\](.+?)\[\/list\]/is", '<ul class="listdecimal">$1</ul>' ,$Text);
    $Text = preg_replace("/\[list=i\](.+?)\[\/list\]/s", '<ul class="listlowerroman">$1</ul>' ,$Text);
    $Text = preg_replace("/\[list=I\](.+?)\[\/list\]/s", '<ul class="listupperroman">$1</ul>' ,$Text);
    $Text = preg_replace("/\[list=a\](.+?)\[\/list\]/s", '<ul class="listloweralpha">$1</ul>' ,$Text);
    $Text = preg_replace("/\[list=A\](.+?)\[\/list\]/s", '<ul class="listupperalpha">$1</ul>' ,$Text);
    $Text = str_replace("[*]", "<li>", $Text);


    // Check for font change text
    $Text = preg_replace("(\[font=(.+?)\](.+?)\[\/font\])","<span style=\"font-family: $1;\">$2</span>",$Text);

    // Declare the format for [code] layout
    $CodeLayout = '<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td class="quotecodeheader"> Code/td>
    </tr>
    <tr>
    <td class="codebody">$1</td>
    </tr>
    </table>';
    // Check for [code] text
    $Text = preg_replace("/\[code\](.+?)\[\/code\]/is","$CodeLayout", $Text);

    // Declare the format for [quote] layout
    $QuoteLayout = '<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td class="quotecodeheader"> Quote/td>
    </tr>
    <tr>
    <td class="quotebody">$1</td>
    </tr>
    </table>';
    // Check for [code] text
    $Text = preg_replace("/\[quote\](.+?)\[\/quote\]/is","$QuoteLayout", $Text);

    // Images
    // [img]pathtoimage[/img]
    $Text = preg_replace("/\[img\](.+?)\[\/img\]/", '<img src="$1">', $Text);
    // [img=widthxheight]image source[/img]
    $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1">', $Text);

    return $Text;
    }
    ?>

    Now my question for you good men and women here. Is there ANYONE here that PLEASE PLEASE can add some more bbcodes to this file ?

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •