Mezi muži faq php režim bbcode. Citování a zobrazování formátovaných textů
BBCode podporuje několik způsobů generování URL.
- První z nich používá značku
, za znakem = musí být požadovaná adresa URL. Například pro odkaz na phpBB.com můžete použít:
Navštivte phpBB!
- Pokud chcete, aby se jako text odkazu zobrazila samotná adresa URL, můžete jednoduše provést následující:
http://www.phpbb.com/
- Kromě toho phpBB podporuje funkci tzv Automatické odkazy, to přeloží jakoukoli syntakticky platnou adresu URL na odkaz bez potřeby značek nebo dokonce předpony http://. Například zadáním www.phpbb.com do vašeho příspěvku automaticky vznikne www.phpbb.com, když je příspěvek zobrazen.
- Totéž platí pro e-mailové adresy, adresu můžete buď zadat explicitně:
co dá [e-mail chráněný] nebo stačí zadat [e-mail chráněný] na váš příspěvek a při zobrazení bude automaticky převeden.
http://www.phpbb.com/images/phplogo.gif
špatně, což může mít za následek pozdější smazání vašeho příspěvku, takže buďte opatrní.
Přejít na: Vyberte fórum pro plánování těhotenství. Bereme... Chci dítě! Plánování bereme ... Plánovací řečníci Hochushki - baviči Deníky plánování těhotenství Těhotenství Mluvčí těhotných Výběr jména pro dítě Archiv sekce Těhotenství Zdraví nastávající matky a dítěte Porody a porodnice Blahopřání k porodu Diskuze porodnic Úvod narození Děti - péče o dítě, výživa a ... Péče o dítě O jídle. Vše o kojenecké výživě Povídání o výrobcích pro děti -... Kojení Péče o miminko. Archivy fóra Archivy fóra Zboží pro děti Dětské zdraví a léky pro... Očkování Ostatní děti Dětská stomatologie Alergologie, dermatologie, imm... Diskuse zdravotnických zařízení... Naše děti. Komunikace vrstevníků ... Klub dvojčat, trojčat a tak dále ... Pozemková záležitost Velké matky s mnoha dětmi Vychováváme děti. Rodinné vztahy... Rozvoj a výchova dětí Řemesla - vyrábíme s dětmi Dětské knihy, filmy, audio pohádky Kroužky, kroužky a vzdělávací centra Kam s dítětem. Děti... Mateřské školy a chůvy Mateřské školy v Novosibirsku: adresa... Sport pro děti Škola a školáci. Univerzity a vysoké školy, ... Rodinná výchova. Externí stáže škol a gymnázií Novosibirsku a... Archiv školní sekce Odchovanci. Přijetí. Opec... Fórum pro diskuzi o osobní historii... Dospívající. Děti a puberta Domov a rodina Vše o nemovitostech. Domy, byty... Opravy a interiér Výstavba domů, garáží,... Venkovský spolek Sibmama. Ogor... Venkovský trh. Zboží pro chaty, ... Zahrada a zahrada (semena, sazenice, ... Zahrady Sibiře - autorská témata Naše květinová zahrada Diskutujeme o chatách - zahrada ... příprava na... Nákupy pro domácnost Archiv fóra Fórum archiv Nový rok Svatební fórum Svatební oznámení (DO) Kulinářské fórum Kulinářské flash mob Cukrárny, pekařství Přípravky - nakládané okurky, džemy, m... Do obchodu s potravinami Kuchyňské náčiní - nádobí a Vaření archiv Hobby Sběratelé Stolní... Klub milovníků panenek Kinder- příběh - sběratelský... Zvířata Kočky Psi Reklamy Zvířátka Nákup, ... Pomoc zvířatům ... Fialky, saintpaulie, gloxinie a k... Foto květinová zahrada Archiv květinového fóra Vyšívání Šití - techniky, vzory, diskuze ... quiltování, patchwork .. Archivní sekce Vyšívání Zboží pro vyšívání (TO) Oznámení... Rodinný život Sibpapa O sexu (18+) Photoforum. Vše o foto Automotive forum Archiv Autofora Cestování a turistika. Hotely a sa... Rusko a země blízkého zahraničí... Sibiř a Altaj. Volnočasové aktivity... Turecko - Antalya, Marmaris, Sta... Jihovýchodní Asie - Thajsko, Vietnam, Čína, ... PŘED rubrikou Cestování. Bydlení, ... Krása a péče. Modní styl. Zd... Péče o tělo a obličej. Kosmetička... Péče o vlasy. Účesy Dostaňte se do formy! Sport a fitness. Pl... Léčba a zdraví dospělých. Zlato... Móda a styl. Diskuze o trendech Úspěšný nákup Klub milovníků parfémů Parfémové nápoje Obecný archiv krásy Práce. Odpočinek. Obecné otázky O všem Dnes ve světě Jak děsivé je žít Právní vzdělávací program Banky a finance Práce a vzdělávání. Pro dospělé Vlastní podnikání. Fórum pro podnikatelky Nabídky ke koupi/prodeji... O víře Kulturní život Věda a zábava o životě. Humor, vtipy. Ig... Poznej sám sebe: duchovní i tělesný... Sibmama's life Diskuze o webu a fóru Sibmama Club. Slevy v Novosibirsku... Testovací jízda Sibmama Místo setkání Soutěže Cenová nabídka Archiv fór Archiv fóra Sibmama Místo setkání Archiv anket Zelené fórum. Archivovat gadgety. Archiv Charitativní rodičovská... Sbírání pomoci pro nemocné děti Máma potřebuje pomoc Archivy charitativního fóra Fóra pro jiná města a země Zahraniční matky a ti, kteří jsou připraveni... Sibmums v Moskvě. Regiony Fórum Krasnojarských maminek a tatínků Fórum Tomských maminek a tatínků Omské sibmumy zde komunikují:) Fórum novokuzněckých maminek a tatínků Fórum Kemerovských maminek a tatínků - diskuse... Stavba a opravy v Barnaulu a A... Domácnost v Barnaulu. ... Zdraví dospělých v Barnaul Barnaul Naše prázdniny Dámské triky. Krása, péče, ... Turistika a cestování Obyvatelé Barnaulu Barnaul. Zvířata a rostliny, f... Kulturní život v Barnaul pro... Archiv sekce Barnaul Těhotenství a porod v Barnaul Altajské děti jsou o výchově... Dětské sporty v Barnaulu a Altě... Mateřské školy, školy, univerzity, vysoké školy... Zdraví našich dětí - Barnaulův archiv. Altajské děti Dětské tábory - letní, školní... Nástěnka Barnaul Barnaul. DO Oblečení a další zboží... Barnaul DO Dětská obuv Barnaul. DO Dětské oblečení Barnaul. DO Zboží pro děti Barnaul. DO Obuv pro dospělé Barnaul. DO Oblečení pro dospělé Barnaul DO Barnaul Real Estate DO. Prodej zvířat a... Barnaul. DO Nábytek a kování Barnaul. DO Práce a služby DO Krása a péče o tělo v Ba... Barnaul. PŘED Doučováním, kroužky... Barnaul. Knihař - PŘED Knihy a ... Daruji zdarma. Inzeráty v Barnaul TO Koupit různé v Barnaul. Objem... Barnaul společné nákupy... Barnaul. JV Oblečení (dospělé a... Barnaul. JV Obuv, galanterie... Barnaul. JV Ostatní zboží Barnaul. Úspěšné pískoviště JV v Biysku Společné nákupy Hobby klubu... Barnaul. TO) v Novosibirsku Oblečení pro miminka do r. ročníku (do ... Oblečení pro předškoláky (od 86 ... Zboží pro školáky (od 122 ... Dětská doprava.Kočárky a auta... Dětský nábytek (DO)) Zboží pro domácnost a rodinu (DO) Oblečení pro dospělé (DO) Zboží pro těhotné a kojící ženy... Obuv pro dospělé (DO) Automobilový průmysl DO Ruční výroba ( DO) - Ruční výroba.... Nábytek a objemné zboží... Domácí spotřebiče, počítače atd... Sekce archivu Ruční výroba (DO) Práce a služby (DO) Služby pro děti.a péče (DO) Pomoc při učení Lektoři (DO) Výměnné a nájemní místo Daruji Nemovitosti (DO) Inzeráty na pronájem nemovitostí Nákupní klub Komerční nabídky Vše pro děti - péče, rozvoj,... Zahraniční nákupy Síťový marketing, MLM Košík pro Vás i ... Zboží a služby pro domácnost, stavebnictví ... JV - mánie (Společné nákupy b ... Archiv JV mánie Milovníci nakupování - chlubáci a velcí ... Konzultace specialistů Konzultace gynekologa, d... Konzultace dětského lékaře Med... Konzultace očního lékaře Konzultace ortodontisty Rodinný poradce. Psycholog A ... Prasátko rodičovské zkušenosti Konzultace sexuologa (18+) Konzultace specialistů. Archiv Konzultace dětského lékaře Konzultace specialistů kliniky Konzultace právníka Konzultace specialisty na M... Konzultace právníka Konzultace lékařů spermatu... Konzultace lékařských specialistů Konzultace homeopatického lékaře Odborné konzultace lékařů. .. Konzultace lékařských specialistů .. Konzultace očního lékaře Igora... Konzultace dětského očního lékaře... Konzultace dětského urologa, ... Konzultace dětského urologa, ... Konzultace dospělého neurologa Konzultace dětského neurologa... do ma. .. Psychologové Alexander a Katerina... Dětské odborné konzultace... Ortodontické konzultaceBBCode je speciální implementace HTML. O tom, zda můžete skutečně používat BBCode ve svých příspěvcích na fóru, rozhoduje administrátor. Kromě toho můžete zakázat BBCode na základě jednotlivých příspěvků prostřednictvím formuláře pro odesílání. Samotný BBCode je podobný stylu HTML, značky jsou uzavřeny v hranatých závorkách [ a ] spíše než< and >a nabízí větší kontrolu nad tím, co a jak se něco zobrazuje. V závislosti na šabloně, kterou používáte, můžete zjistit, že přidávání BBCode do vašich příspěvků je mnohem snazší prostřednictvím klikacího rozhraní nad oblastí zpráv ve formuláři pro odesílání. I v tomto případě se vám může hodit následující průvodce.
Formátování textu
Chcete-li změnit barvu nebo velikost textu, můžete použít následující značky. Mějte na paměti, že vzhled výstupu bude záviset na prohlížeči a systému diváka:
- Změna barvy textu se dosáhne jeho zalomením
. Můžete zadat buď rozpoznaný název barvy (např. červená, modrá, žlutá atd.) nebo alternativu hexadecimální trojice, např. #FFFFFF, #000000. Chcete-li například vytvořit červený text, můžete použít:
Ahoj!
Ahoj!
Oba vydají Hello!
- Změna velikosti textu se provádí podobným způsobem pomocí
. Tato značka závisí na šabloně, kterou uživatel vybral, ale doporučený formát je číselná hodnota představující velikost textu v procentech, počínaje 20 (velmi malý) až po 200 (velmi velký) ve výchozím nastavení. Například:
MALÝ
bude obecně MALÝ
OBROVSKÝ!
bude VELKÉ!
Ano, samozřejmě můžete, například abyste upoutali něčí pozornost, můžete napsat:
[b] PODÍVEJ SE NA MĚ!
toto by vystoupilo PODÍVEJ SE NA MĚ!
Nedoporučujeme však vydávat mnoho textu, který vypadá takto! Pamatujte, že je na vás, na plakátu, abyste zajistili správné uzavření štítků. Například následující je nesprávné:
[b][u] To je špatně
Citování a výstup textu s pevnou šířkou
Text můžete citovat dvěma způsoby, s odkazem nebo bez něj.
- Když použijete funkci Citace k odpovědi na příspěvek na nástěnce, měli byste si všimnout, že text příspěvku je přidán do okna zprávy uzavřeného v
blok. Tato metoda vám umožňuje citovat s odkazem na osobu nebo cokoli jiného, co se rozhodnete uvést! Například citovat kus textu Blobby napsal, že byste zadali:
Text Mr. Blobby napsal, že půjde sem
Výsledný výstup automaticky přidá "Pan Blobby napsal:" před samotný text. Pamatuju si tě musí vložte uvozovky "" kolem jména, které citujete, nejsou volitelné.
- Druhá metoda umožňuje něco slepě citovat. Chcete-li to využít, vložte text do značky. Při zobrazení zprávy se jednoduše zobrazí text v bloku nabídky.
Pokud chcete vypsat kus kódu nebo vlastně cokoliv, co vyžaduje pevnou šířku, např. Písmo typu Courier, kterým byste měli text uzavřít značky, např.
echo "Toto je nějaký kód";
Veškeré formátování použité v rámci tagy se při pozdějším zobrazení zachovají. Zvýraznění syntaxe PHP lze povolit pomocí a doporučuje se při odesílání ukázek kódu PHP, protože zlepšuje čitelnost.
Generování seznamů
BBCode podporuje dva typy seznamů, neuspořádané a uspořádané. Jsou v podstatě stejné jako jejich ekvivalenty HTML. Neuspořádaný seznam vypíše každou položku ve vašem seznamu postupně jednu po druhé a každou odsadí znakem odrážky. Chcete-li vytvořit neuspořádaný seznam, použijte a definujte každou položku v seznamu pomocí [*] . Chcete-li například uvést své oblíbené barvy, můžete použít:
[*]
Červené
[*]
Modrý
[*]
Žlutá
To by vytvořilo následující seznam:
- Žlutá
Druhý typ seznamu, uspořádaný seznam, vám dává kontrolu nad tím, co je výstupem před každou položkou. Chcete-li vytvořit uspořádaný seznam, který používáte vytvořit číslovaný seznam nebo alternativně pro abecední seznam. Stejně jako u neuspořádaného seznamu jsou položky specifikovány pomocí [*] . Například:
[*]
Jděte do obchodů
[*]
Kupte si nový počítač
[*]
vygeneruje následující:
- Jděte do obchodů
- Kupte si nový počítač
- Nadávejte na počítač, když se zhroutí
[*]
První možná odpověď
[*]
Druhá možná odpověď
[*]
Třetí možná odpověď
- První možná odpověď
- Druhá možná odpověď
- Třetí možná odpověď
Vytváření odkazů
PhpBB BBCode podporuje řadu způsobů vytváření URI (Uniform Resource Indicators), lépe známých jako URL.
- První z nich používá
cokoli napíšete za znak = způsobí, že obsah této značky bude fungovat jako adresa URL. Například pro odkaz na phpBB.com můžete použít:
Navštivte phpBB!
Navštivte phpBB! Upozorňujeme, že odkaz se otevře ve stejném okně nebo v novém okně v závislosti na preferencích prohlížeče uživatele.
- Pokud chcete, aby se jako odkaz zobrazovala samotná URL, můžete to udělat jednoduše pomocí:
http://www.phpbb.com/
To by vytvořilo následující odkaz, http://www.phpbb.com/
- Navíc phpBB nabízí něco, co se nazývá Magické odkazy, to změní jakoukoli syntakticky správnou adresu URL na odkaz, aniž byste museli zadávat jakékoli značky nebo dokonce úvodní http://. Například zadání www.phpbb.com do vaší zprávy automaticky povede k výstupu www.phpbb.com, když si zprávu zobrazíte.
není správný, což může vést ke smazání vašeho příspěvku, takže buďte opatrní.
Zobrazovat obrázky v příspěvcích
PhpBB BBCode obsahuje značku pro vkládání obrázků do vašich příspěvků. Při používání této značky je třeba pamatovat na dvě velmi důležité věci: mnoho uživatelů si neváží toho, že se v příspěvcích zobrazuje spousta obrázků, a za druhé obrázek, který zobrazujete, již musí být dostupný na internetu (nemůže existovat například pouze na vašem počítači, takže jej nahrajte obrázek na váš web a poté na něj odkaz). Chcete-li zobrazit obrázek, musíte obklopit adresu URL odkazující na obrázek značky. Například:
https://www.google.com/intl/cs_ALL/images/logo.gif
Jak je uvedeno v části URL výše, obrázek můžete zabalit do a označte, chcete-li, např.
https://www.google.com/intl/cs_ALL/images/logo.gif
Občas mám potřebu ve svých projektech používat „interpret“ BBCode (napsaný v PHP) a vždy není čas hledat nějaké více či méně stravitelné řešení, což nakonec vyústí v použití či vytvoření „berliček“ pro každý konkrétní případ.
Ale teď se zdá, že jsem našel to, co jsem chtěl.
Moje stížnost na taková hotová řešení je obvykle v první řadě neschopnost těchto knihoven správně zacházet s odstavci. Ve skutečnosti většinou nepoužívají odstavce vůbec (tag P), místo toho v důsledku své práce značku jednoduše vloží
, nahrazující normální znaky zalomení řádku. Tento způsob napodobování odstavců v 98 procentech považuji mírně řečeno za nevhodný. Ale protože zalamování řádků je v rámci možností
mnohem snazší implementovat místo „lidského“
, tedy většina 🙁 Někteří si dokonce vymýšlejí výmluvy, že prý s br je ještě správnější, částečně kvůli podobné lenosti vývojářů různých hotových knihoven, další část lidí si myslí, že tag P je zastaralý (ostatně i v mnoha hotových výrobcích a webech se odstavce tvoří používáním
) 🙂
Začněme
Ale zdá se, že je světlo na konci tunelu. Jedná se o předpřipravenou třídu pro práci s BBCode , která očividně dělá svou práci velmi dobře (nic lepšího jsem zatím neviděl). Jediným negativem je, že dokumentace poskytovaná na webu není v ruštině. Toto mínus chci v tomto článku překonat a uvést příklad použití třídy s ruskými komentáři.
Nejprve si musíte stáhnout knihovnu (v době psaní tohoto článku byla verze knihovny 0.3.3). Ve staženém archivu ve složce src najdete dva soubory, které potřebujeme: stringparser.class.php a stringparser_bbcode.class.php.
Jako příklad řekněme, že máme prázdný soubor „index.php“ a vedle něj vytvoříme složku „/bbcode/“ obsahující dva výše zmíněné soubory.
Minimální obsah souboru "index.php" by měl být například tento (spuštěním tohoto příkladu můžete okamžitě zjistit, zda knihovna 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 ()); // Analyzujte testovací řetězec a odešlete jej do prohlížeče echo $bbcode->parse ("Testovací text, toto slovo by mělo být [b ]tučné"); ?>
funkce addCode
Možná nejzajímavější v tomto kódu je funkce addCode objektu třídy StringParser_BBCode, zde je její prototyp a seznam popisů parametrů:
Void addCode(řetězec $kód, řetězec $typ, řetězec $zpětné volání, řetězec $params, řetězec $content_type, pole $allowed_in, pole $not_allowed_in);
Tato funkce přidává koncept určitých kódů (bb-kódů) pro objekt třídy, aby pak mohla tyto kódy detekovat v textu a odpovídajícím způsobem je zpracovat. Tito. můžeme říci, že zpočátku objekt třídy StringParser_BBCode o standardních bb-kódech vůbec nic neví a není schopen je nijak zpracovat. Proto po každé inicializaci bude nutné tento objekt „natrénovat“ ve všech variantách bb-kódů.
$code (hodnota je v příkladu 'b') Kód, který se má hledat v textu, který má být zpracován. Tito. zadáte-li testovací kód, bude značka vyhledána ve zpracovávaném textu a zpracována v souladu s pokyny v ostatních parametrech příslušné funkce. $type (v příkladu hodnota 'simple_replace') Označení toho, jak má být značka zpracována (jakého typu je). Existují různé předdefinované typy značek, které budou popsány níže. V našem příkladu je zadán typ 'simple_replace', což znamená, že tag bude spárován (otvírací tag [b] a uzavírací ) a že tyto tagy budou nahrazeny níže uvedenými html tagy. $callback (v příkladu null) Umožňuje zadat název funkce, která má být volána při zpracování nalezeného tagu v textu. V případě značky typu ‚simple_replace‘ se tato funkce nevolá, a proto lze v tomto parametru zadat hodnotu null. $params (v příkladu má hodnotu array('start_tag' => ' ‘, ‘end_tag’ => ‘')) Tento parametr v podstatě určuje, která html značka by měla být vložena místo značky bb. Název parametrů přímo závisí na tom, jaký typ tagu jsme uvedli v parametru $type. $content_type (v příkladu hodnota 'inline') Typ vnitřního obsahu značky. Může nabývat hodnot: 'inline', 'block', 'link', 'image'. Pokud se nemýlím, můžete si také předepsat své vlastní typy, abyste pak mohli pro tento obsah určit své vlastní individuální filtry (viz příklad použití filtrů níže). $allowed_in (v příkladu má pole hodnot ('block', 'inline')) V tomto parametru můžete určit, jaké typy objektů uvnitř může být vytvořený bb-kód (jeho zpracování bude jinak jednoduše ignorováno). V našem příkladu jsme naznačili, že prvek může být umístěn jak uvnitř blokových prvků, tak uvnitř lineárních prvků. $not_allowed_in (v příkladu nastaveno na array()) Má opačný význam než předchozí parametr.
Typy zpracování tagů
Popis voleb pro hodnotu parametru $type ve funkci addCode.
'simple_replace' Popisuje jednoduchý párový tag. Při použití tohoto typu zpracování značek musí být v parametru funkce 'params' přítomny dvě buňky: $params['start_tag'] a $params['end_tag']. 'start_tag' by měl obsahovat analogii úvodní značky v html a 'end_tag' by měl obsahovat ukončovací značku. 'simple_replace_single' Stejné jako 'simple_replace', ale používá se pouze pro jednotlivé značky, které ve skutečnosti nemají obsah (jako br, hr atd.). Vyžaduje pouze parametr $params['start_tag']. 'callback_replace' U tohoto typu outsourcujete zpracování nalezených shod (pomocí vaší funkce zpětného volání) pro spárovanou značku. 'callback_replace_single' Stejné jako 'callback_replace', ale pouze pro jednotlivé značky. 'usecontent' Stejné jako 'callback_replace', pouze v obsahu takového tagu nebudou zpracovány další tagy, např. to je vhodné pro tag code. 'usecontent?' Tento typ se může chovat jako 'usecontent' nebo jako 'callback_replace' v závislosti na situaci. Relevance jedné nebo druhé možnosti je určena přítomností předem navrženého atributu v bb tagu. Pokud je atribut nalezen, použije se zpracování 'callback_replace', jinak bude značka zpracována jako 'usecontent'. Název prohledávatelného atributu je určen parametrem $params['usecontent_param']. Pokud je zadán název default, pak se předpokládá hodnota atributu přiřazeného přímo ke značce, například , hodnota výchozího atributu bude text "http://link". Tato technika se často používá například u tagu. Tuto značku lze použít ve dvou formách: http://www.example.com/ a Text odkazu a také [b]tučný text. V prvním případě bude použit typ 'usecontent', protože text odkazu by měl být zobrazen bez jakéhokoli formátování (a ve skutečnosti samotný odkaz bude nesprávný, pokud obsahuje cizí znaky). Jinak by měl být použit typ 'callback_replace', as samotný odkaz je předán jako samostatný parametr a text zarámovaný v odkazu může obsahovat určitý druh formátování.
Poznámka: Pro jejich vyhledávání můžete zadat několik parametrů, pro které musíte v $params['usecontent_param'] předat nikoli řetězec, ale pole obsahující řetězce. Například: $bbcode->addCode (…, array('usecontent_param' => pole ('parametr1', 'parametr2')), …);. 'callback_replace?' je opakem 'usecontent?'. Pokud se ve značce vyskytuje jeden z atributů uvedených v usecontent_param, bude s ním zacházeno jako s 'usecontent', jinak jako 'callback_replace'.
Příklad kódu z "bojových" podmínek
Zde je příklad souboru index.php s rozšířenější konfigurací třídy pro zpracování více značek, ve kterém můžete také pochopit, jak fungují funkce zpětného volání atd.:
< ?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.""; ) // Funkce pro vkládání obrázků funkce do_bbcode_img ($action, $attributes, $content, $params, $node_object) ( //Část funkce, která //ověřuje pouze data tagů, pokud ($ action == "validate") ( 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; ) //Přímý převod značky na //html verzi s vrácením výsledek návrat " ";) //Vytvořte objekt třídy StringParser_BBCode $bbcode = new StringParser_BBCode(); //Přidejte filtr (podrobnosti naleznete v offline dokumentaci), //pomocí naší funkce convertlinebreaks, která //převede konce řádků v text do jednoho $bbcode ->addFilter (STRINGPARSER_FILTER_PRE, "convertlinebreaks"); //Přidejte naše vlastní analyzátory pro různé typy objektů //(další podrobnosti naleznete v offline dokumentaci) //Uvádíme, která funkce je obsahem tyto značky by měly projít například funkcí //htmlspecialchars, aby se zabránilo XSS atd. $bbcode->addParser (pole ("blok", "inline", "link", "listitem"), "htmlspecialchars"); $bbcode->addParser (pole ("blok", "inline", "odkaz", "listitem"), "nl2br"); $bbcode->addParser ("seznam", "bbcode_stripcontents"); //Přidat bb- kód použitý jako: //Textová hlavička první úrovně $bbcode->addCode ("h1", "simple_replace", null, array ("start_tag" => " ", "end_tag" => "
"), "block", array ("listitem", "block", "link"), pole ()); //Přidejte bb-kód použitý ve tvaru: //Text záhlaví druhé úrovně $bbcode->addCode ( "h2", "simple_replace", null, array("start_tag" => " ", "end_tag" => "
"), "block", array ("listitem", "block", "link"), pole ()); //Přidejte bb-kód použitý ve tvaru: //Text nadpisu třetí úrovně $bbcode-> addCode ( "h3", "simple_replace", null, array("start_tag" => " ", "end_tag" => "
"), "block", array ("listitem", "block", "link"), pole ()); //Přidejte bb-kód použitý ve tvaru: //Text nadpisu čtvrté úrovně $bbcode-> addCode ( "h4", "simple_replace", null, array("start_tag" => " ", "end_tag" => "
"), "block", array ("listitem", "block", "link"), pole ()); //Přidat bb-kód použitý jako: //Text nadpisu páté úrovně $bbcode->addCode ( "h5 ", "simple_replace", null, array("start_tag" => " ", "end_tag" => "
"), "block", array ("listitem", "block", "link"), pole ()); //Přidejte bb-kód použitý ve tvaru: //Text nadpisu šesté úrovně $bbcode-> addCode ( "h6", "simple_replace", null, array("start_tag" => " ", "end_tag" => "
"), "block", array ("listitem", "block", "link"), pole ()); // Nastavení příznaků pro bb-kódy od h1 do h6, // označující, že se jedná o prvky bloku, / / což bude mít v budoucnu příznivý vliv na chytré generování html kódu. Takový prvek například nemůže // být uvnitř jiných prvků bloku $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_BELEMENT); $BLOCK bbcode->setCodeFlag("h5", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $bbcode->setCodeFlag("h6", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); //Přidat bb kód [b] použitý jako: //[ b]vybraný text $bbcode->addCode ("b", "simple_replace", null, pole ("start_tag" => " ", "end_tag" => ""), "inline", pole ("listitem", "block", "inline", "link"), pole ()); //Přidat bb-kód [i], použitý jako: //[i] kurzíva text $bbcode->addCode ("i", "simple_replace", null, pole ("start_tag" => " ", "end_tag" => ""), "inline", pole ("listitem", "blok", "inline", "link"), pole ()); //Přidejte bb-kód použitý ve tvaru: //http://www. needite.domain a //text odkazu $bbcode->addCode ("url", "usecontent?", "do_bbcode_url", pole ("usecontent_param" => "výchozí"), "link", pole ("listitem", " block", "inline"), pole ("link")); //Přidejte bbcode použitý jako: //http://www.needsite.domain $bbcode->addCode("link", "callback_replace_single", "do_bbcode_url ", array (), "link", array ("listitem", "block", "inline"), pole ("link")); //Přidejte bbcode použitý jako: // http://www.needsite. domain/img.jpg $bbcode->addCode("img", "usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", "inline", "link"), pole ()); //Přidejte bb-kód (sense je stejný jako ), použitý ve tvaru: //http://www.needsite.domain/img. jpg $bbcode->addCode("bild", "usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", "inline", "link"), array()) ; //Vytvořte skupinu obrázků z bb-kódů img a bild //pro následnou možnost nastavení //některých pravidel pro tyto skupiny $bbcode->setOccurrenceType ("img", "image"); $bbcode->setOccurrenceType("bild", "image"); //Určete, že značky ze skupiny obrázků //se nemohou v textu vyskytovat (zpracovat) již //dvakrát. V našem případě je to nutné, aby // uživatel nemohl vložit více než dva // obrázky do textu zprávy $bbcode->setMaxOccurrences ("image", 2); //Přidat bb kód $bbcode->addCode ("list", "simple_replace", null, array ("start_tag" => " ", "end_tag" => "
"), "list", pole ("blok", "listitem"), pole ()); // Přidejte bb-kód [*], což znamená, že tuto značku // lze použít pouze uvnitř značky // se seznamem typ (tento typ jsme přiřadili značce výše) $bbcode->addCode ("*", "simple_replace", null, array ("start_tag" => "
Doslov
Samozřejmě jsem nedělal kompletní překlad dokumentace, ale jen to nejnutnější minimum, pro podrobnější dokumentaci se můžete obrátit na oficiální stránky (obecně je tam popsaných mnohem více různých funkcí).
Tuto knihovnu lze také snadno implementovat do jakéhokoli php frameworku, například jsem to úspěšně udělal pro cackePHP.
Pokud jste také narazili na podobné knihovny (správně pracující s odstavci! 🙂), bylo by zajímavé o nich vědět.
Úvod
Co je bbcode? BBCode je speciální varianta HTML. O tom, zda můžete nebo nemůžete použít BBCode ve svých příspěvcích, rozhoduje administrátor fóra. Kromě toho budete moci zakázat použití BBCode v konkrétní zprávě, když je zveřejněna. Samotný BBCode je podobný stylu HTML, značky jsou uzavřeny v hranatých závorkách [ a ] místo< и >; poskytuje vám větší kontrolu nad tím, jak se data vydávají. S některými šablonami budete moci přidávat BBCode do svých příspěvků pomocí jednoduchého rozhraní nad polem pro zadávání textu. Ale i v takovém případě může být tato příručka užitečná.Formátování textu
Jak udělat text tučným, kurzívou nebo podtrženým BBCode obsahuje značky pro rychlou změnu stylu písma, můžete to udělat následujícími způsoby:- Chcete-li, aby byl text tučný, uzavřete jej [b], Například:
[b] Ahoj
bude Ahoj
- Pro podtržení použijte [u], Například:
[u] Dobré ráno
bude dobré ráno
- Kurzíva se provádí pomocí značek [i], Například:
Tento [i] Skvělý!
vydá to Skvělý!
- Barvu textu lze změnit jeho okolím
. Můžete zadat buď známý název barvy (červená, modrá, žlutá atd.) nebo hexadecimální zobrazení, například #FFFFFF, #000000. Takže k vytvoření červeného textu můžete použít:
Ahoj!
Ahoj!
obě metody povedou k Hello!
- Změna velikosti se provádí podobným způsobem pomocí
. Tato značka závisí na použitých šablonách, doporučený formát je číslo udávající velikost textu v procentech, od 20 % (velmi malý) do 200 % (velmi velký) výchozí velikosti. Například:
MALÝ
s největší pravděpodobností bude MALÝ
zatímco:
OBROVSKÝ!
bude VELKÉ!
[b] PODÍVEJ SE NA MĚ!
co dá PODÍVEJ SE NA MĚ!
[b][u] To není pravda
Link building
Odkazy na jiný web BBCode podporuje několik způsobů generování URL.- První z nich používá značku
, za znakem = musí být požadovaná adresa URL. Například pro odkaz na phpbbex.com můžete použít:
Navštivte fórum phpBBex!
Tím se vygeneruje následující odkaz: Navštivte fórum phpBBex! Upozorňujeme, že odkaz se otevře ve stejném okně nebo v novém okně v závislosti na nastavení prohlížeče uživatele.
- Pokud chcete, aby se jako text odkazu zobrazila samotná adresa URL, můžete jednoduše provést následující:
http://phpbbex.com/
- Kromě toho phpBB podporuje funkci tzv Automatické odkazy, to přeloží jakoukoli syntakticky platnou adresu URL na odkaz bez potřeby značek nebo dokonce předpony http://. Například zadáním www.phpbbex.com do vašeho příspěvku automaticky vznikne www.phpbbex.com, když je příspěvek zobrazen.
- Totéž platí pro e-mailové adresy, adresu můžete buď zadat explicitně:
co dá [e-mail chráněný], nebo stačí zadat [e-mail chráněný] na váš příspěvek a při zobrazení bude automaticky převeden.
http://phpbbex.com/logo.png
nesprávné, což může vést k následnému smazání vaší zprávy, takže buďte opatrní.
Zobrazovat obrázky ve zprávách
Přidání obrázku do zprávy BBCode obsahuje značku pro přidání obrázku do vašeho příspěvku. Při tom byste měli pamatovat na dvě velmi důležité věci: za prvé, mnoho uživatelů je obtěžováno velkým množstvím obrázků a za druhé, váš obrázek již musí být umístěn na internetu (tj. nemůže být umístěn pouze na vašem počítači, pokud samozřejmě, , nespustili jste na něm webový server!). V současné době není možné ukládat obrázky lokálně na phpBB (očekává se, že toto omezení bude v příští verzi phpBB zrušeno). Chcete-li zobrazit obrázek, musíte jej obklopit značkami URL. . Například:http://phpbbex.com/logo.png
Jak bylo uvedeno v předchozím odstavci, obrázek můžete uzavřít do značek , to je
http://phpbbex.com/logo.png
Přidejte přílohy ke zprávě Přílohy lze nyní umístit kamkoli do příspěvku pomocí nové značky BBCode , pokud jsou přílohy povoleny administrátorem konference a pokud máte potřebná přístupová práva. Na stránce příspěvku je rozevírací seznam (respektive tlačítko) pro umístění příloh do příspěvku.
Citování a zobrazování formátovaných textů
Citace v odpovědích Text lze citovat dvěma způsoby, s odkazem a bez něj.- Když k odpovědi na zprávu použijete tlačítko "Citovat", její text se přidá do vstupního pole obklopeného rámečkem
. Tato metoda vám umožní citovat s odkazem na autora nebo něco jiného, co tam napíšete. Například citovat pasáž textu napsanou Mr. Blobby, napíšeš:
SMS Mr. Blobby tu bude
V důsledku toho slova „Mr. blobby napsal: Pamatuju si tě musí uzavřete název do uvozovek "", nelze je vynechat.
- Druhá metoda vám prostě umožňuje něco citovat. Chcete-li to provést, musíte text uzavřít do značek . Zobrazení zprávy jednoduše zobrazí text v bloku nabídky.
echo "Toto je nějaký kód";
Veškeré formátování použité uvnitř značek A , bude uložen. Zvýrazňování syntaxe PHP lze zapnout pomocí a doporučuje se při odesílání zpráv s kódem PHP, aby se zlepšila jeho čitelnost.
Vytváření seznamů
Vytvořte seznam s odrážkami BBCode podporuje dva druhy seznamů: s odrážkami a číslované. Jsou téměř totožné s jejich ekvivalenty HTML. V seznamu s odrážkami jsou všechny prvky zobrazeny postupně, každý je označen znakem značky. Chcete-li vytvořit seznam s odrážkami, použijte a definovat každý prvek pomocí [*] . Chcete-li například zobrazit své oblíbené barvy, můžete použít:
[*]
Červené
[*]
Modrý
[*]
Žlutá
To vytvoří seznam podobný tomuto:
- Červené
- Modrý
- Žlutá
[*]
Jděte do obchodu
[*]
Kupte si nový počítač
[*]
vyrobí následující:
- Jděte do obchodu
- Kupte si nový počítač
- Když dojde k chybě, nakažte počítač
[*]
První možná odpověď
[*]
Druhá možná odpověď
[*]
Třetí možná odpověď
co dá
- První možná odpověď
- Druhá možná odpověď
- Třetí možná odpověď