![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tylko w jednym z tych miejsc, gdzie znajduje się kod PHP ma się pojawić TAK. Losowo, przy odświeżeniu strony. Metoda wstaw() zwraca tylko raz "TAK" (inaczej zwraca pusty string), w zależności od tego, ile będzie miała możliwych miejsc do losowania. Czy przed wykonaniem takiego kodu jest jakaś możliwość, by najpierw zliczyć w ilu miejscach metoda wstaw() będzie wywołana? Bo problem jest taki, że nigdy nie znam ilości tych <?php echo $a->wstaw(); ?> w danym tekście bo jest ona zmienna, zależnie od tekstu. Tutaj występuje 4 razy, gdzieś indziej 1, albo 10. Obejściem byłoby wstawienie tam jakiegoś unikalnego ciągu znaków i str_replace w buforze po zainicjowaniu ob_start. Ale to taka brzydka metoda i do tego nie chciałbym zmieniać treści tekstu. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
a jakbys dwa razy przechodził, najpierw testowo, pózniej naprawdę?
tekst.php: główny plik:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Sprytne. Po południu się pobawię.
A jest wg Ciebie jakiś lepszy sposób rozwiązania tego, nawet ze zmianą kodu php w miejscach, gdzie ma losowo wstawić to nieszczęsne "TAK"? Mi niestety nic na myśl nie przychodzi. Na logikę muszę tekst wczytać dwukrotnie, ale jak jest jakieś inne rozwiązanie temu zapobiegające to warto byłoby spróbować. Ten post edytował kreatiff 3.02.2014, 11:40:14 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Wyglada na to, ze masz poprostu zle zaprojektowaną aplikacje. No raczej nie powinno byc takich problemow. Moze napisz dokladnie co to bedzie robic i dlaczego tak, to moze uda sie wymyslic cos sensownego
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Kod html ze wstawkami php to jest gotowa podstrona w jednym pliku. W uproszczeniu:
Taki plik jest przez mechanizm strony includowany i drukowany oraz uzupełniany o elementy pobrane z bazy. Dla pojedynczego pliku szablonu ilość wywołań metody wstaw() jest stała, ale chciałem uniknąć liczenia tego na sztywno z góry, bo ilość ta będzie różna w zależności od użytego szablonu i prawdopodobnie będzie się zmieniać wedle własnego "widzimisię". I to jest tutaj słabym punktem, bo po przemysleniach chyba jednak najrozsądniejszym rozwiązaniem będzie na sztywno określać ilość potencjajnych miejsc do wstawiania. W każdym takim szablonie wstawiam sobie dowolną ilość tych wstaw() i chciałem, by mechanizm aplikacji jakoś sobie sam to zliczał i wybierał jedno miejsce, gdzie wstawi kod generowany przez wstaw(). wstaw() to po prostu krótka treść reklamy. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Widze dwa rozwiazania:
1) Skoro dany szablon ma te liczbe na sztywno, to zapisuj info jaki szablon jaka liczba. Wowczas ladujac strone z danym szablonem bedziesz wiedzial co i jak 2) Druga metoda jest gorsza, ale bardziej uniwersalna: Funkcja wstaw powinna zwracac zawsze jakis staly tekst powiekszony o 1, np: #REKLAMA_1#, #REKLAMA_2#,.... #REKLAMA_15# Efekt wykonania szablonu od razu nie wyswietlaj. Wpierw zapisz go do zmiennej. Wiesz juz ile razy wykonalo się wstaw() - mozesz to zapisywac w jakiejs zmiennej globalnej. Losujesz teraz dla jakiej liczby masz wstawic tresc reklamy. Wylosowales np. 5. Czyli podmiieniasz #REKLAMA_5# na tresc reklamy, a pozostale #REKLAMA_x# podmieniasz na "nic". I dopiero teraz wyswietlasz efekt wykonania szablonu |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za podsunięte pomysły i sugestie.
Pozostanie mi liczenie z góry tych wstawek na etapie ich wstawiania do szablonu, gdyż metoda druga to w zasadzie to czego chciałem uniknąć (podwójne podstawianie). Czasem takie nadmierne dążenie do uniwersalności potrafi zapędzić mnie w kozi róg. (IMG:style_emoticons/default/smile.gif) Ten post edytował kreatiff 3.02.2014, 15:29:32 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat gdyż metoda druga to w zasadzie to czego chciałem uniknąć (podwójne podstawianie). Tam nie ma podwojnego podstawiania. Tam jest wykonanie szablonu raz i tylko podmiana w nim danych.W metodzie co podal Prince, tam masz podwoje podstawianie i podwojne wykonywanie szablonu |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 17:08 |