Kratke čestitke man faq php mode bbcode. Napomena o korištenju BB kodova (bbCode)

Što je BBCode? BBCode je posebna varijanta HTML-a. Možete li koristiti BBCode u svojim postovima ili ne određuje administrator foruma. Osim toga, moći ćete onemogućiti korištenje BBCodea za određenu objavu kada je objavite. Sam BBCode je stilski sličan HTML-u, s oznakama u uglatim zagradama [ i ] umjesto< и >; daje vam veću kontrolu nad načinom na koji se podaci ispisuju. Uz neke predloške, moći ćete dodati BBCode svojim porukama pomoću jednostavnog sučelja koje se nalazi iznad polja za unos teksta. Ali čak iu ovom slučaju, ovaj vodič može biti koristan.

Oblikovanje teksta

Kako tekst učiniti podebljanim, kurzivom ili podcrtanim BBCode uključuje oznake za brzu promjenu stila fonta, to možete učiniti na sljedeće načine:
  • Da biste podebljali tekst, stavite ga u okvir [b], Na primjer:

    [b] zdravo

    postati zdravo

  • Koristite za podcrtavanje [u], Na primjer:

    [u] Dobro jutro

    postat će Dobro jutro

  • Kurziv se izvodi pomoću oznaka [i], Na primjer:

    Ovaj [i] Sjajno!

    izdat će ovo Sjajno!

Kako promijeniti boju ili veličinu teksta Sljedeće oznake mogu se koristiti za promjenu boje ili veličine fonta (konačni izgled ovisi o sustavu i pregledniku korisnika):
  • Možete promijeniti boju teksta tako da ga okružite . Možete navesti poznati naziv boje (crvena, plava, žuta itd.) ili heksadecimalni prikaz kao što je #FFFFFF, #000000. Za stvaranje crvenog teksta možete koristiti:

    Zdravo!

    Zdravo!

    obje metode će dati rezultat Pozdrav!

  • Promjena veličine se postiže na sličan način pomoću . Ova oznaka ovisi o korištenim predlošcima, preporučeni format je broj koji označava veličinu teksta kao postotak, od 20% (vrlo malo) do 200% (vrlo veliko) zadane veličine. Na primjer:

    MALI

    najvjerojatnije će biti MALI

    dok:

    OGROMAN!

    Bit će OGROMNO!

Mogu li kombinirati oznake? Da, naravno da možete. Na primjer, da biste privukli nečiju pozornost, možete napisati:

[b] POGLEDAJ ME!

što će dati? POGLEDAJ ME!

[b][u] Ovo nije istina

Citiranje i ispisivanje oblikovanih tekstova

Citiranje u odgovorima Postoje dva načina citiranja teksta, sa i bez veze.
  • Kada koristite gumb Citat za odgovor na poruku, tekst se dodaje u polje za unos okruženo blokom . Ova metoda će vam omogućiti da citirate s vezom na autora ili bilo što drugo što tamo unesete. Na primjer, da citiram odlomak teksta koji je napisao gosp. Blobby, napisat ćeš:

    Pošalji poruku g. Blobby će biti ovdje

    Kao rezultat toga, riječi “Mr. Blobby je napisao: " Sjećam te se mora naziv stavite u navodnike "", ne mogu se izostaviti.

  • Druga metoda vam jednostavno omogućuje da nešto citirate. Da biste to učinili, morate priložiti tekst u oznake . Prilikom pregledavanja poruke, samo će se prikazati tekst u bloku citata.
Izlazni kod ili obogaćeni tekst Ako trebate ispisati dio programa ili nešto što treba ispisati u fontu fiksne širine (Courier), morate priložiti tekst u oznake , Na primjer:

echo "Ovo je neki kod";

Sva oblikovanja korištena unutar oznaka , bit će spremljeno. Označavanje sintakse PHP jezika može se omogućiti pomoću i preporučuje se pri slanju poruka s PHP kodom kako bi se poboljšala njegova čitljivost.

Izrada popisa

Napravite popis s grafičkim oznakama BBCode podržava dvije vrste popisa: s grafičkim oznakama i numerirani. Gotovo su identični svojim HTML ekvivalentima. Na popisu s grafičkim oznakama svi se elementi prikazuju uzastopno, a svaki je označen simbolom markera. Za izradu popisa s grafičkim oznakama koristite i definirajte svaki element pomoću [*] . Na primjer, da ispišete svoje omiljene boje, možete koristiti:


[*] Crvena
[*] Plava
[*] Žuta boja

Ovo će proizvesti ovakav popis:

  • Crvena
  • Plava
  • Žuta boja
