BBCode atbalsta vairākus URL ģenerēšanas veidus.

  • Pirmais izmanto tagu , pēc = zīmes ir jābūt vēlamajam URL. Piemēram, lai izveidotu saiti uz phpBB.com, varat izmantot:

    Apmeklējiet phpBB!

  • Ja vēlaties, lai pats URL tiktu rādīts kā saites teksts, varat vienkārši rīkoties šādi:

    http://www.phpbb.com/

  • Turklāt phpBB atbalsta funkciju, ko sauc Automātiskās saites, tādējādi jebkurš sintaktiski derīgs URL tiks pārvērsts par saiti, neizmantojot tagus vai pat http:// prefiksu. Piemēram, ierakstot www.phpbb.com savā ziņā, kad ziņa tiks apskatīta, automātiski tiks parādīta www.phpbb.com.
  • Tas pats attiecas uz e-pasta adresēm, varat vai nu tieši norādīt adresi:

    [aizsargāts ar e-pastu]

    ko dos [aizsargāts ar e-pastu] vai vienkārši ienāc [aizsargāts ar e-pastu] uz jūsu ziņu, un tas tiks automātiski konvertēts, kad tiks skatīts.

Tāpat kā ar visiem citiem BBCode tagiem, vietrāžus URL var ietīt ar citiem tagiem, piemēram (skatīt nākamo rindkopu), [b] utt. Tāpat kā formatēšanas tagu gadījumā, pareiza tagu ligzdošana ir jūsu ziņā, piemēram:

http://www.phpbb.com/images/phplogo.gif

nepareizi, kā rezultātā jūsu ziņa vēlāk var tikt izdzēsta, tāpēc esiet piesardzīgs.

