![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Czesc !
Chciałbym prosić o pomoc w pewnym zagadnieniu. Mam z bazie tekst. Potrzebuję z tego tekstu wyciągnąć konkretny wzór, powiedzmy: "/[LICENSE]/" i zamienić go na akcję konkretnej funckcji. Doszedłem do tego:
funkcja replace() robi to co powinna, w tekscie zmienia license na test, ale to nie tak ma być. funkcja replace powinna mi zrobić coś bardziej konkretnego - podczas wystąpienia [license] ma uruchomic funckja która, wydobędzie cos z bazy i wyświetli w pętli. Właściwie, to potrzebuję czegoś jak na tym forum, zaznaczasz tekst, bierzesz PHP i masz znaczniki
Dzięki za help. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A trochę jaśniej?
Masz błąd w swoim wyrażeniu regularnym - wzorzec /[LICENSE]/ zamieni każdą literę L, I, C itd., a nie ciąg [LICENSE]. Powinieneś użyć wzorca /\[LICENSE\]/. Ale wytłumacz o co dokładnie chodzi. W funkcji przekazywanej do preg_replace_callback możesz robić co Ci się żywnie podoba. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za zainteresowanie,
Do bazy zapisuję jakiś LONGTEXT. Potem w kontrolerze, tekst ten pobieram z bazy. Chcę, przed wyświetleniem tego tekstu w widoku, sprawdzić czy w takim tekscie jest znacznik ['license']. Jeśli jest, znacznik chcę zmienić na akcję jakiejś funkcji, np: wybarć z bazy zdjęcia i je wyswietlić . W wordpressie widziałem plugin - robiłeś galerię, galeria otrzymała jakieś ID. Potem podczas pisania np. artykuły, mogłeś napisać [gallery=1] i po zapisaniu artykułu, otrzymałeś artykuł z galerią z ID 1. Piszę własnego cmsa. Jest ukonczony prawie, mam tylko problem z np: galeriami. W Tinymce chcę napisać np: ['galeria1'] i chcę w widoku otrzymać galerię z id 1 . |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
W Tinymce chcę napisać np: ['galeria1'] i chcę w widoku otrzymać galerię z id 1 . to może te załóż, że będziesz ID galerii oddzielał ":" np. Kod $longtext = "Jakim tam tekst [galeria:1] i to tego druga galeria [galeria:2] ..... ";
$newText = preg_replace_callback( '/\[galeria:(\d+)\]/', function($match){ return generuj-kod-galeri-z-id($match[1]); }, $longtext ); Ten post edytował ctom 23.11.2013, 20:01:20 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ty pytasz czy ... ?
jak już to : Kod $text = '';
foreach ($cos as $c) { $text .= '<img src... />' } return $text |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
po modyfikacji dla CakePHP ( może komuś się przyda ):
W edytorze WYSIWYG wpisuję np: [galeria:142] Dzięki. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
po modyfikacji dla CakePHP ( może komuś się przyda ):
1/ zdjęcie czy zdjęcia ? 2/ kod html "zaczytuj" z widoku a nie generujesz w kontrolerze/module |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
1.zdjęcie - na razei, potem przerabiam na galerie
2. nie wiem co masz na mysli "zaczytuj" - print jest własnie w widoku. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
ad1. no właśe, bo nie wiem co Ci to $a zwraca, ale raczej array a robisz return po pierwszym elemencie
ad2. nie robię nic w CakePHP więc nie podam Ci składni , ale chodzi to byś to: "...<img src="files/..." miał w widokach/szablonach. Jak później będziesz (Ty/ktoś) chciał ostylować galerię to gdzie będzie tego szukał ? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Masz rację, ale img src muszę robić w kontrolerze, bo w widoku nie mam dostępu do modelu który moze wybrać z tabeli dane.
ad1. no właśe, bo nie wiem co Ci to $a zwraca, ale raczej array a robisz return po pierwszym elemencie ad2. nie robię nic w CakePHP więc nie podam Ci składni , ale chodzi to byś to: "...<img src="files/..." miał w widokach/szablonach. Jak później będziesz (Ty/ktoś) chciał ostylować galerię to gdzie będzie tego szukał ? Poza tym dam image potem w diva z klasą i ostuluje się bez problemu w css, bez potrzeby grzebania w kontrolerze. Pozdrawiam. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Masz rację, ale img src muszę robić w kontrolerze, bo w widoku nie mam dostępu do modelu który moze wybrać z tabeli dane. jak pisałem nie znam CakePHP, ale idea MVC jest pewnie podobna ;-) , że dane przekazujesz do VIEW a nie ma ta pobierasz cokolwiek Kod function callbackFunction($matches) { $this->loadModel('Photo'); $a = $this->Photo->findById($matches[1]); /* 1. przekazujesz $a do View 2. w View robisz to FOREACH na przygotowanym szablonie 3. pobierasz View jako zmienną , a nie wyświetlasz go ! */ return $zwrócony-kod-z-View; } |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
NIe komam za bardzo.
Skoro mam zrobić to w widoku, to napisałem, że nie da rady, bo do modelu mam dostęp z kontrolera. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
przecież @Pyton_000 napisał Ci jak przekazać dane z modelu/kontrolera do konkretnego widoku i pobrać go jako zmienną a nie wyświetlać.
Później ... $html to $zwrócony-kod-z-View |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 13:38 |