Napravite numerirani popis Druga vrsta popisa, numerirana, omogućuje vam da odaberete što će točno biti prikazano ispred svakog elementa. Za izradu numeriranog popisa koristite ili za izradu abecednog popisa. Kao i kod popisa s grafičkim oznakama, stavke se definiraju pomoću [*] . Na primjer:


[*] Idi u dućan
[*] Kupite novo računalo
[*]

će dati sljedeće:

  1. Idi u dućan
  2. Kupite novo računalo
  3. Grdite računalo kada se pojavi greška
Za abecedni popis koristite:


[*] Prvi mogući odgovor
[*] Drugi mogući odgovor
[*] Treći mogući odgovor

što će dati?

  1. Prvi mogući odgovor
  2. Drugi mogući odgovor
  3. Treći mogući odgovor

Stvaranje veze

Veze na drugu stranicu BBCode podržava nekoliko načina za stvaranje URL-ova.
  • Prvi koristi oznaku , nakon znaka = mora se pojaviti željeni URL. Na primjer, za povezivanje na phpBB.com možete koristiti:

    Posjetite phpBB!

  • Ako želite da se sam URL prikazuje kao tekst veze, možete jednostavno učiniti sljedeće:

    http://www.phpbb.com/

  • Dodatno, phpBB podržava značajku tzv Automatske veze, ovo će svaki sintaktički ispravan URL pretvoriti u vezu bez potrebe za oznakama ili čak prefiksom http://. Na primjer, upisivanje www.phpbb.com u vašu poruku automatski će prikazati www.phpbb.com prilikom pregledavanja poruke.
  • Isto se odnosi i na adrese e-pošte, možete eksplicitno navesti adresu:

    [e-mail zaštićen]

    što će dati? [e-mail zaštićen], ili samo unesite [e-mail zaštićen] u svoju poruku i bit će automatski pretvorena prilikom pregledavanja.

Kao i sa svim ostalim BBCode oznakama, u URL-ove možete uključiti bilo koje druge oznake, npr. (vidi sljedeću točku), [b] itd. Kao i kod oznaka za oblikovanje, ispravno ugniježđivanje oznaka ovisi o vama, na primjer:

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

je netočna, što može rezultirati brisanjem vaše objave, stoga budite oprezni.

Povremeno imam potrebu koristiti BBCode “interpreter” u svojim projektima (napisanim u PHP-u), i uvijek nemam vremena tražiti neko koliko-toliko zgodno rješenje, što na kraju rezultira korištenjem ili stvaranjem “štaka” za svakom konkretnom slučaju.
Ali izgleda da smo uspjeli pronaći ono što smo htjeli.

Moja glavna zamjerka takvim gotovim rješenjima obično je nemogućnost tih biblioteka da ispravno rukuju paragrafima. Zapravo, obično uopće ne koriste odlomke (tag P), umjesto toga, kao rezultat svog rada, jednostavno umetnu oznaku
, zamjenjujući uobičajene prijelome redaka. Ovu metodu oponašanja paragrafa 98 posto smatram najblaže rečeno neprimjerenom. Ali budući da su prekidi reda pristupačni
puno lakše implementirati umjesto "ljudskog"

, to većina radi 🙁 Neki čak smišljaju isprike da je br još ispravnije, dijelom zbog slične lijenosti programera raznih gotovih biblioteka, drugi misle da je oznaka P je zastario (uostalom, čak iu mnogim gotovim proizvodima i stranicama odlomci se formiraju korištenjem
) 🙂

Započnimo

Ali čini se da postoji svjetlo na kraju tunela. Ovo je gotova klasa za rad s BBCodeom, koja, očito, radi izvrstan posao (još nisam vidio ništa bolje). Jedini nedostatak je da dokumentacija prikazana na web mjestu nije na ruskom jeziku. Želim prevladati ovaj nedostatak u ovom članku dajući primjer korištenja klase s ruskim komentarima.

Prvo trebate preuzeti biblioteku (u vrijeme pisanja, verzija biblioteke bila je 0.3.3). U preuzetoj arhivi u mapi src pronaći ćete dvije datoteke koje su nam potrebne: stringparser.class.php i stringparser_bbcode.class.php.

Na primjer, pretpostavimo da imamo praznu datoteku "index.php" i pored nje ćemo kreirati mapu "/bbcode/" koja sadrži dvije gore spomenute datoteke.
Na primjer, minimalni sadržaj datoteke “index.php” trebao bi biti ovakav (pokretanjem ovog primjera možete odmah vidjeti radi li biblioteka):

< ?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", array ("block", "inline"), array ()); //Obradite testni niz i ispišite ga u preglednik echo $bbcode->parse ("Testni tekst, ova riječ bi trebala biti [b ]podebljano"); ?>

