Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: BBcode w phpbb3 problem z dostosowaniem do CMS
Forum PHP.pl > Forum > PHP
3502274
Witam,

mam następujący problem:

Używam forum phpbb3 i mam CMS ktory jako newsy pobiera posty z konkretnych działów na forum. Do tego momentu wszystko działa bez zarzutu, jest jednak prolbem z BBcode. Forum phpbb3 uzywa zmienionych niestandardowych bbcodów. DO każdego BBcode dopisuje jakies uid nie wiem jeszcze po co, ale nie w tym rzecz. Mój plik do obsługi bbcode (zamieszczozny w załączniku) nie potrafi sobie poradzić z tymi nowymi bbcodami. Prosiłbym was o wskazówki jak mam sobie z tym poradzić. Najtrudniejsze są te tagi z parametrami takie jak url, img itp. Będę bardzo wdzięczny za waszą pomoc...

Załącznik:
- www.projektgryok.home.pl/bbcode.rar
devnul
jeśli dobrze rozumiem to chodzi Ci o coś w stylu
Kod
[b:8b97af6]tekst[/b:8b97af6]
jeśli tak to taki "bajer" byl także obecny z tego co wiem w phpBB2 i hash/kod zawarty jest w tabeli z postami (dla każdego posta jest on indywidualnie generowany)
webdice
  1. <?php
  2. $str=preg_replace_callback("#[php:?([a-z0-9]+)?](.*?)[/php:?([a-z0-9]+)?]#si", "bbcode_phpCode", $str);
  3. ?>


Pierwszy lepszy przykład z Twojego skryptu. Tak zachowasz kompatybilność ze stara i nową wersją.
devnul
jeśli już to
  1. <?php
  2. $str=preg_replace_callback("#[php(:[a-z0-9]+)?](.*?)[/php(:[a-z0-9]+)?]#si", "bbcode_phpCode", $str);
  3. ?>

bo tak może wystąpić sytuacja że mamy kod w postaci [b:] lub [b123456] i takie coś zadziała - mimo że nie powinno
webdice
Mój kod zadziała dla:

Kod
[b]
[b:]
[b:a1b2c3]


Innych możliwości wystąpienia znacznika nie ma. I nie ma się co tu rozchodzić czy przez mało prawdopodobny błąd wystąpi znacznik typu:

Kod
[ba1b2c3]
devnul
parser bbcode nie wyłapuje znaczników w stylu [b:] ani [b1234] więc każdy dodany w ten sposób do tekstu znacznik nie zostanie zamieniony na odpowiednik HTML. tak też powinno być w innych przypadkach, w Twoim przykładzie tak się nie stanie. hipotetyczna sytuacja. ktoś opisuje partie szachów i konkretne pola wstawia w nawiasy [b1] [b2] itd. Twój parser to wyłapie i zastąpi znacznikiem html, a nie powinien.
Avatarus
razem z kolegą używamy tego samego pliku BBcode.
Mam jednak problem z przystosowaniem znacznika list

wpisuje tak:
  1. <?php
  2. $str = preg_replace("#[list(:[a-z0-9]+)?](.*?)[/list(:[a-z0-9]+)?]#si", "<ul>2</ul>", $str);
  3. ?>

no ale coś nie chce działać skrypt w ogóle nie bierze tego znacznika i wyświetla go na stronie tak:
  1. <?php
  2. [list:2mutmbcl]1.Gdy gracz zaatakuje lub stanie obok bossa gra si? sypie: Naprawione[/list:u:2mutmbcl]
  3. ?>



Edit Problem rozwiązany, musiałem wywalić bbcode żeby dokładnie zobaczyć co było w tym poście i na końcu był jeszcze ten hash. Poprawiłem i działa.

Mam jednak problem z url. Mam taki znacznik:
  1. <?php
  2. [url=http://www.solidstatenetworks.com/demos/acclaim/2moons_downloader_us_3-27-2008.exe:1y68i9og]POBIERZ TUTAJ![/url:1y68i9og]
  3. ?>


Jak przystosować go do tego wszystkiego?
Próbuje:
  1. <?php
  2. $str = preg_replace("#[url=http:(.*?):?([a-z0-9]+)?](.*?)[/url:?([a-z0-9]+)?]#si", "<A HREF=\"2\" TARGET=\"_blank\">4</A>", $str);
  3. ?>
ale nie działa...

Macie jakieś rady?
3502274
Mineło parę dni i niestety dalej nie mozemy uporać się z problemem tych URL...

konkretnie gdy user używa opcji URL=TEKST czyli

Kod
[url="link"]nazwa linku[/url]


kod w bbcode jak w poście wyżej...

Kod
<?php
[url=http://www.solidstatenetworks.com/demos/acclaim/2moons_downloader_us_3-27-2008.exe:1y68i9og]POBIERZ TUTAJ![/url:1y68i9og]
?>


Kod
<?php
$str = preg_replace("#\[url=http:(.*?):?([a-z0-9]+)?\](.*?)\[/url:?([a-z0-9]+)?\]#si", "<A HREF=\"\\2\" TARGET=\"_blank\">\\4</A>", $str);
?>


ale nie działa... :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.