Krátke blahoželanie mužovi faq php mode bbcode. Poznámka o používaní BB kódov (bbCode)

Čo je BBCode? BBCode je špeciálny variant HTML. O tom, či môžete použiť BBCode vo svojich príspevkoch alebo nie, rozhoduje administrátor fóra. Okrem toho budete môcť zakázať používanie BBCode pre konkrétny príspevok, keď ho uverejníte. Samotný BBCode je podobný štýlu HTML, so značkami uzavretými v hranatých zátvorkách [ a ] ​​namiesto< и >; poskytuje vám väčšiu kontrolu nad výstupom údajov. S niektorými šablónami budete môcť pridať BBCode do svojich správ pomocou jednoduchého rozhrania umiestneného nad poľom na zadávanie textu. Ale aj v tomto prípade môže byť tento návod užitočný.

Formátovanie textu

Ako urobiť text tučným, kurzívou alebo podčiarknutým BBCode obsahuje značky na rýchlu zmenu štýlu písma, môžete to urobiť nasledujúcimi spôsobmi:
  • Ak chcete, aby bol text tučný, uzavrite ho [b], Napríklad:

    [b] Ahoj

    bude Ahoj

  • Použite na podčiarknutie [u], Napríklad:

    [u] Dobré ráno

    sa stane Dobré ráno

  • Kurzíva je urobená značkami [i], Napríklad:

    Toto [i] Skvelé!

    vydá toto Skvelé!

Ako zmeniť farbu alebo veľkosť textu Na zmenu farby alebo veľkosti písma je možné použiť nasledujúce značky (konečný vzhľad bude závisieť od systému a prehliadača používateľa):
  • Farbu textu môžete zmeniť tak, že ho obklopíte . Môžete zadať známy názov farby (červená, modrá, žltá atď.) alebo hexadecimálne zobrazenie, napríklad #FFFFFF, #000000. Takže na vytvorenie červeného textu môžete použiť:

    Ahoj!

    Ahoj!

    obe metódy poskytnú výsledok Dobrý deň!

  • Zmena veľkosti sa dosiahne podobným spôsobom pomocou . Táto značka závisí od použitých šablón, odporúčaný formát je číslo označujúce veľkosť textu v percentách, od 20 % (veľmi malý) do 200 % (veľmi veľký) predvolenej veľkosti. Napríklad:

    MALÝ

    s najväčšou pravdepodobnosťou to bude MALÉ

    zatiaľ čo:

    OBROVSKÝ!

    Bude to OBROVSKÉ!

Môžem značky kombinovať?Áno, samozrejme, môžete. Napríklad, ak chcete niekoho upútať, môžete napísať:

[b] POZRI SA NA MŇA!

čo to dá? POZRI SA NA MŇA!

[b][u] To nie je pravda

Citovanie a výstup formátovaných textov

Citovanie v odpovediach Existujú dva spôsoby citovania textu, s odkazom a bez neho.
  • Keď na odpovedanie na správu použijete tlačidlo Citovať, text sa pridá do vstupného poľa obklopeného blokom . Táto metóda vám umožní citovať s odkazom na autora alebo čokoľvek iné, čo tam zadáte. Napríklad citovať pasáž textu napísanú p. Blobby, napíšeš:

    SMS Mr. Blobby tu bude

    V dôsledku toho slová „Mr. Blobby napísal: " Pamätám si ťa musieť uzavrite názov do úvodzoviek "", nemožno ich vynechať.

  • Druhá metóda vám jednoducho umožňuje niečo citovať. Ak to chcete urobiť, musíte text uzavrieť do značiek . Pri prezeraní správy sa jednoducho zobrazí text v bloku citátov.
Výstupný kód alebo formátovaný text Ak potrebujete vypísať časť programu alebo niečo, čo je potrebné vytlačiť písmom s pevnou šírkou (Courier), musíte text uzavrieť do značiek , Napríklad:

echo "Toto je nejaký kód";

Všetky formáty použité vo vnútri značiek , bude uložený. Zvýraznenie syntaxe jazyka PHP je možné povoliť pomocou a odporúča sa pri odosielaní správ s kódom PHP, aby sa zlepšila jeho čitateľnosť.

Vytváranie zoznamov

Vytvorte zoznam s odrážkami BBCode podporuje dva typy zoznamov: s odrážkami a číslované. Sú prakticky totožné s ich ekvivalentmi HTML. V zozname s odrážkami sa postupne zobrazujú všetky prvky, pričom každý je označený symbolom značky. Ak chcete vytvoriť zoznam s odrážkami, použite a definujte každý prvok pomocou [*] . Ak chcete napríklad vytlačiť svoje obľúbené farby, môžete použiť:


[*] Červená
[*] Modrá
[*] žltá

Tým sa vytvorí takýto zoznam:

  • Červená
  • Modrá
  • žltá
Vytvorte očíslovaný zoznam Druhý typ zoznamu, očíslovaný, vám umožňuje vybrať si, čo presne sa bude zobrazovať pred každým prvkom. Ak chcete vytvoriť číslovaný zoznam, použite alebo na vytvorenie abecedného zoznamu. Rovnako ako v prípade zoznamu s odrážkami sú položky definované pomocou [*] . Napríklad:


[*] Choďte do obchodu
[*] Kúpte si nový počítač
[*]

poskytne nasledovné:

  1. Choďte do obchodu
  2. Kúpte si nový počítač
  3. Keď sa vyskytne chyba, oklamte počítač
Pre abecedný zoznam použite:


[*] Prvá možná odpoveď
[*] Druhá možná odpoveď
[*] Tretia možná odpoveď

čo to dá?

  1. Prvá možná odpoveď
  2. Druhá možná odpoveď
  3. Tretia možná odpoveď

Vytvorenie odkazu

Odkazy na inú stránku BBCode podporuje niekoľko spôsobov vytvárania adries URL.
  • Prvý používa značku , za znakom = sa musí objaviť požadovaná adresa URL. Napríklad na prepojenie na phpBB.com môžete použiť:

    Navštívte phpBB!

  • Ak chcete, aby sa samotná adresa URL zobrazovala ako text odkazu, môžete jednoducho urobiť nasledovné:

    http://www.phpbb.com/

  • Okrem toho phpBB podporuje funkciu tzv Automatické odkazy, to zmení každú syntakticky správnu adresu URL na odkaz bez potreby značiek alebo dokonca predpony http://. Napríklad zadaním www.phpbb.com do vašej správy sa pri prezeraní správy automaticky vráti www.phpbb.com.
  • To isté platí pre e-mailové adresy, adresu môžete zadať explicitne:

    [e-mail chránený]

    čo to dá? [e-mail chránený], alebo len zadajte [e-mail chránený] do vašej správy a pri zobrazení sa automaticky skonvertuje.

Rovnako ako u všetkých ostatných značiek BBCode môžete do adries URL uzavrieť akékoľvek ďalšie značky, napr. (pozri nasledujúci bod), [b] Rovnako ako pri formátovaní značiek, aj tu je správne vnorenie značiek na vás, napríklad:

http://www.google.com/intl/sk_ALL/images/logo.gif

je nesprávny, čo môže viesť k vymazaniu vášho príspevku, takže buďte opatrní.

Pravidelne potrebujem vo svojich projektoch používať „tlmočník“ BBCode (napísaný v PHP) a vždy nemám čas hľadať nejaké viac či menej pohodlné riešenie, čo v konečnom dôsledku vyústi do používania alebo vytvárania „bariel“ pre každý konkrétny prípad.
Ale vyzerá to tak, že sa nám podarilo nájsť to, čo sme chceli.

Mojou hlavnou výčitkou voči takýmto hotovým riešeniam je zvyčajne neschopnosť týchto knižníc správne narábať s odsekmi. V skutočnosti zvyčajne nepoužívajú odseky vôbec (tag P), namiesto toho, ako výsledok svojej práce, jednoducho vložia značku
, ktoré nahrádzajú pravidelné zalomenia riadkov. Tento spôsob napodobňovania paragrafov považujem na 98 percent, mierne povedané, za nevhodný. Ale keďže prerušenia riadkov sú cenovo dostupné
oveľa jednoduchšie implementovať namiesto „ľudského“

, to robí väčšina 🙁 Niektorí si dokonca vymýšľajú výhovorky, že br je ešte správnejšie, čiastočne kvôli podobnej lenivosti vývojárov rôznych hotových knižníc si iní ľudia myslia, že tag P je zastaraný (napokon aj v mnohých hotových produktoch a stránkach sa odseky tvoria pomocou
) 🙂

Začnime

Zdá sa však, že na konci tunela je svetlo. Toto je hotová trieda pre prácu s BBCode, ktorá zjavne odvádza skvelú prácu (zatiaľ som nevidel nič lepšie). Jediným negatívom je, že dokumentácia prezentovaná na stránke nie je v ruštine. Túto nevýhodu chcem v tomto článku prekonať uvedením príkladu použitia triedy s ruskými komentármi.

Najprv si musíte stiahnuť knižnicu (v čase písania tohto článku bola verzia knižnice 0.3.3). V stiahnutom archíve v priečinku src nájdete dva súbory, ktoré potrebujeme: stringparser.class.php a stringparser_bbcode.class.php.

Predpokladajme napríklad, že máme prázdny súbor „index.php“ a vedľa neho vytvoríme priečinok „/bbcode/“ obsahujúci dva vyššie spomínané súbory.
Napríklad minimálny obsah súboru „index.php“ by mal byť takýto (spustením tohto príkladu okamžite uvidíte, či knižnica funguje):

< ?php //Вставляем файл библиотеки require_once "bbcode/stringparser_bbcode.class.php"; //Создаем объект класса StringParser_BBCode $bbcode = new StringParser_BBCode (); //Добавляем объекту класса понятие о тэге [b] //(в итоге только этот тэг и будет //обрабатываться этим классом) $bbcode->addCode("b", "simple_replace", null, array("start_tag" => " ", "end_tag" => ""), "inline", pole ("blok", "inline"), pole ()); //Spracujte testovací reťazec a odošlite ho do prehliadača echo $bbcode->parse ("Testovací text, toto slovo by malo byť [b ]tučné"); ?>