funkcija addCode

Možda je najzanimljivija stvar u ovom kodu funkcija addCode objekta klase StringParser_BBCode; ovdje je njen prototip i popis opisa parametara:

Void addCode (niz $code, niz $type, niz $callback, niz $params, niz $content_type, niz $allowed_in, niz $not_allowed_in);

Ova funkcija dodaje koncept određenih kodova (bb-kodova) za objekt klase, tako da može otkriti te kodove u tekstu i obraditi ih u skladu s tim. Oni. možemo reći da inicijalno objekt klase StringParser_BBCode ne zna baš ništa o standardnim bb kodovima i nije ih u stanju obraditi ni na koji način. Stoga će nakon svake inicijalizacije ovaj objekt morati biti "obučen" za sve vrste bb-kodova.

$code (u primjeru ima vrijednost 'b') Kod koji treba tražiti u tekstu za obradu. Oni. ako navedete testni kod, tada će se oznaka tražiti u obrađenom tekstu i obraditi u skladu s uputama u drugim parametrima predmetne funkcije. $type (u primjeru ima vrijednost 'simple_replace') Određuje kako se oznaka treba obraditi (koje je vrste). Postoje razne unaprijed definirane vrste oznaka koje će biti opisane u nastavku. U našem primjeru navedena je vrsta 'simple_replace', što označava da će oznaka biti uparena (otvorna oznaka [b] i završna oznaka) i da će te oznake biti zamijenjene html oznakama navedenim u nastavku. $callback (null u primjeru) Omogućuje vam da odredite naziv funkcije koja će biti pozvana prilikom obrade pronađene oznake u tekstu. U slučaju tipa oznake 'simple_replace', ova se funkcija ne poziva i, sukladno tome, možete navesti null u ovom parametru. $params (u primjeru ima vrijednost array(‘start_tag’ => ‘ ‘, ‘end_tag’ => ‘‘)) Ovaj parametar u osnovi određuje koju html oznaku treba umetnuti umjesto bb oznake. Nazivi parametara izravno ovise o vrsti oznake koju smo naveli u parametru $type. $content_type (u primjeru ima vrijednost 'inline') Vrsta unutarnjeg sadržaja oznake. Može uzeti vrijednosti: 'inline', 'block', 'link', 'image'. Ako se ne varam, također možete registrirati vlastite tipove kako biste zatim mogli specificirati vlastite pojedinačne filtre za ovaj sadržaj (pogledajte primjer korištenja filtara u nastavku). $allowed_in (u primjeru ima niz vrijednosti ('block', 'inline')) U ovom parametru možete odrediti u koje se vrste objekata kreirani bb kod može nalaziti unutar (njegova obrada će se inače jednostavno zanemariti). U našem primjeru smo naznačili da se element može nalaziti unutar blok elemenata i unutar linearnih. $not_allowed_in (u primjeru ima polje vrijednosti ()) Ima suprotno značenje od prethodnog parametra.

Vrste obrade oznaka

Opis opcija za vrijednost parametra $type u funkciji addCode.

'simple_replace' Opisuje jednostavnu uparenu oznaku. Kada koristite ovu vrstu obrade oznaka, dvije ćelije moraju biti prisutne u parametru funkcije 'params': $params['start_tag'] i $params['end_tag']. ‘start_tag’ treba sadržavati analogiju početne oznake u HTML-u, a ‘end_tag’ treba sadržavati završnu oznaku. ‘simple_replace_single’ Isto kao ‘simple_replace’, ali se koristi samo za pojedinačne oznake koje, strogo govoreći, nemaju sadržaj (poput br, hr, itd.). Zahtijeva samo parametar $params['start_tag']. ‘callback_replace’ S ovom vrstom preuzimate obradu pronađenih podudaranja (pomoću vaše funkcije povratnog poziva) za uparenu oznaku. 'callback_replace_single' Isto kao 'callback_replace', ali samo za pojedinačne oznake. ‘usecontent’ Isto kao i ‘callback_replace’, samo što u sadržaju takve oznake druge oznake neće biti obrađene, na primjer, ovo je zgodno za oznaku koda. ‘usecontent?’ Ova vrsta se može ponašati kao ‘usecontent’ ili ‘callback_replace’ ovisno o situaciji. Relevantnost određene opcije određena je prisutnošću prethodno pretpostavljenog atributa u oznaci bb. Ako je atribut pronađen, koristit će se obrada 'callback_replace', inače će se oznaka obraditi kao 'usecontent'. Naziv atributa za pretraživanje naveden je putem parametra $params[‘usecontent_param’]. Ako je navedeno zadano ime, tada se pretpostavlja vrijednost atributa dodijeljena izravno oznaci, na primjer, vrijednost zadanog atributa bit će tekst "http://link". Ova tehnika se često koristi, na primjer, za oznaku. Ova oznaka se može koristiti u dva oblika: http://www.example.com/ i tekst veze, kao i [b]podebljani tekst. U prvom slučaju koristit će se tip 'usecontent' jer Tekst veze trebao bi biti prikazan bez ikakvog oblikovanja (a zapravo će sama poveznica biti netočna ako sadrži suvišne znakove). Inače, treba koristiti tip 'callback_replace', jer sama veza se prosljeđuje kao zaseban parametar, a tekst uokviren u vezi može sadržavati neku vrstu oblikovanja.
Bilješka: Možete odrediti nekoliko parametara za njihovo traženje, za koje u $params[‘usecontent_param’] ne morate proslijediti niz, već niz koji sadrži nizove. Na primjer: $bbcode->addCode (..., array('usecontent_param' => array ('parameter1', 'parameter2')), ...);. 'callback_replace?' Suprotno je od 'usecontent?'. Ako se jedan od atributa navedenih u usecontent_param pojavljuje u oznaci, bit će obrađen kao 'usecontent', inače kao 'callback_replace'.

