bielu000
17.12.2015, 17:16:31
Cześć, natrafiłem na tego typu problem. Pisze sobie na własne potrzeby (w ramach ćwiczeń) prosty system CMS. Powiedzmy, że użytkownik może stworzyć sobie za pomocą tego systemu, galerię zdjęć, którą będzie mógł później umieścić w dowolnym miejscu strony umieszczając w tekście specjalnie wygenerowany dla danej galerii kod typu {{gallery}}. Samo wyodrębnienie tego znacznika z tekstu przed wyświetleniem nie jest problemem. Powiedzmy, jest to na zasadzie - funkcja przeszukuje tekst, po znalezieniu konkretnego znacznika, wywołuje odpowiednią funkcję, która zmienia przykładowe {{gallery}} na coś innego i robi to do skutku, aż wszystkie elementy zostaną podmienione. O ile podmiana znacznika, na jakiś tekst nie jest problemem, o tyle, nie mam pomysłu na aby w miejscu gdzie on się znajduje w tekście została wczytana dana galeria zdjęć.
Zastanawiam się też nad samym skryptem przeszukiwania zmiennej $text na zawartość tych specjalnych znaczników. Na chwilę obecną działa to na zasadzie, że mam pewną tablicę, w której przechowuje frazy, które mają być zamienione na inne, jeśli pojawią się w tekście. Czyli odpala się pętelka, porównuje zawartość zmiennej tekst, na obecność pierwszego elementu, później na zawartość drugiego elementu itd. Na chwilę obecną jest to ok, natomiast przypuszczam, że gdyby projekt był bardziej rozbudowany to rozwiązanie by się nie spisało gdyż wydajnościowo zapewne nie powala.
bielu000
17.12.2015, 18:05:16
Znam te funkcje. Tak jak napisałem zamianę słów kluczowych na jakieś inne potrafię zrobić. Nie wiem natomiast jak zrobić, aby do zmiennej $text czyli jakby tej przechowującej treść, zapisać, jakby ścieżkę to skryptu galerii" który wykona się po wyświetleniu $text, zastępując "słowa kluczowe" skryptami galerii.
Przykładowy tekst:
To jest przykładowy tekst {{gallery}}, w środku tekstu wyświetla się galeria.
Po przetworzeniu:
"To jest przykładowy tekst <w tym miejscu wyświetla się galeria>, w środku tekstu wyświetla się galeria [..]"
Coś w tym stylu.
kayman
17.12.2015, 18:07:17
zapoznaj sie z systemem szablonów ->
http://twig.sensiolabs.org/po co wynajdować koło na nowo
bielu000
17.12.2015, 18:14:45
Idąc tym tokiem rozumowania, w zasadzie można by tylko z gotowców korzystać. Napisałem wyraźnie, że to dla ćwiczeń.
Ale mimo wszystko dzięki za pomoc.
kayman
17.12.2015, 18:18:31
nic nie stoi na przeszkodzie go pobrać i zobaczyć jak oni sobie poradzili z twoim problemem szczególnie że {{znacznik}} jest taki ja u ciebie
bielu000
17.12.2015, 18:54:25
Jasne, przez czytanie czyjegoś działającego kodu, można się dużo rzeczy dowiedzieć.
Natomiast znalazłem coś o ob_start()
Z tego co się zdążyłem zorientować, buforuje dane wyjściowe, a dzięki temu wyświetli je dopiero kiedy sobie tego zażyczę. Po szybkim przetestowaniu działa. Co o tym sądzicie? Ma to swoje jakieś większe wady lub coś w tym stylu?