funkcia addCode

Snáď najzaujímavejšou vecou v tomto kóde je funkcia addCode objektu triedy StringParser_BBCode; tu je jej prototyp a zoznam popisov parametrov:

Void addCode (reťazec $kód, reťazec $typ, reťazec $callback, reťazec $params, reťazec $content_type, pole $allowed_in, pole $not_allowed_in);

Táto funkcia pridáva koncept určitých kódov (bb-kódov) pre objekt triedy, aby potom mohla tieto kódy v texte odhaliť a podľa toho ich spracovať. Tie. môžeme povedať, že spočiatku objekt triedy StringParser_BBCode nevie vôbec nič o štandardných bb kódoch a nie je schopný ich žiadnym spôsobom spracovať. Preto po každej inicializácii bude potrebné tento objekt „natrénovať“ vo všetkých typoch bb-kódov.

$code (v príklade má hodnotu ‚b‘) Kód, ktorý treba hľadať v texte na spracovanie. Tie. ak zadáte testovací kód, značka sa vyhľadá v spracovanom texte a spracuje sa v súlade s pokynmi v iných parametroch príslušnej funkcie. $type (v príklade má hodnotu 'simple_replace') Určuje, ako sa má značka spracovať (o aký typ ide). Existujú rôzne preddefinované typy značiek, ktoré budú popísané nižšie. V našom príklade je zadaný typ 'simple_replace', čo znamená, že značka bude spárovaná (otváracia značka [b] a záverečná značka) a že tieto značky budú nahradené html značkami špecifikovanými nižšie. $callback (v príklade null) Umožňuje zadať názov funkcie, ktorá sa zavolá pri spracovaní nájdenej značky v texte. V prípade značky typu 'simple_replace' sa táto funkcia nevolá, a preto môžete v tomto parametri zadať hodnotu null. $params (v príklade má hodnotu pole(‘start_tag’ => ‘ ‘, ‘end_tag’ => ‘‘)) Tento parameter v podstate určuje, ktorá značka html sa má vložiť namiesto značky bb. Názvy parametrov priamo závisia od toho, aký typ tagu sme špecifikovali v parametri $type. $content_type (v príklade má hodnotu 'inline') Typ interného obsahu značky. Môže nadobúdať hodnoty: 'inline', 'block', 'link', 'image'. Ak sa nemýlim, môžete si zaregistrovať aj svoje vlastné typy, aby ste potom mohli pre tento obsah špecifikovať svoje vlastné individuálne filtre (pozri príklad použitia filtrov nižšie). $allowed_in (v príklade má pole hodnôt ('block', 'inline')) V tomto parametri môžete určiť, v ktorých typoch objektov sa môže nachádzať vytvorený bb kód (inak bude jeho spracovanie jednoducho ignorované). V našom príklade sme naznačili, že prvok môže byť umiestnený vo vnútri blokových prvkov aj vo vnútri lineárnych prvkov. $not_allowed_in (v príklade má pole hodnôt ()) Má opačný význam ako predchádzajúci parameter.

Typy spracovania značiek

Popis možností pre hodnotu parametra $type vo funkcii addCode.

'simple_replace' Opisuje jednoduchú párovú značku. Pri použití tohto typu spracovania značiek musia byť v parametri funkcie 'params' prítomné dve bunky: $params['start_tag'] a $params['end_tag']. „start_tag“ by mal obsahovať analóg úvodnej značky v HTML a „end_tag“ by mal obsahovať koncovú značku. ‘simple_replace_single’ Rovnaké ako ‘simple_replace’, ale používa sa len pre jednotlivé značky, ktoré, prísne vzaté, nemajú žiadny obsah (napríklad br, hr atď.). Vyžaduje iba parameter $params[‘start_tag’]. ‘callback_replace’ Pri tomto type preberáte spracovanie nájdených zhôd (pomocou vašej funkcie spätného volania) pre spárovanú značku. 'callback_replace_single' Rovnaké ako 'callback_replace', ale len pre jednotlivé značky. ‘usecontent’ Rovnako ako ‘callback_replace’, len v obsahu takejto značky nebudú spracované iné značky, napríklad to je vhodné pre značku kódu. ‘usecontent?’ Tento typ sa môže správať ako ‘usecontent’ alebo ‘callback_replace’ v závislosti od situácie. Relevantnosť konkrétnej možnosti je určená prítomnosťou predtým predpokladaného atribútu v značke bb. Ak sa atribút nájde, použije sa spracovanie „callback_replace“, inak sa značka spracuje ako „usecontent“. Názov atribútu, ktorý sa má vyhľadať, je špecifikovaný pomocou parametra $params[‘usecontent_param’]. Ak je zadaný názov default, potom sa predpokladá hodnota atribútu priradená priamo značke, napríklad hodnota predvoleného atribútu bude text „http://link“. Táto technika sa často používa napríklad pri tagu. Túto značku možno použiť v dvoch formách: http://www.example.com/ a Text odkazu, ako aj [b]tučný text. V prvom prípade sa použije typ „usecontent“, pretože Text odkazu by sa mal zobraziť bez akéhokoľvek formátovania (a v skutočnosti samotný odkaz bude nesprávny, ak obsahuje nadbytočné znaky). V opačnom prípade by sa mal použiť typ 'callback_replace', pretože samotný odkaz sa odovzdáva ako samostatný parameter a text zarámovaný v odkaze môže obsahovať určitý druh formátovania.
Poznámka: Na ich vyhľadávanie môžete zadať niekoľko parametrov, pre ktoré v $params[‘usecontent_param’] musíte zadať nie reťazec, ale pole obsahujúce reťazce. Napríklad: $bbcode->addCode (..., array('usecontent_param' => pole ('parameter1', 'parameter2')), ...);. 'callback_replace?' Je opakom 'usecontent?'. Ak sa v značke vyskytuje jeden z atribútov špecifikovaných v usecontent_param, bude spracovaný ako 'usecontent', v opačnom prípade ako 'callback_replace'.