Primjer koda iz "borbenih" uvjeta

Ovdje je primjer datoteke index.php s naprednijom konfiguracijom klase za obradu većeg broja oznaka, u kojoj možete razumjeti kako funkcioniraju funkcije povratnog poziva itd.:

< ?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.""; ) // Funkcija za umetanje slika function do_bbcode_img ($action, $attributes, $content, $params, $node_object) ( //Dio funkcije koja se bavi //samo provjerom podataka oznake ako ($$ akcija == "provjeri valjanost") ( 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; ) //Izravno pretvaranje oznake u //html varijantu uz vraćanje rezultata povratak " "; ) //Stvorite objekt klase StringParser_BBCode $bbcode = new StringParser_BBCode(); //Dodajte filtar (za više detalja pogledajte službenu dokumentaciju), //koristeći našu funkciju convertlinebreaks, koja će //konvertirati prijelome redaka u tekstu u jedan $bbcode ->addFilter (STRINGPARSER_FILTER_PRE, "convertlinebreaks"); //Dodajmo naše vlastite parsere za različite vrste objekata //(za više detalja, pogledajte službenu dokumentaciju) //Navodimo preko koje funkcije / /sadržaj ovih oznaka treba proći, na primjer, kroz funkciju //htmlspecialchars za sprječavanje XSS-a itd. $bbcode->addParser (array ("block", "inline", "link", "listitem"), "htmlspecialchars "); $bbcode->addParser (niz (" block", "inline", "link", "listitem"), "nl2br"); $bbcode->addParser ("list", "bbcode_stripcontents"); // Dodajte bb kod koji se koristi u obrascu: //Zaglavlje prve razine teksta $bbcode->addCode ("h1", "simple_replace", null, array ("start_tag" => "

", "end_tag" => "

"), "block", array ("listitem", "block", "link"), array ()); //Dodaj bb kod koji se koristi u obrascu: //Tekst zaglavlja druge razine $bbcode->addCode ( "h2", "jednostavna_zamjena", null, niz ("start_tag" => "

", "end_tag" => "

"), "block", array ("listitem", "block", "link"), array ()); //Dodajte bb-kod koji se koristi u obliku: //Tekst zaglavlja treće razine $bbcode-> addCode ( "h3", "simple_replace", null, array ("start_tag" => "

", "end_tag" => "

"), "block", array ("listitem", "block", "link"), array ()); //Dodaj bb kod koji se koristi u obrascu: //Tekst zaglavlja četvrte razine $bbcode->addCode ( " h4", "jednostavna_zamjena", null, niz ("start_tag" => "

", "end_tag" => "

