To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

HTML/PHP/AJAX/JS - [ PHP ] BBCode Linki

Crypt3r - 08-07-2015, 00:57
Temat postu: [ PHP ] BBCode Linki
Potrzebuję pilnie skonstruować tag bbcode, który będzie odpowiedzialny za wyświetlanie linków. Generalnie tag Code spełnia tę rolę, ale interesuje mnie utworzenie niezależnego tagu, który nie będzie kolorował składni.

Wstępną bazę już sobie naszykowałem, ale brakuje mi pomysłu na ogarnięcie zamiany i parsowania.

bbcode.php
Kod:
$bbcode_tpl['youtube'] = str_replace('{YOUTUBEID}', '\\2', $bbcode_tpl['youtube']);
$bbcode_tpl['linki'] = str_replace('{LINKIURL}', '\\2', $bbcode_tpl['linki']);

a dalej...

$patterns[] = "#\[youtube\](http|https)://(?:www\.)?youtube.com/watch\?v=([0-9A-Za-z-_]{11})[^[]*\[/youtube\]#is";
$replacements[] = $bbcode_tpl['youtube'];
$patterns[] = "#\[linki\]_ta część mnie interesuje_[/linki\]#is";
$replacements[] = $bbcode_tpl['linki'];


bbcode.tpl
Kod:
<!-- BEGIN linki -->
<a href="{LINKIURL}"  target="blank">{LINKIURL}</a>
<!-- END linki -->


Wstępnie posłużyłem się tagiem YouTube, ale wiadomo co się wyświetli. Miło by było gdyby linki były wyświetlane jeden pod drugim, a wyświetlanie kolejnych numerków sobie ogarnę. ;)

[ Dodano: 09-07-2015, 00:38 ]
W bbcode.php dodałem:

zamiast:
Kod:
$patterns[] = "#\[linki\]_ta część mnie interesuje_[/linki\]#is";


dodałem:
Kod:
$patterns[] = "#\[linki\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!linki=))*?)\[/linki\]#is";


No i gra ale parsuje tylko jeden link, a jak dodam więcej to nie parsuje w ogóle. Pytanie tylko jak dodać łamanie każdej linii i link pod linkiem?


Chcę uzyskać taki efekt:
Kod:
http://przemo.org/
http://przemo.org/phpBB2/forum/
http://przemo.org/phpBB2/forum/viewtopic.php?t=153442

irekk - 09-07-2015, 09:22

Nie potrzebnie używasz youtube moda. on z założenia działa na pojedynczym linku. Jeżeli wynik ma być taki jak w przypadku tagu code, to skopiuj tamto rozwiązanie i dostosuj pod siebie. bbcode parser z automatu sparsuje linki
Crypt3r - 10-07-2015, 01:40

Wzorowałem się tylko na Youtube modzie i zauważyłem, że parsuje jeden link - tak jak wspomniałeś.
Co do samego założenie to mógłbym użyć tagu Code i jedynie go ostylować, ale dodając kolejne... w bbcode.tpl

Kod:
<!-- BEGIN code_open --><!-- END code_open -->
<!-- BEGIN code_close --><!-- END code_close -->


robi się kupa w szablonie. Mógłbym podpiąć sam tag Code pod <!-- BEGIN linki --><!-- END linki --> ale to nie zmieni faktu, że sparsuje tylko jeden link. Zastanawiam się nad jakąś alternatywą, ale właśnie potrzebuję tagu Code dla kodu źródłowego, Youtube i tagu Linki do wrzucania pojedynczych linków (one nie muszą być klikalne).



Powered by phpBB modified by Przemo © 2003 phpBB Group