Príklad kódu z „bojových“ podmienok

Tu je príklad súboru index.php s pokročilejšou konfiguráciou triedy na spracovanie väčšieho počtu značiek, v ktorom môžete pochopiť, ako fungujú funkcie spätného volania atď.

< ?php //Вставляем файл библиотеки require_once "bbcode/stringparser_bbcode.class.php"; //Приводит разнообразные переводы строк //разных операционных систем в единый формат (\n) function convertlinebreaks ($text) { return preg_replace ("/\015\012|\015|\012/", "\n", $text); } //Удалить все символы, кроме переводов строк function bbcode_stripcontents ($text) { return preg_replace ("/[^\n]/", "", $text); } //Функция для обработки ссылок function do_bbcode_url ($action, $attributes, $content, $params, $node_object) { if (!isset ($attributes["default"])) { $url = $content; $text = htmlspecialchars ($content); } else { $url = $attributes["default"]; $text = $content; } //Часть функции, которая занимается //только валидацией данных тэга if ($action == "validate") { if (substr ($url, 0, 5) == "data:" || substr ($url, 0, 5) == "file:" || substr ($url, 0, 11) == "javascript:" || substr ($url, 0, 4) == "jar:") { return false; } return true; } //Непосредственное преобразование тэга в //html вариант с возвращением результата return "".$text.""; ) // Funkcia na vkladanie obrázkov funkcia do_bbcode_img ($action, $attributes, $content, $params, $node_object) ( //Časť funkcie, ktorá sa zaoberá //iba overovaním údajov značky, ak ($$ akcia == "overiť") ( if (substr ($content, 0, 5) == "data:" || substr ($content, 0, 5) == "file:" || substr ($ content, 0 , 11) == "javascript:" || substr ($content, 0, 4) == "jar:") ( return false; ) return true; ) //Priama konverzia značky na //html variant s vrátením výsledku return " ";) //Vytvorte objekt triedy StringParser_BBCode $bbcode = new StringParser_BBCode(); //Pridajte filter (ďalšie podrobnosti nájdete v oficiálnej dokumentácii), //pomocou našej funkcie convertlinebreaks, ktorá //prevedie zlomy riadkov v texte do jedného $bbcode ->addFilter (STRINGPARSER_FILTER_PRE, "convertlinebreaks"); //Pridajte naše vlastné analyzátory pre rôzne typy objektov //(podrobnejšie informácie nájdete v oficiálnej dokumentácii) //Uvádzame, pomocou ktorej funkcie / /obsah týchto značiek by mal prejsť napríklad cez funkciu //htmlspecialchars na zabránenie XSS atď. $bbcode->addParser (pole ("blok", "inline", "link", "listitem"), "htmlspecialchars "); $bbcode->addParser (pole (" block", "inline", "link", "listitem"), "nl2br"); $bbcode->addParser ("zoznam", "bbcode_stripcontents"); // Pridajte bb kód použitý vo formáte: //Text hlavička prvej úrovne $bbcode->addCode ("h1", "simple_replace", null, pole ("start_tag" => "

", "end_tag" => "

"), "block", array ("listitem", "block", "link"), pole ()); //Pridajte bb kód použitý v tvare: //Text hlavičky druhej úrovne $bbcode->addCode ( "h2", "simple_replace", null, pole ("start_tag" => "

", "end_tag" => "

"), "block", array ("listitem", "block", "link"), pole ()); //Pridajte bb-kód použitý v tvare: //Text hlavičky tretej úrovne $bbcode-> addCode ( "h3", "simple_replace", null, pole ("start_tag" => "

", "end_tag" => "

"), "block", array ("listitem", "block", "link"), pole ()); //Pridajte bb kód použitý vo forme: //Text hlavičky štvrtej úrovne $bbcode->addCode ( " h4", "simple_replace", null, pole ("start_tag" => "

", "end_tag" => "