"), "block", array ("listitem", "block", "link"), array ()); //Dodaj bb kod koji se koristi u obrascu: //Tekst zaglavlja pete razine $bbcode->addCode ( "h5", "jednostavna_zamjena", null, niz ("start_tag" => "
", "end_tag" => "
"), "block", array ("listitem", "block", "link"), array ()); //Dodaj bb kod koji se koristi u obrascu: //Tekst zaglavlja šeste razine $bbcode->addCode ( " h6", "jednostavna_zamjena", null, niz ("start_tag" => "
", "end_tag" => "
"), "block", array ("listitem", "block", "link"), array ()); //Postavite zastavice za bb-kodove od h1 do h6, //indicirajući da su blok elementi, / /što će nadalje imati blagotvoran učinak na pametno //generiranje HTML koda. Takav element, na primjer, ne može //biti unutar drugih blok elemenata $bbcode->setCodeFlag("h1", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $ bbcode ->setCodeFlag("h2", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $bbcode->setCodeFlag("h3", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $bbcode->setCodeFlag("h4", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $ bbcode->setCodeFlag("h5", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $bbcode->setCodeFlag("h6", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); //Dodavanje bb-koda [b], koji se koristi u obliku: / /[ b]odabrani tekst $bbcode->addCode("b", "simple_replace", null, array("start_tag" => " ", "end_tag" => ""), "inline", array ("listitem", "block", "inline", "link"), array ()); //Dodajte bb kod [i], koji se koristi u obliku: //[i] kurzivni tekst $bbcode->addCode("i", "simple_replace", null, array("start_tag" => " ", "end_tag" => ""), "inline", array ("listitem", "block", "inline", "link"), array ()); //Dodajte bb kod koji se koristi u obrascu: //http://www. needsite.domain i //Tekst veze $bbcode->addCode ("url", "usecontent?", "do_bbcode_url", array ("usecontent_param" => "default"), "link", array ("listitem", " block", "inline"), array ("link")); //Dodaj bb kod koji se koristi u obliku: //http://www.needsite.domain $bbcode->addCode ("link", "callback_replace_single " , "do_bbcode_url", array (), "link", array ("listitem", "block", "inline"), array ("link")); //Dodajte bb kod koji se koristi u obrascu: // http ://www.needsite.domain/img.jpg $bbcode->addCode("img", "usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", " inline ", "link"), array ()); //Dodajte bb kod (značenje je isto //kao ), koji se koristi u obliku: //http://www.needsite.domain/img. jpg $ bbcode->addCode("bild", "usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", "inline", "link"), array()) ; //Kreirajte grupnu sliku od bb-kodova img i bild //za kasniju mogućnost postavljanja //određenih pravila za te grupe $bbcode->setOccurrenceType ("img", "image"); $bbcode->setOccurrenceType("bild", "image"); //Naznačujemo da se oznake iz grupe slika //mogu pojaviti (obraditi) u tekstu najviše //dva puta. U našem slučaju, to je neophodno kako //korisnik ne bi mogao umetnuti više od dvije //slike u tekst poruke $bbcode->setMaxOccurrences ("image", 2); //Dodaj bb kod $bbcode->addCode ("list", "simple_replace", null, array ("start_tag" => "
    ", "end_tag" => "