Pāriet uz: Atlasiet Grūtniecības plānošanas forumu. Mēs ņemam ... es gribu bērnu! Plānošanas mēs ņemam ... Plānošanas runātāji Hochushki - izklaidētāji Grūtniecības plānošanas dienasgrāmatas Grūtniecība Grūtnieču runātāji Bērnam vārda izvēle Sadaļas arhīvs Grūtniecība Topošās māmiņas un bērna veselība Dzemdības un dzemdību nami Apsveikumi ar dzemdībām Dzemdību namu diskusija Sākums dzemdības Bērni - bērnu aprūpe, uzturs un ... Rūpes par bērnu Par pārtiku. Viss par bērnu pārtiku Runājiet par bērniem paredzētiem produktiem -... Zīdīšana Mazuļa aprūpe. Foruma arhīvs Foruma arhīvs Preces bērniem Bērnu veselība un zāles... Vakcinācija Citi bērni Bērnu zobārstniecība Alergoloģija, dermatoloģija, imm... Diskusija par medicīnas iestādēm... Mūsu bērni. Vienaudžu komunikācija ... Dvīņu, trīnīšu un tā tālāk klubs ... Zemes jautājums Lielas daudzbērnu mātes Audzina bērnus. Ģimenes attiecības... Bērnu attīstība un izglītošana Amatniecība - veidojam kopā ar bērniem Bērnu grāmatas, filmas, audio pasakas Pulciņi, pulciņi un izglītības centri Kurp doties ar bērnu. Bērni... Bērnudārzi un aukles Bērnudārzi Novosibirskā: adrese... Sports bērniem Skola un skolēni. Universitātes un koledžas, ... Ģimenes izglītība. Novosibirskas un... Skolu sadaļas arhīvs Audžubērni. Adopcija. Opec... Forums personīgās vēstures apspriešanai... Pusaudži. Bērni un pubertāte Māja un ģimene Viss par nekustamo īpašumu. Mājas, dzīvokļi... Remonts un interjers Māju, garāžu,... Lauku biedrība Sibmama. Ogors... Lauku tirgus. Preces vasarnīcām, ... Dārzs un dārzs (sēklas, stādi, ... Sibīrijas dārzi - autora tēmas Mūsu puķu dārzs Apspriežam vasarnīcas - dārzu ... gatavošanās... Iepirkšanās mājai Mājsaimniecības Foruma arhīvs Forums arhīvs Jaunais gads Kāzu forums Kāzu paziņojumi (DO) Kulinārijas forums Kulinārijas zibakcija Konditorejas izstrādājumi, maizes izstrādājumi Gatavošanās - marinēti gurķi, ievārījumi, m... Uz pārtikas veikalu Virtuves piederumi - trauki un Ēdienu gatavošanas arhīvs Vaļasprieki Kolekcionāri Galda virsma... Leļļu mīļotāju klubs Kinder- stāsts - kolekcionējams... Dzīvnieki Kaķi Suņi Sludinājumi Dzīvnieki Pirkšana, ... Palīdzība dzīvniekiem ... Vijolītes, senpaulijas, gloksīnijas un k... Foto puķu dārzs Ziedu foruma arhīvs Rokdarbi Šūšana - tehnikas, raksti, diskusija ... vatēšana, savārstījums .. Arhīva sadaļa Rokdarbi Preces rokdarbiem (TO) Sludinājums... Ģimenes dzīve Sibpapa Par seksu (18+) Fotoforums. Viss par foto Automobiļu forums Autoforuma arhīvs Ceļojumi un tūrisms. Viesnīcas un... Krievija un tuvākās ārzemēs... Sibīrija un Altaja. Atpūtas aktivitātes... Turcija - Antālija, Marmarisa, Sta... Dienvidaustrumāzija - Taizeme, Vjetnama, Ķīna, ... PIRMS sadaļas Ceļojumi. Mājoklis, ... Skaistums un kopšana. Modes stils. Zd... Ķermeņa un sejas kopšana. Kosmetologs... Matu kopšana. Frizūras Iegūstiet formu! Sports un fitness. Pl... Pieaugušo ārstēšana un veselība. Mīļā... Mode un stils. Tendenču diskusija Veiksmīgs pirkums Smaržu mīļotāju klubs Smaržu dzērieni Vispārējais skaistuma arhīvs Darbs. Atpūta. Vispārīgi jautājumi Par visu Šodien pasaulē Cik biedējoši ir dzīvot Juridiskās izglītības programma Bankas un finanses Darbs un izglītība. Pieaugušajiem Pašu bizness. Forums biznesa sievietēm Piedāvā pirkt/pārdot b... Par ticību Kultūras dzīve Zinātne un dzīve Izklaide. Humors, joki. Ig... Iepazīsti sevi: garīgo un ķermenisko... Sibmama dzīve Vietnes un foruma diskusija Sibmama Club. Atlaides Novosibirskā... Izmēģinājuma brauciens Sibmama Tikšanās vieta Konkursi Citāts Forumu arhīvs Sibmama Foruma arhīvs Tikšanās vieta Aptaujas arhīvs Zaļais forums. Arhīva sīkrīki. Arhīvs Labdarības vecāku... Vāc palīdzību slimiem bērniem Mammai vajadzīga palīdzība Labdarības foruma arhīvi Forumi citām pilsētām un valstīm Ārzemju māmiņas un tās, kas gatavas... Sibmums Maskavā. Reģioni Krasnojarskas māmiņu un tētu forums Tomskas māmiņu un tētu forums Omskas Sibmums sazinās šeit:) Novokuzņeckas māmiņu un tētu forums Kemerovas māmiņu un tētu forums - runāt... Celtniecība un remonts Barnaulā un A... Mājsaimniecība Barnaulā. ... Pieaugušo veselība Barnaulā Barnaula Mūsu brīvdienas Dāmu triki. Skaistums, kopšana, ... Tūrisms un ceļojumi Barnaulas iedzīvotāji Barnaula. Dzīvnieki un augi,... Kultūras dzīve Barnaulā... Barnaulas sadaļas arhīvs Grūtniecība un dzemdības Barnaulā Altaja bērni ir audzināti... Bērnu sports Barnaulā un Altā... Bērnudārzi, skolas, universitātes, koledžas ... Mūsu bērnu veselība - Barnaulas arhīvs. Altaja bērni Bērnu nometnes - vasara, skola... Ziņojumu dēlis Barnaul Barnaul. DO Apģērbi un citas preces... Barnaul DO Apavi bērniem Barnaul. DO Bērnu apģērbi Barnaul. DO Preces bērniem Barnaul. DO Apavi pieaugušajiem Barnaul. DO Apģērbi pieaugušajiem Barnaul DO Barnaul Real Estate DO. Dzīvnieku tirdzniecība un... Barnaula. DO Mēbeles un furnitūra Barnaul. DO Darbs un pakalpojumi DO Skaistums un ķermeņa kopšana Ba... Barnaul. PIRMS Apmācības, apļi... Barnauls. Grāmatnieks - PIRMS Grāmatas un ... atdošu bez maksas. Sludinājumi Barnaulā LAI Pērciet dažādus izstrādājumus Barnaulā. Apjoms... Barnaula koppirkumi... Barnaula. JV Apģērbi (pieaugušo un... Barnaula. JV Apavi, galantērijas preces... Barnaul. JV Citas preces Barnaul. Veiksmīga smilšu kaste JV Bijskā Hobiju kluba kopējie pirkumi... Barnaul. TO) Novosibirskā Apģērbi zīdaiņiem līdz g. gadam (līdz ... Apģērbi pirmsskolas vecuma bērniem (no 86 ... Preces skolēniem (no 122 ... Bērnu transports.Rati un mašīnas... Bērnu mēbeles (DO) Preces mājai un ģimenei (DO)) Apģērbi pieaugušajiem (DO) Preces grūtniecēm un barojošām sievietēm... Apavi pieaugušajiem (DO) Automobiļi DO Roku darbs ( DO) - Roku darbs... Mēbeles un lielgabarīta preces... Sadzīves tehnika, datori utt. un kopšana (DO) ) Palīdzība mācībās Pasniedzēji (DO) Apmaiņas un nomas punkts Atdošu Nekustamo īpašumu (DO) Sludinājumi par nekustamā īpašuma nomu Iepirkšanās klubs Komercpiedāvājumi Viss bērniem - aprūpe, attīstība,... Ārzemju pirkumi Tīkla mārketings, MLM Pārtikas grozs priekš jūs un ... Preces un pakalpojumi mājai, celtniecībai ... JV - mānija (Kopējie pirkumi b ... JV mānijas arhīvs Iepirkšanās fani - lielībnieki un lielie ... Speciālistu konsultācijas Ginekologa konsultācijas , d... Konsultācijas pediatrs Med... Oftalmologa konsultācijas Ortodonta konsultācijas Ģimenes konsultants. Psihologs A ... Vecāku pieredzes cūciņa banka Seksologa konsultācijas (18+) Speciālistu konsultācijas. Arhīvs Pediatra konsultācijas Klīnikas speciālistu konsultācijas Jurista konsultācijas Speciālista konsultācijas M... Advokāta konsultācijas Spermas ārstu konsultācijas Medicīnas speciālistu konsultācijas Ārsta homeopātiskā konsultācija Ārstu ekspertu konsultācijas. .. Ārstu speciālistu konsultācijas .. Igora oftalmologa konsultācijas... Bērnu oftalmologa konsultācijas... Bērnu urologa konsultācijas, ... Bērnu urologa konsultācijas, ... Pieaugušo neirologa konsultācijas Bērnu neirologa konsultācijas... pēc ma. .. Psihologi Aleksandrs un Katerina... Bērnu speciālistu konsultācijas... Ortodonta konsultācijas

BBCode ir īpaša HTML ieviešana. To, vai jūs varat izmantot BBCode savās ziņās forumā, nosaka administrators. Turklāt jūs varat atspējot BBCode katrai ziņai, izmantojot publicēšanas veidlapu. Pats BBCode pēc stila ir līdzīgs HTML, tagi ir ievietoti kvadrātiekavās [ un ], nevis< and >un tas piedāvā lielāku kontroli pār to, kas un kā kaut kas tiek parādīts. Atkarībā no izmantotās veidnes BBCode pievienošana jūsu ziņām var būt daudz vienkāršāka, izmantojot noklikšķināmu interfeisu virs ziņojumu apgabala publicēšanas veidlapā. Pat ar to jums var noderēt šī rokasgrāmata.

Teksta formatēšana

Lai mainītu teksta krāsu vai izmēru, var izmantot šādus tagus. Ņemiet vērā, ka izvades izskats būs atkarīgs no skatītāja pārlūkprogrammas un sistēmas:

  • Teksta krāsas maiņa tiek panākta, to ietinot . Varat norādīt atpazītu krāsas nosaukumu (piem., sarkans, zils, dzeltens utt.) vai heksadecimālo tripleta alternatīvu, piem., #FFFFFF, #000000. Piemēram, lai izveidotu sarkanu tekstu, varat izmantot:

    Sveiki!

    Sveiki!

    Abi izvadīs Hello!

  • Teksta lieluma maiņa tiek panākta līdzīgā veidā, izmantojot . Šis tags ir atkarīgs no lietotāja atlasītās veidnes, taču ieteicamais formāts ir skaitliska vērtība, kas atspoguļo teksta lielumu procentos, sākot no 20 (ļoti mazs) līdz 200 (ļoti liels) pēc noklusējuma. Piemēram:

    MAZS

    parasti būs MAZS

    MILZĪGI!

    būs MILZĪGI!

Jā, protams, jūs varat, piemēram, lai piesaistītu kāda uzmanību, jūs varat rakstīt:

[b] PASKATIES UZ MANI!

tas iznāktu PASKATIES UZ MANI!

Tomēr mēs neiesakām izvadīt daudz teksta, kas izskatās šādi! Atcerieties, ka jums, plakātam, ir jānodrošina atzīmju pareiza aizvēršana. Piemēram, šis ir nepareizs:

[b][u] Tas ir nepareizi

Fiksēta platuma teksta citēšana un izvadīšana

Ir divi veidi, kā varat citēt tekstu — ar atsauci vai bez tā.

  • Kad izmantojat Citēšanas funkciju, lai atbildētu uz ziņu uz tāfeles, ievērojiet, ka ziņas teksts tiek pievienots ziņojuma logam, kas ir pievienots bloķēt. Šī metode ļauj citēt ar atsauci uz personu vai ko citu, ko izvēlaties ievietot! Piemēram, lai citētu kādu teksta daļu Blobijs rakstīja, ka tu ieies:

    Teksts Mr. Blobijs rakstīja, ka dotos šeit

    Iegūtajā izvadē pirms faktiskā teksta automātiski tiks pievienots "Mr. Blobijs rakstīja:". Atceros tevi obligāti Iekļaujiet pēdiņas "" ap vārdu, kuru citējat, tās nav obligātas.

  • Otrā metode ļauj kaut ko akli citēt. Lai to izmantotu, iekļaujiet tekstu tagus. Skatot ziņojumu, teksts tiks parādīts citātu blokā.

Ja vēlaties izvadīt koda fragmentu vai faktiski jebko, kam nepieciešams fiksēts platums, piem. Kurjera tipa fonts, kurā jāiekļauj teksts tagus, piem.

echo "Tas ir kaut kāds kods";

Viss iekšā izmantotais formatējums tagi tiek saglabāti, kad tos vēlāk skatīsit. PHP sintakses izcelšanu var iespējot, izmantojot un ir ieteicams, ievietojot PHP koda paraugus, jo tas uzlabo lasāmību.

Sarakstu ģenerēšana

BBCode atbalsta divu veidu sarakstus, nesakārtotus un sakārtotus. Tie būtībā ir tādi paši kā to HTML ekvivalenti. Nesakārtots saraksts secīgi vienu pēc otra izvada katru saraksta vienumu, katram pievienojot atkāpi ar aizzīmes rakstzīmi. Lai izveidotu nesakārtotu sarakstu, kuru izmantojat un definējiet katru saraksta vienumu, izmantojot [*] . Piemēram, lai uzskaitītu savas iecienītākās krāsas, kuras varat izmantot:


[*] sarkans
[*] Zils
[*] Dzeltens

Tādējādi tiktu izveidots šāds saraksts:

  • Dzeltens

Otrs saraksta veids, sakārtots saraksts, sniedz jums kontroli pār to, kas tiek izvadīts pirms katra vienuma. Lai izveidotu sakārtotu sarakstu, kuru izmantojat lai izveidotu numurētu sarakstu vai alternatīvi alfabētiskam sarakstam. Tāpat kā nesakārtotajā sarakstā, vienumi tiek norādīti, izmantojot [*] . Piemēram:


[*] Iet uz veikaliem
[*] Pērciet jaunu datoru
[*]

radīs sekojošo:

  1. Iet uz veikaliem
  2. Pērciet jaunu datoru
  3. Bļaustieties pie datora, kad tas avarē
Savukārt alfabētiskajam sarakstam jūs izmantotu:


[*] Pirmā iespējamā atbilde
[*] Otra iespējamā atbilde
[*] Trešā iespējamā atbilde

  1. Pirmā iespējamā atbilde
  2. Otra iespējamā atbilde
  3. Trešā iespējamā atbilde

Saišu izveide

PhpBB BBCode atbalsta vairākus veidus, kā izveidot URI (Uniform Resource Indicators), kas labāk pazīstami kā URL.

  • Pirmais no tiem izmanto tagu, neatkarīgi no tā, ko ierakstīsit aiz = zīmes, šī taga saturs darbosies kā URL. Piemēram, lai izveidotu saiti uz phpBB.com, varat izmantot:

    Apmeklējiet phpBB!

    Apmeklējiet phpBB! Lūdzu, ņemiet vērā, ka saite tiek atvērta tajā pašā logā vai jaunā logā atkarībā no lietotāja pārlūkprogrammas preferencēm.

  • Ja vēlaties, lai pats URL tiktu parādīts kā saite, varat to izdarīt, vienkārši izmantojot:

    http://www.phpbb.com/

    Tas radītu šo saiti: http://www.phpbb.com/

  • Turklāt phpBB piedāvā kaut ko sauc Burvju saites, tādējādi jebkurš sintaktiski pareizs URL tiks pārvērsts par saiti, nenorādot nevienu tagu vai pat sākuma http://. Piemēram, ziņojumā ierakstot www.phpbb.com, skatot ziņojumu, tiks automātiski izvadīts www.phpbb.com.
Tāpat kā ar visiem BBCode tagiem, jūs varat ietīt URL ap jebkuru citu tagu, piemēram, (skatīt nākamo ierakstu) [b] utt. Tāpat kā formatēšanas tagu gadījumā, jums ir jānodrošina pareiza atvēršanas un aizvēršanas secība, piemēram:

nav pareizi, kā rezultātā jūsu ziņa var tikt izdzēsta, tāpēc esiet piesardzīgs.

Rādīt attēlus ziņās

PhpBB BBCode ietver tagu attēlu iekļaušanai jūsu ziņās. Divas ļoti svarīgas lietas, kas jāatceras, lietojot šo tagu, ir šādas: daudzi lietotāji nenovērtē daudzus attēlus, kas tiek rādīti ziņās, un, otrkārt, jūsu parādītajam attēlam jau ir jābūt pieejamam internetā (tā nevar pastāvēt, piemēram, tikai jūsu datorā, tāpēc augšupielādējiet attēlu uz jūsu vietni, pēc tam saiti uz to). Lai parādītu attēlu, ir jāiekļauj URL, kas norāda uz attēlu tagus. Piemēram:

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

Kā norādīts iepriekš esošajā URL sadaļā, attēlu var ietīt ar a atzīmējiet, ja vēlaties, piem.

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

Man periodiski rodas nepieciešamība savos projektos izmantot BBCode "tulku" (rakstīts PHP), un vienmēr nav laika meklēt kādu vairāk vai mazāk sagremojamu risinājumu, kā rezultātā galu galā tiek izmantots vai izveidots "kruķi" katrs konkrēts gadījums.
Bet tagad, šķiet, izdevās atrast to, ko gribēju.

Mana sūdzība par šādiem gataviem risinājumiem parasti galvenokārt ir šo bibliotēku nespēja pareizi apstrādāt rindkopas. Patiesībā viņi parasti neizmanto rindkopas vispār (tag P), tā vietā viņi sava darba rezultātā vienkārši ievieto tagu
, aizstājot parastās rindas pārtraukuma rakstzīmes. Manuprāt, šī rindkopu atdarināšanas metode 98 procentos, maigi izsakoties, nav piemērota. Bet tā kā līniju ietīšana ir līdzekļu robežās
daudz vieglāk īstenot "cilvēka" vietā

, tā arī lielākā daļa 🙁 Daži pat izdomā attaisnojumus, ka viņi saka, ka ar br ir vēl pareizāk, daļēji dēļ dažādu gatavu bibliotēku izstrādātāju līdzīga slinkuma, cita daļa cilvēku domā, ka tag P ir novecojis (galu galā pat daudzos gatavajos produktos un vietnēs rindkopas tiek veidotas, izmantojot
) 🙂

Sāksim

Bet šķiet, ka tuneļa galā ir gaisma. Šī ir gatava klase darbam ar BBCode , kas, acīmredzot, ļoti labi dara savu darbu (neko labāku vēl neesmu redzējis). Vienīgais negatīvais ir tas, ka vietnē sniegtā dokumentācija nav krievu valodā. Es vēlos pārvarēt šo mīnusu šajā rakstā, sniedzot piemēru klases izmantošanai ar krievu komentāriem.

Vispirms jums ir jālejupielādē bibliotēka (šīs rakstīšanas laikā bibliotēkas versija bija 0.3.3). Lejupielādētajā arhīvā mapē src atradīsit divus mums nepieciešamos failus: stringparser.class.php un stringparser_bbcode.class.php.

Piemēram, pieņemsim, ka mums ir tukšs fails "index.php", un blakus tam mēs izveidojam mapi "/bbcode/", kurā ir divi iepriekš minētie faili.
Piemēram, faila "index.php" minimālajam saturam jābūt šādam (palaižot šo piemēru, jūs varat uzreiz redzēt, vai bibliotēka darbojas):

< ?php //Вставляем файл библиотеки require_once "bbcode/stringparser_bbcode.class.php"; //Создаем объект класса StringParser_BBCode $bbcode = new StringParser_BBCode (); //Добавляем объекту класса понятие о тэге [b] //(в итоге только этот тэг и будет //обрабатываться этим классом) $bbcode->addCode("b", "vienkāršā_aizvietošana", null, array("sākuma_tags" => " ", "end_tag" => ""), "inline", masīvs ("bloks", "iekļauts"), masīvs ()); // Parsējiet testa virkni un izvadiet to pārlūkprogrammā echo $bbcode->parse ("Pārbaudīt tekstu, šim vārdam jābūt [b ]treknrakstā"); ?>

addCode funkcija

Varbūt visinteresantākā šajā kodā ir klases objekta StringParser_BBCode funkcija addCode, šeit ir tās prototips un parametru aprakstu saraksts:

Void addCode(virkne $kods, virkne $tips, virkne $atzvanīšana, virkne $params, virkne $content_type, masīvs $atļauts_in, masīvs $nav_atļauts_in);

Šī funkcija klases objektam pievieno noteiktu kodu (bb-kodu) jēdzienu, lai pēc tam varētu noteikt šos kodus tekstā un attiecīgi apstrādāt. Tie. varam teikt, ka sākotnēji klases StringParser_BBCode objekts vispār neko nezina par standarta bb-kodiem un nekādi nespēj tos apstrādāt. Tāpēc pēc katras inicializācijas šis objekts būs “jāapmāca” visos bb-kodu veidos.

$kods (piemērā vērtība ir "b") Kods, kas jāmeklē apstrādājamajā tekstā. Tie. ja norādāt testa kodu, tad tags tiks meklēts apstrādātajā tekstā un apstrādāts saskaņā ar norādījumiem citos attiecīgās funkcijas parametros. $type (piemērā vērtība 'simple_replace') Norāde uz to, kā tags ir jāapstrādā (kāda veida tas ir). Ir dažādi iepriekš definēti tagu veidi, kas tiks aprakstīti tālāk. Mūsu piemērā ir norādīts veids 'simple_replace', kas norāda, ka tags tiks savienots pārī (atver tagu [b] un aizver ) un ka šie tagi tiks aizstāti ar tālāk norādītajiem html tagiem. $callback (piemērā nulle) Ļauj norādīt funkcijas nosaukumu, kas jāizsauc, apstrādājot tekstā atrasto tagu. Taga tipa 'simple_replace' gadījumā šī funkcija netiek izsaukta, un attiecīgi šajā parametrā var norādīt nulli. $params (piemērā tam ir vērtība array('start_tag' => ' ‘, ‘end_tag’ => ‘')) Šis parametrs pamatā nosaka, kurš html tags jāievieto bb taga vietā. Parametru nosaukums ir tieši atkarīgs no tā, kāda veida tagu mēs norādījām parametrā $type. $content_type (piemērā vērtība 'inline') Tagas iekšējā satura veids. Var pieņemt vērtības: 'inline', 'block', 'link', 'image'. Ja nemaldos, varat arī noteikt savus veidus, lai pēc tam šim saturam varētu norādīt savus individuālos filtrus (skatiet tālāk norādīto filtru izmantošanas piemēru). $allowed_in (piemērā tam ir vērtību masīvs ('block', 'inline')) Šajā parametrā var norādīt, kāda veida objektos var atrasties izveidotais bb-kods (tā apstrāde pretējā gadījumā tiks vienkārši ignorēta). Mūsu piemērā mēs norādījām, ka elements var atrasties gan bloku elementos, gan lineāros. $not_allowed_in (piemērā iestatīts uz array()) Ir pretēja nozīme iepriekšējam parametram.

Tagu apstrādes veidi

Funkcijas addCode parametra $type vērtības opciju apraksts.

'simple_replace' Apraksta vienkāršu pāra tagu. Izmantojot šāda veida tagu apstrādi, funkcijas 'params' parametrā ir jābūt divām šūnām: $params['start_tag'] un $params['end_tag']. 'start_tag' ir jāietver HTML sākuma taga analogs, un 'end_tag' jāietver attiecīgi noslēdzošais tags. 'simple_replace_single' Tas pats, kas 'simple_replace', taču tiek izmantots tikai atsevišķiem tagiem, kuriem faktiski nav satura (piemēram, br, hr utt.). Nepieciešams tikai parametrs $params['start_tag']. 'callback_replace' Izmantojot šo veidu, jūs izmantojat ārpakalpojumus pārī savienotā taga atrasto atbilstību apstrādi (izmantojot atzvanīšanas funkciju). 'callback_replace_single' Tas pats, kas 'callback_replace', taču tikai atsevišķiem tagiem. 'usecontent' Tas pats, kas 'callback_replace', tikai šāda taga saturā citi tagi netiks apstrādāti, piemēram, tas ir ērti koda tagam. “usecontent?” Šis veids var darboties kā “usecontent” vai kā “callback_replace” atkarībā no situācijas. Viena vai otra opcijas atbilstību nosaka iepriekš ieteiktā atribūta klātbūtne bb tagā. Ja atribūts tiek atrasts, tiks izmantota apstrāde “callback_replace”, pretējā gadījumā tags tiks apstrādāts kā “usecontent”. Meklējamā atribūta nosaukums tiek norādīts, izmantojot parametru $params['usecontent_param']. Ja ir norādīts nosaukums default, tad tiek pieņemta tieši tagam piešķirtā atribūta vērtība, piemēram, , noklusējuma atribūta vērtība būs teksts "http://link". Šo paņēmienu bieži izmanto, piemēram, atzīmei. Šo tagu var izmantot divos veidos: http://www.example.com/ un saites tekstā, kā arī [b]treknrakstā. Pirmajā gadījumā tiks izmantots veids 'usecontent', jo saites teksts ir jāparāda bez formatējuma (un faktiski pati saite būs nepareiza, ja tajā būs svešas rakstzīmes). Pretējā gadījumā ir jāizmanto veids “callback_replace”, kā pati saite tiek nodota kā atsevišķs parametrs, un saitē ierāmētais teksts var saturēt kādu formatējumu.
Piezīme: Lai tos meklētu, varat norādīt vairākus parametrus, kuriem $params['usecontent_param'] ir jānodod nevis virkne, bet gan masīvs, kurā ir virknes. Piemēram: $bbcode->addCode (…, array('usecontent_param' => masīvs ('parameter1', 'parameter2')), …);. “callback_replace?” ir pretstats vārdam “usecontent?”. Ja tagā ir kāds no usecontent_param norādītajiem atribūtiem, tas tiks uzskatīts par “usecontent”, pretējā gadījumā kā “callback_replace”.

Koda paraugs no "kaujas" apstākļiem

Šeit ir piemērs failam index.php ar paplašinātu klases konfigurāciju, lai apstrādātu vairāk tagu, kurā varat arī saprast, kā darbojas atzvanīšanas funkcijas utt.:

< ?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 attēlu ievietošanai funkcija do_bbcode_img ($action, $attributes, $content, $params, $node_object) ( //Daļa no funkcijas, kas //apstiprina tikai tagu datus, ja ($ action == "apstiprināt") ( if (substr ($content, 0, 5) == "data:" || substr ($content, 0, 5) == "fails:" || substr ($content, 0 , 11) == "javascript:" || substr ($content, 0, 4) == "jar:") ( return false; ) return true; ) //Taga tieša konvertēšana uz //html versiju, atgriežot rezultātu atgriešana " "; ) //Izveidojiet objektu no klases StringParser_BBCode $bbcode = new StringParser_BBCode(); //Pievienojiet filtru (sīkāku informāciju skatiet bezsaistes dokumentācijā), //izmantojot mūsu funkciju convertlinebreaks, kas //konvertēs rindas pārtraukumus tekstu vienam $bbcode ->addFilter (STRINGPARSER_FILTER_PRE, "convertlinebreaks"); //Pievienojiet savus parsētājus dažāda veida objektiem //(sīkāku informāciju skatiet bezsaistes dokumentācijā) //Mēs norādām, kuras funkcijas saturs ir šiem tagiem ir jāiet cauri, piemēram, izmantojot funkciju //htmlspecialchars, lai novērstu XSS utt. $bbcode->addParser (masīvs ("block", "inline", "link", "listitem"), "htmlspecialchars"); $bbcode->addParser (masīvs (" block", "inline", "link", "listitem"), "nl2br"); $bbcode->addParser ("saraksts", "bbcode_stripcontents"); //Pievienot bb- kods izmantots kā: //Teksta pirmā līmeņa galvene $bbcode->addCode ("h1", "simple_replace", null, masīvs ("start_tag" => "

", "end_tag" => "

"), "bloks", masīvs ("listitem", "block", "link"), masīvs ()); //Pievienot bb-kodu, kas izmantots formā: //Otrā līmeņa galvenes teksts $bbcode->addCode ( "h2", "vienkāršā_aizvietošana", null, masīvs("start_tag" => "

", "end_tag" => "

"), "bloks", masīvs ("listitem", "block", "link"), masīvs ()); //Pievienot formā izmantoto bb-kodu: //Trešā līmeņa virsraksta teksts $bbcode-> addCode ( "h3", "vienkāršā_aizvietošana", null, array("sākuma_tags" => "

", "end_tag" => "

"), "bloks", masīvs ("listitem", "block", "link"), masīvs ()); //Pievienot formā izmantoto bb-kodu: //Ceturtā līmeņa virsraksta teksts $bbcode-> addCode ( "h4", "vienkāršā_aizvietošana", null, array("sākuma_tags" => "

", "end_tag" => "

"), "bloks", masīvs ("listitem", "block", "link"), masīvs ()); //Pievienot bb-kodu, ko izmanto kā: //Piektā līmeņa virsraksta teksts $bbcode->addCode ( "h5" ", "vienkāršā_aizvietošana", null, masīvs("start_tag" => "
", "end_tag" => "
"), "bloks", masīvs ("listitem", "block", "link"), masīvs ()); //Pievienot formā izmantoto bb-kodu: //Sestā līmeņa virsraksta teksts $bbcode-> addCode ( "h6", "vienkāršā_aizvietošana", null, array("start_tag" => "
", "end_tag" => "
"), "bloks", masīvs ("saraksta vienums", "bloks", "saite"), masīvs ()); // Iestatīt karodziņus bb-kodiem no h1 līdz h6, // norādot, ka tie ir bloka elementi, / / kas labvēlīgi ietekmēs viedo html koda ģenerēšanu nākotnē. Šāds elements, piemēram, nevar // atrasties citos bloka elementos $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); //Pievienot bb kodu [b], ko izmanto kā: //[ b]atlasīts teksts $bbcode->addCode ("b", "vienkāršā_aizvietošana", null, masīvs ("start_tag" => " ", "end_tag" => ""), "iekļauts", masīvs ("saraksta vienums", "bloks", "iekļauts", "saite"), masīvs ()); //Pievienot bb-kodu [i], izmantots kā: //[i] slīpraksts teksts $bbcode->addCode ("i", "vienkāršā_aizvietošana", null, masīvs ("start_tag" => " ", "end_tag" => ""), "iekļauts", masīvs ("saraksta vienums", "bloks", "iekļauts", "saite"), masīvs ()); //Pievienot formā izmantoto bb-kodu: //http://www. needsite.domain un //Saites teksts $bbcode->addCode ("url", "usecontent?", "do_bbcode_url", masīvs ("usecontent_param" => "noklusējums"), "saite", masīvs ("listitem", " bloks", "iekļauts"), masīvs ("saite")); //Pievienot bbkodu, ko izmanto kā: //http://www.needsite.domain $bbcode->addCode("saite", "callback_replace_single", "do_bbcode_url" ", masīvs (), "saite", masīvs ("saraksta vienums", "bloks", "iekļauts"), masīvs ("saite")); //Pievienot bbkodu, ko izmanto kā: // http://www.needsite. domain/img.jpg $bbcode->addCode("img", "usecontent", "do_bbcode_img", masīvs(), "image", array("saraksta vienums", "bloķēt", "inline", "saite"), masīvs ()); //Pievienojiet bb-kodu (jēga ir tāda pati kā ), ko izmanto formā: //http://www.needsite.domain/img. jpg $bbcode->addCode("bild", " usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", "inline", "link"), array()) ; //Izveidot attēlu grupu no bb-kodiem img un bild //lai vēlāk varētu iestatīt //dažus noteikumus šīm grupām $bbcode->setOccurrenceType ("img", "image"); $bbcode->setOccurrenceType("bild", "image"); //Norādiet, ka tagi no attēlu grupas //var būt (apstrādāti) tekstā ne vairāk //divas reizes. Mūsu gadījumā tas nepieciešams, lai // lietotājs nevarētu ziņojuma tekstā ievietot vairāk kā divus // attēlus $bbcode->setMaxOccurrences ("image", 2); //Pievienot bb kodu $bbcode->addCode ("saraksts", "vienkāršā_aizvietošana", null, masīvs ("start_tag" => "
    ", "end_tag" => "
"), "saraksts", masīvs ("bloks", "saraksta vienums"), masīvs ()); // Pievienojiet bb-kodu [*], norādot, ka šo tagu // var izmantot tikai tagā // ar sarakstu tips (šo tipu piešķīrām augstāk esošajam tagam) $bbcode->addCode ("*", "simple_replace", null, masīvs ("start_tag" => "
  • ", "end_tag" => "
  • "), "listitem", masīvs ("saraksts"), masīvs ()); // Iestatiet karodziņus tagiem un [*] // Norādiet, ka kodam [*] noslēdzošais tags // nav nepieciešams , līdz ar to iespējama //šāda konstrukcija: // //[*] Vienums //[*] Vienums // //Noslēdzošais tags tiks pievienots automātiski //html koda ģenerēšanas procesā $bbcode ->setCodeFlag ("*", "closetag", BBCODE_CLOSETAG_OPTIONAL); // Kā es saprotu, šis karodziņš nozīmē, ka [*] tagu // vienmēr var izmantot tikai // jaunas rindas sākumā $bbcode- >setCodeFlag ("*", "paragraphs", true); // ir bloka elements $bbcode->setCodeFlag("saraksts", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); //Pirms taga atvēršanas //rindas rakstzīme tiks noņemta $ bbcode->setCodeFlag("saraksts", "opentag.before.newline", BBCODE_NEWLINE_DROP ); //Pirms beigu taga //rindas rakstzīme tiks noņemta $bbcode->setCodeFlag("saraksts", "closetag.before.newline" , BBCODE_NEWLINE_DROP); //Mēs varam beigties izmantot sarakstus bbcode //izmantojot sarakstu un tagus * kopā: // //[*] Saraksta elements //[*] Saraksta elements //[*] utt. // //Aktivizēt rindkopu apstrādi $bbcode->setRootParagraphHandling (true); // Cik saprotu, tādā veidā tiek norādīts // ar kādām rakstzīmēm ir jāaizstāj sastaptais // rindiņas pārtraukums rindkopas iekšienē // (faktiski kā rīkoties ar tukšām rindkopām). $bbcode->setParagraphHandlingParameters("\n", ""); $res_text = "Pārbaudiet tekstu [b], lai pārbaudītu klasi"; //Jebkuram gadījumam noņemiet visas atlikušās //rindas pārtraukuma rakstzīmes "\r" formā, //ja tādas paliek tekstā $res_text = str_replace("\r", "", $res_text); //Voila! echo $bbcode->parse($res_text);

    Pēcvārds

    Protams, es neveicu pilnīgu dokumentācijas tulkojumu, bet tikai pašu nepieciešamāko minimumu, sīkākai dokumentācijai varat meklēt oficiālo vietni (kopumā tur ir daudz vairāk dažādu funkciju).

    Šo bibliotēku ir arī viegli ieviest jebkurā php ietvarā, piemēram, es to veiksmīgi izdarīju cackePHP.

    Ja arī tu esi saskāries ar līdzīgām bibliotēkām (pareizi strādājot ar rindkopām! 🙂), būtu interesanti par tām uzzināt.

    Ievads

    Kas ir bbkods? BBCode ir īpašs HTML variants. To, vai varat izmantot BBCode savos ierakstos, nosaka foruma administrators. Turklāt jūs varēsiet atspējot BBCode izmantošanu noteiktā ziņojumā, kad tas tiks ievietots. Pats BBCode pēc stila ir līdzīgs HTML, tagi ir ievietoti kvadrātiekavās [ un ], nevis< и >; tas sniedz jums lielāku kontroli pār to, kā dati tiek izvadīti. Izmantojot dažas veidnes, jūs varēsiet pievienot BBCode savām ziņām, izmantojot vienkāršu saskarni virs teksta ievades lauka. Bet pat tad šī rokasgrāmata var būt noderīga.

    Teksta formatēšana

    Kā tekstu padarīt treknrakstu, slīprakstu vai pasvītrojumu BBCode ietver tagus, lai ātri mainītu fonta stilu, to var izdarīt šādos veidos:
    • Lai tekstu padarītu treknrakstu, pievienojiet to [b], Piemēram:

      [b] Sveiki

      kļūs Sveiki

    • Pasvītrošanai izmantojiet [u], Piemēram:

      [u] Labrīt

      būs labrīt

    • Slīpraksts tiek veikts ar tagiem [i], Piemēram:

      Šis [i] Lieliski!

      to izdos Lieliski!

    Kā mainīt teksta krāsu vai izmēru Lai mainītu fonta krāsu vai lielumu, var izmantot šādus tagus (galīgais izskats būs atkarīgs no lietotāja sistēmas un pārlūkprogrammas):
    • Teksta krāsu var mainīt, to ieskaujot . Varat norādīt zināmu krāsas nosaukumu (sarkanu, zilu, dzeltenu utt.) vai heksadecimālu attēlojumu, piemēram, #FFFFFF, #000000. Tātad, lai izveidotu sarkanu tekstu, varat izmantot:

      Sveiki!

      Sveiki!

      abas metodes radīs Hello!

    • Izmēru maiņa tiek panākta līdzīgā veidā, izmantojot . Šis tags ir atkarīgs no izmantotajām veidnēm, ieteicamais formāts ir skaitlis, kas parāda teksta lielumu procentos no 20% (ļoti mazs) līdz 200% (ļoti liels) no noklusējuma lieluma. Piemēram:

      MAZS

      visticamāk, ka MAZS

      kamēr:

      MILZĪGI!

      būs MILZĪGI!

    Vai es varu apvienot tagus? Jā, protams, ka vari. Piemēram, lai pievērstu kāda cilvēka uzmanību, varat rakstīt:

    [b] PASKATIES UZ MANI!

    ko dos PASKATIES UZ MANI!

    [b][u] Tā nav taisnība

    Saites veidošana

    Saites uz citu vietni BBCode atbalsta vairākus URL ģenerēšanas veidus.
    Tāpat kā ar visiem citiem BBCode tagiem, vietrāžus URL var ietīt ar citiem tagiem, piemēram (skatīt nākamo rindkopu), [b] utt. Tāpat kā ar formatēšanas tagiem, pareiza tagu ligzdošana ir jūsu ziņā, piemēram:

    http://phpbbex.com/logo.png

    nepareizi, kā rezultātā jūsu ziņojums var tikt dzēsts, tāpēc esiet piesardzīgs.

    Parādīt attēlus ziņojumos

    Attēla pievienošana ziņojumam BBCode ietver atzīmi, lai pievienotu attēlu jūsu ziņai. To darot, jāatceras divas ļoti svarīgas lietas: pirmkārt, daudzus lietotājus kaitina liels attēlu skaits, otrkārt, jūsu attēlam jau ir jābūt ievietotam internetā (t.i., tas nevar atrasties tikai jūsu datorā, ja vien protams, , jūs tajā nepalaidāt tīmekļa serveri!). Pašlaik nav iespējams lokāli saglabāt attēlus phpBB (paredzams, ka šis ierobežojums tiks atcelts nākamajā phpBB versijā). Lai parādītu attēlu, tas ir jāievieto ar URL tagiem. . Piemēram:

    http://phpbbex.com/logo.png

    Kā minēts iepriekšējā rindkopā, attēlu var ievietot tagos , tas ir

    http://phpbbex.com/logo.png

    Pievienojiet ziņojumam pielikumus Tagad pielikumus var ievietot jebkurā ziņojumā, izmantojot jauno BBCode tagu , ja konferences administrators ir atļāvis pievienot pielikumus un ja jums ir nepieciešamās piekļuves tiesības. Ievietošanas lapā ir nolaižamais saraksts (attiecīgi poga) pielikumu ievietošanai ziņojumā.

    Formatētu tekstu citēšana un parādīšana

    Citējot atbildēs Ir divi veidi, kā citēt tekstu — ar saiti un bez tās.
    • Ja izmantojat pogu Citēt, lai atbildētu uz ziņojumu, tās teksts tiek pievienots ievades laukam, ko ieskauj lodziņš . Šī metode ļaus jums citēt ar saiti uz autoru vai kaut ko citu, ko jūs tur rakstāt. Piemēram, lai citētu teksta fragmentu, ko rakstījis Mr. Blobi, tu rakstīsi:

      Rakstiet Mr. Blobijs būs šeit

      Rezultātā vārdi “Mr. blobby rakstīja: Atceros tevi obligāti iekļaujiet nosaukumu pēdiņās "", tos nevar izlaist.

    • Otrā metode ļauj jums kaut ko citēt. Lai to izdarītu, teksts ir jāiekļauj tagos . Apskatot ziņojumu, citātu blokā vienkārši tiks parādīts teksts.
    Koda vai formatēta teksta izvade Ja jums ir jāparāda kods vai kaut kas tāds, kas būtu jāparāda monoatstarpes fontā, teksts ir jāiekļauj tagos (lieliem tekstiem tas tiek sastādīts kā atsevišķs bloks) vai (īsiem vienrindas tekstiem, bez atsevišķa bloka), piemēram:

    echo "Tas ir kaut kāds kods";

    Visi tagu iekšpusē izmantotie formatējumi Un , tiks saglabāts. PHP sintakses izcelšanu var ieslēgt ar un ir ieteicams, sūtot ziņojumus ar PHP kodu, lai uzlabotu tā lasāmību.

    Sarakstu veidošana

    Izveidojiet sarakstu ar aizzīmēm BBCode atbalsta divu veidu sarakstus: ar aizzīmēm un numurētus. Tie ir gandrīz identiski to HTML ekvivalentiem. Sarakstā ar aizzīmēm visi elementi tiek parādīti secīgi, katrs ir atzīmēts ar marķiera rakstzīmi. Lai izveidotu sarakstu ar aizzīmēm, izmantojiet un definējiet katru elementu ar [*] . Piemēram, lai parādītu savas iecienītākās krāsas, varat izmantot:


    [*] sarkans
    [*] Zils
    [*] Dzeltens

    Tādējādi tiks izveidots šāds saraksts:

    • sarkans
    • Zils
    • Dzeltens
    Izveidojiet numurētu sarakstu Otrs saraksta veids, numurēts, ļauj izvēlēties, kas tieši tiks parādīts pirms katra elementa. Lai izveidotu numurētu sarakstu, izmantojiet vai lai izveidotu alfabētisku sarakstu. Tāpat kā aizzīmju saraksta gadījumā elementi tiek definēti, izmantojot [*] . Piemēram:


    [*] Iet uz veikalu
    [*] Pērciet jaunu datoru
    [*]

    ražos sekojošo:

    1. Iet uz veikalu
    2. Pērciet jaunu datoru
    3. Brīdi par datoru, ja rodas kļūda
    Alfabētiskajam sarakstam izmantojiet:


    [*] Pirmā iespējamā atbilde
    [*] Otrā iespējamā atbilde
    [*] Trešā iespējamā atbilde

    ko dos

    1. Pirmā iespējamā atbilde
    2. Otrā iespējamā atbilde
    3. Trešā iespējamā atbilde