Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano

otóż zrobiłem sobie powiedzmy bbcode który zamienia jeden ciąg na jakiś tam HTML (to zupełnie nieistotne)

różnica polega na tym że chcę aby był on podmieniany bez żadnych tagów czyli coś jak auto parser url tyle ze ten auto parser po prostu dopasowuje url i wkłada go w tagi i resztę zostawia juz parserowi bbcode (ja nie mam tagów :))

znalazłem sobie ładne miejsce(preDisplayParse) gdzie używając preg_replace_callback zamieniam to co chce na mój HTML i wszystko pięknie gdyby nie jedno ale, nie chciałbym aby ta zamiana działała w tagach które maja blokadę parsowania w swoim wnętrzu. (teraz wymienia wszystkie te ciągi bez względu w czym się znajdują)

dodam ze odpada zrobienie normalnego tagu i zastosowanie podobnej funkcji jak auto parser url gdyż nie moge tego tagu udostępnić żadnej grupie na forum

w 2.3.x (to ustrojstwo jest ze starego mojego forum i przerabiam je na 3.1.x) sprawa była prosta ale tutaj mam problem.

jakiś pomysł jak to zrobić ?

Przy okazji do edycji i cytowania post jest brany z bazy ( a tam jest zapisywany tak jak był pisany) więc poco jest funkcja preEditParse z pliku legacy.php ?

jam_artists_button.png

  • Manager
Opublikowano

Daj mniej więcej kod który i gdzie wkleiłeś.. Generalnie szukając kodu bbcode_no_parsing można by coś wymyślić, ale istotą jest Twój kod i jego lokalizacja, skoro nie korzystasz z tagów, a bezpośrednio modujesz w plikach.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)

plik core.php z bbcode

function preDisplayParse

przed samym returnem :

$txt  = preg_replace_callback( "#wzór ciągu#", array( $this, 'ciag' ), $txt );

funkcja ciag usytuowana w samej klasie tym samym pliku zamienia wybrany ciąg na dowolny html powiedzmy na :<div>zamieniam :)</div>

problemem nie jest mój kod ale miejsce w którym można tego callbacka wstawić aby działało tak jak napisałem powyżej

Edytowane przez Batman
jam_artists_button.png

Opublikowano

właśnie sam na to wpadłem :)

aczkolwiek dałem w tej samej funkcji przed samym returnem inaczej gryzł mi się kod html

dobrze wiec to mam rozwiązane ale ta druga sprawa( należąca jak najbardziej do tego problemu) po co jest ta funkcja w legacy.php? czy muszę do tego tagu zrobić odwrotkę? nie bardzo rozumiem jakie zastosowanie ma ta funkcja skoro posty są brane z bazy w oryginalnej wersji ( i edycja jak i cytowanie działa mi prawidłowo)

jam_artists_button.png

  • Manager
Opublikowano

To jakaś metoda parsowania, domyslnie jest to metoda 'normal..

public function __construct( ipsRegistry $registry, $method='normal' )

Idąc tropem dalej dochodzimy do kodu:

$oldparser = new parseBbcode( $this->registry, 'legacy' );

W pliku którego zadaniem jest przebudowa postów ze starej wersji.

I tak oto dochodzimy do sedna - to klasa służąca do przebudowy starego typu przechowywania treści we wcześniejszych wersjach skryptu :) poniżej 3.x.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

tak też podejrzewałem ale wolałem się upewnić

no niestety za wcześnie było na wiwaty (w tej chwili mam wyłączony cache) jak odświeżałem post w którym był ciąg do podmiany wszystko pięknie działało ale gdy dodałem nowy post z ciągiem do podmiany wynik wygląda jakby parser przejechał po nim 2 razy

jam_artists_button.png

Opublikowano

niestety ale zupełnie nie

to daje tylko tyle ze zostaje tylko jedno dopasowanie w całym temacie(co nie jest pożądane bo dopasowań mogą być setki) ale tez rozwalone

nie bardzo rozumiem tylko dlaczego tak się dzieje dlaczego on 2 razy parsuje?

jam_artists_button.png

Opublikowano (edytowane)

ano z prozaicznego powodu że z nie do końca zbadanych przyczyn pisany post jest odsyłany do parsera bbcode(przy pisaniu ) a ten jak wiadomo sprawdza na samym poczatku blokade parsowania w tagach

poradziłem sobie zmieniając przed odesłaniem do parsera bbcode jednej stałej części ciągu następnie za callbackiem zmieniam go z powrotem na wartość prawidłową

Edytowane przez Batman
jam_artists_button.png

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.