"), "list", array ("block", "listitem"), array ()); //Dodajte bb-kod [*], koji označava da se ova oznaka //može koristiti samo unutar oznake //s tipom popis (dodijelili smo ovaj tip gornjoj oznaci) $bbcode->addCode ("*", "simple_replace", null, array ("start_tag" => "
  • ", "end_tag" => "
  • "), "listitem", array ("list"), array ()); //Postavite oznake za oznake i [*] //Naznačite da za kod [*] oznaka za zatvaranje //nije potrebna, stoga je moguća će biti //sljedeća konstrukcija: // //[*] Stavka //[*] Stavka // //Završna oznaka bit će dodana automatski //tijekom procesa generiranja html koda $bbcode->setCodeFlag ("*", "closetag", BBCODE_CLOSETAG_OPTIONAL); //Koliko ja razumijem, ova zastavica znači da se oznaka [*] //uvijek može koristiti samo //na početku novog retka $bbcode->setCodeFlag ( "*", "paragraphs", true); // je blok element $bbcode->setCodeFlag ("list", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); //Prije uvodne oznake //znak retka bit će uklonjen $bbcode ->setCodeFlag ("list", "opentag.before.newline", BBCODE_NEWLINE_DROP); //Prije završne oznake //znak retka bit će uklonjen $bbcode->setCodeFlag ("list", "closetag.before.newline" , BBCODE_NEWLINE_DROP); //Kao rezultat, možemo koristiti popise u bb kodu, //upotrebljavajući zajedno popis i oznake *: // //[*] Element popisa //[*] Element popisa //[*], itd. // //Aktiviraj obradu paragrafa $bbcode->setRootParagraphHandling (true); //Koliko ja razumijem, ovo pokazuje //koje znakove treba koristiti za zamjenu //prijeloma retka unutar odlomka //(u suštini, kako postupiti s praznim odlomcima). $bbcode->setParagraphHandlingParameters("\n", ""); $res_text = "Testni tekst [b]za provjeru rada klase"; //Za svaki slučaj, uklonite sve preostale //znakove za prijelom retka u obliku "\r", //ako ih ima u tekstu $res_text = str_replace("\r", "", $res_text); //Voila! echo $bbcode->parse($res_text);

    Pogovor

    Ja, naravno, nisam napravio potpuni prijevod dokumentacije, već samo minimum; za detaljniju dokumentaciju možete pogledati službenu web stranicu (općenito, tamo je opisano mnogo više različitih mogućnosti).

    Ovu je biblioteku također lako implementirati u bilo koji PHP okvir; na primjer, uspješno sam to napravio za cackePHP.

    Ako ste i vi naišli na slične biblioteke (ispravno rade s paragrafima! 🙂), bilo bi zanimljivo znati za njih.

    Uvod

    bbCode - Kod oglasne ploče ili označni jezik koji se koristi za formatiranje poruka na mnogim sustavima oglasnih ploča (BBS) i forumima. Oznake slične HTML oznakama koriste se za oblikovanje teksta. Za razliku od HTML oznaka, bbCode oznake su u uglastim zagradama. Prije prikazivanja stranice, mehanizam foruma analizira tekst i pretvara bbCode u HTML kod.

    Na mnogim forumima, mogućnost korištenja BB kodova konfigurira administrator pojedinačno za svaki odjeljak foruma. Stoga, prije korištenja BB kodova u porukama, morate biti sigurni da su dopušteni.

    Oblikovanje fonta

    Osnovne oznake za rad s tekstom:

    [p] Normalni paragraf s uvlakom.

    Stavak koji se može stilizirati.
    * U nastavku, "stil" je analog stila u HTML-u.
    tekst je sličan u HTML-u

    tekst


    ** Možete koristiti druge oznake s oznakama [p], kao što su [b], [i], [s] itd.

    Tekst čija se svojstva mogu mijenjati pomoću stila.

    Ograničeno područje koje se može stilizirati kako bi se promijenila njegova svojstva (položaj, granice, ispuna, svojstva sadržaja itd.).
    * Prema zadanim postavkama, granice područja nisu vidljive. Na jednoj stranici može biti nekoliko područja odjednom.

    Oblikovanje teksta:

    [b] Važan tekst, podebljano

    [i] Važan tekst, kurziv

    Samo hrabro

    Samo kurziv

    [u] Podcrtani tekst

    [s] Precrtani tekst - isto kao opcija

    Manji font

    Oznaka fusnote iznad ili indeks ispod teksta

    Izbrisan tekst

    Veličine fonta:

    Font od 13 točaka

    Font od 15 točaka

    Veličina slova 9 piksela

    Veličina slova 12 piksela

    Veličina slova 15 piksela

    Veličina 0

    Veličina +1

    Veličina +2

    Dostupne su moguće opcije veličine fonta (vizualna procjena).

    Naslovi:

    Zaglavlje razine 1

    Zaglavlje razine 2

    Zaglavlje razine 3

    Zaglavlje razine 4

    Zaglavlje razine 5

    Zaglavlje razine 6

    Oblikovanje teksta pomoću fontova:

    Font Comic Sans Ms

    Font Monotype Corsiva

    Tahoma font

    Dostupne su moguće opcije za vrste fontova (imena i vizualna ocjena).

    Ukrašavanje teksta bojom:

    Crveni tekst
    * Možete koristiti standardne verbalne oznake za boje: crvena, zelena, plava itd.

    Plavi tekst
    * Broj #0000ff označava plavu boju u RGB paleti.

    Plava pozadina
    * Boja pozadine također se može promijeniti.

    Plavi tekst, siva pozadina

    Neke unaprijed definirane boje:

    Crna Bijela Crvena Zelena Plava Ljubičasta Vatrogasna opeka Kestenjasto NarančastaCrvena Ponoćnoplava RazličakPlava
    Cyan Yellow Magenta DarkGreen DarkGoldenrod Gold Orchid BlueViolet Burlywood PeachPuff

    Neke boje u heksadecimalnom kodu su intenzitet crvene, zelene i plave (RR GG BB):

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

    Dostupne su moguće opcije za paletu boja i njihovi kodovi/nazivi.

    Poravnavanje teksta i oblikovanje odlomaka

    Poravnanje teksta:

    Poravnajte tekst lijevo

    Lijevo poravnanje sa stilom

    Lijevo poravnanje u odlomku

    Središnje poravnanje teksta

    Središnje poravnanje sa stilom

    Središnje poravnanje u odlomku

    Poravnajte tekst udesno

    Pravo poravnanje sa stilom

    Poravnanje u odlomku udesno

    Poravnajte tekst s obje strane

    Poravnajte s obje strane sa stilom

    Poravnanje u odlomku s obje strane
    * Poravnanje tekstova s ​​obje strane prikazuje se za tekstove koji su duži od jednog retka.

    Oblikovanje fusnota (komentara) s uvlačenjem odlomka:

    [q] Citat u redu

    Ponuda u skladu s nekretninama


    Tekst citiran u zasebnom bloku, koji će imati
    mala uvlaka s lijeve strane i poseban dizajn (forum stil).

    Primjeri:
    Lorem ipsum dolor sit amet
    Lorem ipsum dolor sit amet
    Lorem ipsum dolor sit amet

    Oblikovanje odlomaka i područja:

    Zdravo! U ovom paragrafu, prva rečenica će biti iz "crvenog" retka, tj. uvučen. Baš kao u tiskarstvu knjiga. Istina, to je rijetka praksa na internetu. Odlomci trebaju biti odvojeni jednostavnim prazninama.

    Unaprijed oblikovani tekst održava uvlaku s lijeve strane i između riječi te postavlja uvlaku koju odredite razmacima. Upozorenje! Oznaka ne prekida liniju automatski!

    Oblikovanje popisa

    Koristimo oznaku ili za popise s grafičkim oznakama:

    • Jedna od stavki popisa
    • Još jedan takav predmet
    • Još jedna točka.



    [*] Još jedna takva stavka
    [*] Još jedna točka.

    Za numerirane liste koristimo oznaku:

    1. Jedna od stavki popisa
    2. Još jedan takav predmet
    3. Još jedna točka.


    [*] Jedna od stavki popisa
    [*] Još jedna takva stavka
    [*] Još jedna točka.

    Nije potrebno koristiti završnu oznaku:

    • Jedna od stavki popisa
    • Još jedan takav predmet
    • Još jedna točka.


    [*] Jedna od stavki popisa
    [*] Još jedna takva stavka
    [*] Još jedna točka.

    Također je moguće izravno odrediti vrstu popisa:
    - numerirani popis
    - abecedni popis
    - popis označen rimskim brojevima

    Slike

    Http://img.cx/img/primer.jpg - primjer umetanja slike.

    Http://img.cx/img/primer.jpg - slika lijevo.

    Http://img.cx/img/primer.jpg - slika desno.
    * Ovaj kod je sličan kodu u HTML-u:

    Http://img.cx/img/primer.jpg - slika u sredini.
    * Ovaj kod je sličan kodu u HTML-u:

    Slične oznake s imenima i opisima alata:

    Važno! Ne možete koristiti navodnike u naslovu slike!

    Http://img.cx/img/primer.jpg - primjer umetanja slike.

    Http://img.cx/img/primer.jpg - slika lijevo.

    Http://img.cx/img/primer.jpg - slika desno.

    Http://img.cx/img/primer.jpg - slika u sredini.

    Slike sa naznačenim veličinama:

    Http://img.cx/img/primer.jpg - primjer slike s veličinom.
    * Ovaj kod je sličan kodu u HTML-u:

    Http://img.cx/img/primer.jpg - slika lijevo, s veličinom.

    Http://img.cx/img/primer.jpg - slika desno, s veličinom.

    Umetanje velikih slika s trakama za pomicanje:

    Http://www..jpg - slika u odabranom području ako je veća od dostupne veličine prikaza na forumu.

    Adresa - otvorite sliku u novom prozoru.
    * Ovaj kod je sličan kodu u HTML-u:

    Adresa - otvorite sliku u istom prozoru.
    * Ovaj kod je sličan kodu u HTML-u:

    Uvod

    Što je BBCode? BBCode je posebna implementacija HTML jezika koja pruža praktičnije opcije za oblikovanje poruka. Mogućnost korištenja BBCodea u porukama određuje administrator foruma. Osim toga, BBCode možete onemogućiti u bilo kojem trenutku u bilo kojoj poruci koju objavite izravno iz obrasca za poruke. Sam BBCode stilski je vrlo sličan HTML-u, ali su oznake zatvorene u uglatim zagradama [...] umjesto< … >. Uz neke predloške, moći ćete dodati BBCode svojim porukama pomoću jednostavnog sučelja iznad polja za unos teksta. Unatoč tome, ovaj vam vodič može biti od pomoći.

    Oblikovanje teksta

    Kako tekst učiniti podebljanim, kurzivom ili podcrtanim? BBCode uključuje oznake za brzu promjenu stila teksta. To možete učiniti na sljedeće načine:
    • Da biste podebljali tekst, stavite ga u oznake [b]. Primjer:

      [b] zdravo

      izdat će se zdravo

    • Koristite oznake za podcrtavanje [u]. Primjer:

      [u] Dobro jutro

      dat će Dobro jutro

    • Kurziv se izvodi pomoću oznaka [i]. Primjer:

      Ovaj [i] Sjajno!

      izdat će ovo Sjajno!

    Kako mogu promijeniti boju ili veličinu teksta? Sljedeće oznake mogu se koristiti za promjenu boje ili veličine fonta (konačni izgled ovisi o sustavu i pregledniku korisnika):
    • Boju teksta možete promijeniti tako da ga okružite oznakama . Možete navesti ili dobro poznati naziv boje (crvena, plava, žuta itd.) ili njen heksadecimalni prikaz (#FFFFFF, #000000 itd.). Za stvaranje crvenog teksta možete koristiti:

      Zdravo!

      Zdravo!

      Obje metode rezultirat će Hello!

    • Promjena veličine se postiže na sličan način korištenjem oznake . Ova oznaka ovisi o predlošcima koji se koriste, ali preporučeni format je numerička vrijednost koja pokazuje veličinu teksta kao postotak, u rasponu od 20 (vrlo mala) do 200 (vrlo velika) zadane veličine. Primjer:

      MALI

      najvjerojatnije će pokazati MALO

      dok:

      JAKO VELIKO!

      dat će JAKO VELIKE!

    Je li moguće kombinirati oznake za oblikovanje? Da, naravno da možete. Na primjer, da biste privukli pozornost, možete napisati:

    [b] POGLEDAJ ME!

    što će dati? POGLEDAJ ME!

    [b][u] Ovaj unos nije točan

    Citiranje i ispisivanje oblikovanih tekstova

    Citiranje teksta u odgovorima Postoje dva načina citiranja tekstova: s naznakom autora i bez naznake.
    • Kada koristite gumb Citat za odgovor na poruku, tekst poruke se dodaje u polje za unos teksta, okružen oznakama . Ova metoda omogućuje citiranje s vezom na autora ili na nešto drugo što unesete u navodnike. Na primjer, da citiram dio teksta autora Mr. Blobby, unesi:

      Ovdje unesite tekst od Mr. Blobby

      Kao rezultat toga, tekst “Mr. Blobby je napisao: " Zapamtiti potrebno naziv staviti pod navodnike (""); ne mogu se izostaviti.

    • Druga metoda vam jednostavno omogućuje da nešto citirate. Da biste to učinili, postavite tekst između oznaka . Prilikom pregledavanja poruke, ovaj tekst će biti u bloku citata.
    Izlazni kod ili obogaćeni tekst Ako trebate prikazati dio programskog koda ili nešto drugo što treba prikazati fontom fiksne širine (Courier), tada tekst stavite u oznake . Primjer:

    echo "Ovo je programski kod";

    Sva oblikovanja korištena unutar oznaka , bit će spremljeno. Označavanje sintakse PHP koda može se izvršiti pomoću oznake i preporučuje se kada se postavljaju poruke koje sadrže isječke PHP kodova.

    Izrada popisa

    Napravite popis s grafičkim oznakama BBCode podržava dvije vrste popisa: s grafičkim oznakama i numerirani. Gotovo su identični svojim HTML ekvivalentima. Na popisu s grafičkim oznakama svi se elementi prikazuju uzastopno, a svaki je označen simbolom markera. Koristite oznake za izradu popisa s grafičkim oznakama i definirajte svaki element liste s [*] . Na primjer, za prikaz vaših omiljenih boja možete koristiti:


    [*] Crvena
    [*] Plava
    [*] Žuta boja

    Ovo će proizvesti ovakav popis:

    • Crvena
    • Plava
    • Žuta boja
    Napravite numerirani popis Druga vrsta popisa je numerirana, što vam omogućuje da odaberete što će točno biti prikazano ispred svakog elementa. Koristite oznake za izradu numeriranog popisa , ili za izradu abecednog popisa. Kao i kod popisa s grafičkim oznakama, stavke popisa definirane su pomoću [*] . Primjer:


    [*] Idi u dućan
    [*] Kupite novo računalo
    [*]

    će dati sljedeće:

    1. Idi u dućan
    2. Kupite novo računalo
    3. Grdite računalo kada se pojavi greška
    Za abecedni popis koristite sljedeće:


    [*] Prvi mogući odgovor
    [*] Drugi mogući odgovor
    [*] Treći mogući odgovor

    što će dati?

    1. Prvi mogući odgovor
    2. Drugi mogući odgovor
    3. Treći mogući odgovor

    Stvaranje veze

    Veze na drugu stranicu phpBB podržava nekoliko načina za stvaranje poveznica, također poznatih kao URL-ovi.
    Kao i kod svih BBCode oznaka, možete se povezati s bilo kojom drugom oznakom. Na primjer, (vidi sljedeću točku), [b] i tako dalje. Kao i kod oznaka za oblikovanje, pravilno ugniježđivanje oznaka ovisi o vama. Na primjer sljedeći unos:

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

    nije točna, što može dovesti do naknadnog brisanja vaše poruke. Budi oprezan.