"), "block", array ("listitem", "block", "link"), pole ()); //Pridajte bb kód použitý v tvare: //Text hlavičky piatej úrovne $bbcode->addCode ( "h5", "simple_replace", null, pole ("start_tag" => "
", "end_tag" => "
"), "blok", pole ("listitem", "blok", "link"), pole ()); //Pridajte bb kód použitý vo forme: //Text hlavičky šiestej úrovne $bbcode->addCode ( " h6", "simple_replace", null, pole ("start_tag" => "
", "end_tag" => "
"), "block", array ("listitem", "block", "link"), pole ()); //Nastaviť príznaky pre bb-kódy od h1 do h6, //označujúce, že ide o prvky bloku, / /čo bude mať ďalej priaznivý vplyv na inteligentné //generovanie HTML kódu. Takýto prvok napríklad nemôže //byť vo vnútri iných prvkov bloku $bbcode->setCodeFlag("h1", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $ bbcode ->setCodeFlag("h2", "typ_paragrafu", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $bbcode->setCodeFlag("h3", "typ_paragrafu", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $bbcode->setCodeFlag("h4", "typ_odstavca", BBCODE_PARAGRAPH_BLOCK); $ bbcode->setCodeFlag("h5", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $bbcode->setCodeFlag("h6", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); //Pridať bb-kód [b], použitý v tvare: / /[ b]vybraný text $bbcode->addCode("b", "simple_replace", null, array("start_tag" => " ", "end_tag" => ""), "inline", pole ("listitem", "blok", "inline", "link"), pole ()); //Pridať bb kód [i], použitý vo forme: //[i] kurzíva $bbcode->addCode("i", "simple_replace", null, array("start_tag" => " ", "end_tag" => ""), "inline", pole ("listitem", "blok", "inline", "link"), pole ()); //Pridajte bb kód použitý v tvare: //http://www. needsite.domain a //text odkazu $bbcode->addCode ("url", "usecontent?", "do_bbcode_url", pole ("usecontent_param" => "predvolené"), "link", pole ("listitem", " block", "inline"), pole ("link")); //Pridajte bb kód použitý v tvare: //http://www.needsite.domain $bbcode->addCode ("link", "callback_replace_single " , "do_bbcode_url", pole (), "link", pole ("listitem", "blok", "inline"), pole ("link")); //Pridajte bb kód použitý vo formáte: // http ://www.needsite.domain/img.jpg $bbcode->addCode("img", "usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", " inline ", "link"), pole ()); //Pridajte kód bb (význam je rovnaký //ako ), použitý vo forme: //http://www.needsite.domain/img. jpg $ bbcode->addCode("bild", "usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", "inline", "link"), array()) ; //Vytvorte skupinový obrázok z bb-kódov img a bild //pre následnú možnosť nastavenia //určitých pravidiel pre tieto skupiny $bbcode->setOccurrenceType ("img", "image"); $bbcode->setOccurrenceType("bild", "image"); //Uvádzame, že značky zo skupiny obrázkov //sa môžu v texte objaviť (spracované) maximálne //dvakrát. V našom prípade je to potrebné, aby //používateľ nemohol do textu správy vložiť viac ako dva //obrázky $bbcode->setMaxOccurrences ("obrázok", 2); //Pridať bb kód $bbcode->addCode ("zoznam", "simple_replace", null, pole ("start_tag" => "
    ", "end_tag" => "
"), "zoznam", pole ("blok", "listitem"), pole ()); //Pridajte bb-kód [*], čo znamená, že túto značku // možno použiť iba vo vnútri značky //s typom zoznam (tento typ sme priradili značke vyššie) $bbcode->addCode ("*", "simple_replace", null, array ("start_tag" => "
  • ", "end_tag" => "
  • "), "listitem", pole ("zoznam"), pole ()); //Nastaviť príznaky pre značky a [*] //Označiť, že pre kód [*] sa koncová značka // nevyžaduje, teda je možno bude existovať //nasledujúca konštrukcia: // //[*] Item //[*] Item // //Uzatváracia značka bude pridaná automaticky //počas procesu generovania html kódu $bbcode->setCodeFlag ("*", "closetag", BBCODE_CLOSETAG_OPTIONAL); //Ak tomu rozumiem, tento príznak znamená, že značku [*] // možno vždy použiť iba //na začiatku nového riadku $bbcode->setCodeFlag ( "*", "paragraphs", true); // je prvok bloku $bbcode->setCodeFlag ("list", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); //Pred úvodnou značkou //bude odstránený znak $bbcode ->setCodeFlag ("zoznam", "opentag.before.newline", BBCODE_NEWLINE_DROP ); //Pred uzatváracou značkou //bude odstránený znak riadku $bbcode->setCodeFlag ("zoznam", "closetag.before.newline" , BBCODE_NEWLINE_DROP); //V dôsledku toho môžeme použiť zoznamy v kóde bb, //spolu so zoznamom a značkami *: // //[*] Prvok zoznamu //[*] Prvok zoznamu //[*], atď. // //Aktivácia spracovania odsekov $bbcode->setRootParagraphHandling (true); //Ako som pochopil, toto označuje //aké znaky by sa mali použiť na nahradenie //zalomenia riadku v odseku //(v podstate, ako zaobchádzať s prázdnymi odsekmi). $bbcode->setParagraphHandlingParameters("\n", ""); $res_text = "Testovací text [b]na kontrolu fungovania triedy"; //Pre každý prípad odstráňte všetky zostávajúce //znaky zalomenia riadku v tvare "\r", //ak v texte nejaké zostali $res_text = str_replace("\r", "", $res_text); //Voila! echo $bbcode->parse($res_text);

    Doslov

    Dokumentáciu som, samozrejme, nerobil kompletný preklad, ale len minimum, pre podrobnejšiu dokumentáciu sa môžete obrátiť na oficiálnu stránku (vo všeobecnosti je tam popísaných oveľa viac rôznych možností).

    Táto knižnica je tiež ľahko implementovateľná v akomkoľvek PHP frameworku; napríklad som to úspešne urobil pre cackePHP.

    Ak ste sa aj vy stretli s podobnými knižnicami (správna práca s paragrafmi! 🙂), bolo by zaujímavé o nich vedieť.

    Úvod

    bbCode – Kód nástenky alebo značkovací jazyk, ktorý sa používa na formátovanie správ na mnohých systémoch násteniek (BBS) a fórach. Na formátovanie textu sa používajú značky podobné značkám HTML. Na rozdiel od značiek HTML sú značky bbCode uzavreté v hranatých zátvorkách. Pred zobrazením stránky nástroj fóra analyzuje text a konvertuje bbCode na HTML kód.

    Na mnohých fórach možnosť používať BB kódy konfiguruje administrátor individuálne pre každú sekciu fóra. Preto sa pred použitím BB kódov v správach musíte uistiť, že sú povolené.

    Formátovanie písma

    Základné značky pre prácu s textom:

    [p] Normálny odsek s odsadením.

    Odsek, ktorý sa dá štylizovať.
    * V ďalšom texte je „štýl“ analógom štýlu v HTML.
    text je podobný v HTML

    text


    ** So značkami [p] môžete použiť ďalšie značky, ako napríklad [b], [i], [s] atď.

    Text, ktorého vlastnosti možno zmeniť pomocou štýlu.

    Obmedzená oblasť, ktorej štýl možno zmeniť jej vlastnosti (pozícia, okraje, výplň, vlastnosti obsahu atď.).
    * V predvolenom nastavení nie sú hranice oblasti viditeľné. Na jednej stránke môže byť niekoľko oblastí naraz.

    Formátovanie textu:

    [b] Dôležitý text, tučné

    [i] Dôležitý text, kurzíva

    Len odvážne

    Len kurzíva

    [u] Podčiarknutý text

    [s] Prečiarknutý text – rovnaký ako možnosť

    Menšie písmo

    Značka poznámky pod čiarou nad textom alebo index pod textom

    Odstránený text

    Veľkosti písma:

    13 bodové písmo

    15 bodové písmo

    Veľkosť písma 9 pixelov

    Veľkosť písma 12 pixelov

    Veľkosť písma 15 pixelov

    Veľkosť 0

    Veľkosť +1

    Veľkosť +2

    K dispozícii sú možné možnosti veľkosti písma (vizuálne posúdenie).

    Nadpisy:

    Hlavička 1. úrovne

    Hlavička 2. úrovne

    Hlavička 3. úrovne

    Hlavička 4. úrovne

    Hlavička 5. úrovne

    Hlavička 6. úrovne

    Formátovanie textu pomocou fontov:

    Písmo Comic Sans Ms

    Písmo Monotype Corsiva

    písmo Tahoma

    K dispozícii sú možné možnosti pre typy písma (mená a vizuálne hodnotenie).

    Zdobenie textu pomocou farby:

    Červený text
    * Môžete použiť štandardné slovné označenie farieb: červená, zelená, modrá atď.

    Modrý text
    * Číslo #0000ff znamená v palete RGB modrú.

    Modré pozadie
    * Farbu pozadia je možné tiež zmeniť.

    Modrý text, sivé pozadie

    Niektoré preddefinované farby:

    Čierna Biela Červená Zelená Modrá Fialová Ohnivá tehla Gaštanová OranžováČervená Polnočná Modrá NevädzaBlue
    azúrová žltá purpurová tmavozelená tmavozlatá zlatá orchidea modrá fialová Burlywood broskyňová

    Niektoré farby v hexadecimálnom kóde predstavujú intenzitu červenej, zelenej a modrej (RR GG BB):

    #000000 #FFFFFF #FF0000 #00FF00 #0000FF #FF00FF #FF4444 #FF9999 #FFCCCC #9999FF #FF99FF #DDDDDD #FFE4C4 #CCCC99 #FF8DC #FA8072 #990000 #00800000000000000000 EE #006400 #66FF00 # 00B800 #DAA520 #FFCC33 #FFA500 #C71585 #8B008B #CC33FF

    K dispozícii sú možné možnosti pre paletu farieb a ich kódy/názvy.

    Zarovnanie textu a formátovanie odsekov

    Zarovnanie textu:

    Zarovnajte text doľava

    Zarovnanie doľava so štýlom

    Zarovnanie doľava v odseku

    Zarovnanie textu na stred

    Zarovnanie na stred so štýlom

    Zarovnanie na stred v odseku

    Zarovnajte text doprava

    Správne zarovnanie so štýlom

    Zarovnanie v odseku doprava

    Zarovnajte text na oboch stranách

    Zarovnajte na oboch stranách štýlovo

    Zarovnanie v odseku na obe strany
    * Zarovnanie textov na oboch stranách sa zobrazí pri textoch, ktoré majú viac ako jeden riadok.

    Formátovanie poznámok pod čiarou (komentárov) s odsadením odsekov:

    [q] Citácia v rade

    Cenová ponuka v súlade s vlastnosťami


    Text citovaný v samostatnom bloku, ktorý bude mať
    malá zarážka vľavo a špeciálny dizajn (štýl fóra).

    Príklady:
    Lorem ipsum dolor sit amet
    Lorem ipsum dolor sit amet
    Lorem ipsum dolor sit amet

    Formátovanie odsekov a oblastí:

    Ahoj! V tomto odseku bude prvá veta z „červeného“ riadku, t.j. odsadené. Rovnako ako v kníhtlači. Pravda, na internete je to zriedkavá prax. Odseky by mali byť oddelené jednoducho prázdnymi medzerami.

    Vopred naformátovaný text zachováva odsadenie vľavo a medzi slovami a nastavuje odsadenie, ktoré určíte, pomocou medzier. POZOR! Značka automaticky nepreruší riadok!

    Formátovanie zoznamov

    Pre zoznamy s odrážkami používame značku alebo:

    • Jedna z položiek zoznamu
    • Ďalšia taká položka
    • Ešte jeden bod.



    [*] Ďalšia takáto položka
    [*] Ešte jeden bod.

    Pre číslované zoznamy používame značku:

    1. Jedna z položiek zoznamu
    2. Ďalšia taká položka
    3. Ešte jeden bod.


    [*] Jedna z položiek zoznamu
    [*] Ďalšia takáto položka
    [*] Ešte jeden bod.

    Nie je potrebné použiť záverečnú značku:

    • Jedna z položiek zoznamu
    • Ďalšia taká položka
    • Ešte jeden bod.


    [*] Jedna z položiek zoznamu
    [*] Ďalšia takáto položka
    [*] Ešte jeden bod.

    Je tiež možné priamo určiť typ zoznamu:
    - číslovaný zoznam
    - abecedný zoznam
    - zoznam očíslovaný rímskymi číslicami

    snímky

    Http://img.cx/img/primer.jpg - príklad vloženia obrázku.

    Http://img.cx/img/primer.jpg - obrázok vľavo.

    Http://img.cx/img/primer.jpg - obrázok vpravo.
    * Tento kód je podobný kódu v HTML:

    Http://img.cx/img/primer.jpg - obrázok v strede.
    * Tento kód je podobný kódu v HTML:

    Podobné značky s názvami a popismi:

    Dôležité! V názve obrázku nemôžete použiť úvodzovky!

    Http://img.cx/img/primer.jpg - príklad vloženia obrázku.

    Http://img.cx/img/primer.jpg - obrázok vľavo.

    Http://img.cx/img/primer.jpg - obrázok vpravo.

    Http://img.cx/img/primer.jpg - obrázok v strede.

    Obrázky s uvedenými veľkosťami:

    Http://img.cx/img/primer.jpg - príklad obrázku s veľkosťou.
    * Tento kód je podobný kódu v HTML:

    Http://img.cx/img/primer.jpg - obrázok vľavo, s veľkosťou.

    Http://img.cx/img/primer.jpg - obrázok vpravo, s veľkosťou.

    Vkladanie veľkých obrázkov s posuvnými lištami:

    Http://www..jpg - obrázok vo vybranej oblasti, ak je väčší ako dostupná veľkosť zobrazenia na fóre.

    Adresa - otvorte obrázok v novom okne.
    * Tento kód je podobný kódu v HTML:

    Adresa - otvorte obrázok v tom istom okne.
    * Tento kód je podobný kódu v HTML:

    Úvod

    Čo je BBCode? BBCode je špeciálna implementácia jazyka HTML, ktorá poskytuje pohodlnejšie možnosti formátovania správ. Možnosť používať BBCode v správach určuje administrátor fóra. Okrem toho môžete BBCode kedykoľvek zakázať v akejkoľvek správe, ktorú uverejníte priamo z formulára správy. Samotný BBCode je štýlom veľmi podobný HTML, ale značky sú uzavreté v hranatých zátvorkách [...] namiesto< … >. S niektorými šablónami budete môcť pridať BBCode do svojich správ pomocou jednoduchého rozhrania nad poľom na zadávanie textu. Napriek tomu môže byť táto príručka užitočná.

    Formátovanie textu

    Ako urobiť text tučným, kurzívou alebo podčiarknutým? BBCode obsahuje značky na rýchlu zmenu štýlu hlavného textu. Môžete to urobiť nasledujúcimi spôsobmi:
    • Ak chcete, aby bol text tučný, uzavrite ho do značiek [b]. Príklad:

      [b] Ahoj

      vydá Ahoj

    • Na podčiarknutie použite značky [u]. Príklad:

      [u] Dobré ráno

      dá Dobré ráno

    • Kurzíva je urobená značkami [i]. Príklad:

      Toto [i] Skvelé!

      vydá toto Skvelé!

    Ako môžem zmeniť farbu alebo veľkosť textu? Na zmenu farby alebo veľkosti písma je možné použiť nasledujúce značky (konečný vzhľad bude závisieť od systému a prehliadača používateľa):
    • Farbu textu môžete zmeniť tak, že ho obklopíte značkami . Môžete zadať známy názov farby (červená, modrá, žltá atď.) alebo jej hexadecimálne zobrazenie (#FFFFFF, #000000 atď.). Takže na vytvorenie červeného textu môžete použiť:

      Ahoj!

      Ahoj!

      Výsledkom oboch metód bude Hello!

    • Zmena veľkosti sa dosiahne podobným spôsobom pomocou značky . Táto značka závisí od použitých šablón, ale odporúčaný formát je číselná hodnota označujúca veľkosť textu v percentách v rozsahu od 20 (veľmi malá) do 200 (veľmi veľká) predvolenej veľkosti. Príklad:

      MALÝ

      s najväčšou pravdepodobnosťou sa ukáže MALÉ

      zatiaľ čo:

      VEĽMI VEĽKÝ!

      vydá VEĽMI VEĽKÉ!

    Je možné kombinovať formátovacie značky?Áno, samozrejme, môžete. Napríklad, ak chcete upútať pozornosť, môžete napísať:

    [b] POZRI SA NA MŇA!

    čo to dá? POZRI SA NA MŇA!

    [b][u] Tento záznam je nesprávny

    Citovanie a výstup formátovaných textov

    Citovanie textu v odpovediach Texty možno citovať dvoma spôsobmi: s uvedením autora a bez uvedenia.
    • Keď na odpovedanie na správu použijete tlačidlo Citovať, text správy sa pridá do poľa na zadávanie textu obklopený značkami . Táto metóda vám umožňuje citovať s odkazom na autora alebo na niečo iné, čo zadáte do úvodzoviek. Napríklad citovať fragment textu napísaného autorom p. Blobby, zadajte:

      Sem zadajte text od p. Blobby

      Výsledkom je, že text „Mr. Blobby napísal: " Pamätajte nevyhnutné uzavrite názov do úvodzoviek („“); nemožno ich vynechať.

    • Druhá metóda vám jednoducho umožňuje niečo citovať. Ak to chcete urobiť, umiestnite text medzi značky . Pri prezeraní správy bude tento text v bloku ponuky.
    Výstupný kód alebo formátovaný text Ak potrebujete zobraziť časť kódu programu alebo niečo iné, čo je potrebné zobraziť písmom s pevnou šírkou (Courier), uzavrite text do značiek . Príklad:

    echo "Toto je kód programu";

    Všetky formáty použité vo vnútri značiek , bude uložený. Zvýraznenie syntaxe kódu PHP je možné vykonať pomocou značky a odporúča sa pri odosielaní správ obsahujúcich úryvky PHP kódov.

    Vytváranie zoznamov

    Vytvorte zoznam s odrážkami BBCode podporuje dva typy zoznamov: s odrážkami a číslované. Sú prakticky totožné s ich ekvivalentmi HTML. V zozname s odrážkami sa postupne zobrazujú všetky prvky, pričom každý je označený symbolom značky. Pomocou značiek vytvorte zoznam s odrážkami a definujte každý prvok zoznamu pomocou [*] . Ak chcete napríklad zobraziť svoje obľúbené farby, môžete použiť:


    [*] Červená
    [*] Modrá
    [*] žltá

    Tým sa vytvorí takýto zoznam:

    • Červená
    • Modrá
    • žltá
    Vytvorte očíslovaný zoznam Druhý typ zoznamu je očíslovaný, čo vám umožňuje vybrať si, čo presne sa bude zobrazovať pred každým prvkom. Pomocou značiek vytvorte očíslovaný zoznam , alebo na vytvorenie abecedného zoznamu. Rovnako ako v prípade zoznamu s odrážkami sú položky zoznamu definované pomocou [*] . Príklad:


    [*] Choďte do obchodu
    [*] Kúpte si nový počítač
    [*]

    poskytne nasledovné:

    1. Choďte do obchodu
    2. Kúpte si nový počítač
    3. Keď sa vyskytne chyba, oklamte počítač
    Pre abecedný zoznam použite nasledovné:


    [*] Prvá možná odpoveď
    [*] Druhá možná odpoveď
    [*] Tretia možná odpoveď

    čo to dá?

    1. Prvá možná odpoveď
    2. Druhá možná odpoveď
    3. Tretia možná odpoveď

    Vytvorenie odkazu

    Odkazy na inú stránku phpBB podporuje niekoľko spôsobov vytvárania odkazov, známych aj ako URL.
    Rovnako ako pri všetkých značkách BBCode môžete vytvoriť prepojenie na akúkoľvek inú značku. Napríklad, (pozri nasledujúci bod), [b] a tak ďalej. Rovnako ako pri formátovaní značiek, správne vkladanie značiek je len na vás. Napríklad nasledujúci záznam:

    http://www.teosofia.ru/my-picture.gif

    nie je správna, čo môže viesť k následnému vymazaniu vašej správy. Buď opatrný.