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

Witam,

Mam pewien problem, ale rozwiązałem go, mimo to, zastanawia mnie pewna rzecz. W funkcji do prezentacji logów mam taki kod:

				switch ( $row['request_status'] )
			{
				case 0:
					$row['status']  = '<span style="color: blue;font-weight: bold;">'.$this->ipsclass->lang['waiting_for_medi'].'</span>';
					break;
				case 1:
					$row['status']  = '<span style="color: grey;font-weight: bold;">'.$this->ipsclass->lang['cancelled'].'</span>';
					break;
				case 2:
					$row['status']	= '<span style="color: red;font-weight: bold;">'.$this->ipsclass->lang['unapprove'].'</span>';
					break;
				case 3:
					$row['status']	= $row['mediator'];
					break;
			}

Widać, że dane są przygotowane do szablonu, ale nie to mnie zastanawia. Jadę switch po polu z bazy ( request_status ), a sam tworzę dynamiczny rekord status. W szablonie dodaję taki kod, ale czy opłaca się mieszać HTML do logiki? W szablonach nie ma switch, a foreach, żeby sprawdzał statusy? Wchodzi w to foreach i if, więc więcej warunków, a log może mieć jeden status. To samo mam z serwerami gry ( switch i przypisanie HTML ), czy jest to dobre wyjście?

Pozdrawiam,

Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

Opublikowano

rozumiem ze dopiero w szablonie html są if-y i pętle foreach tak jest to czasami stosowane choć niezbyt eleganckie , switch nie jest równoważny do foreach tylko do elseif (elseif uważa się za szybsze)

foreach wykonuje pętle na wszystkich elementach tablicy wyświetlając szablon do każdej pozycji z tabeli

czy jest to dobre działa tak samo to tylko miejsce umieszczenia kodu, można tu dyskutować .

jam_artists_button.png

Opublikowano
rozumiem ze dopiero w szablonie html są if-y i pętle foreach tak jest to czasami stosowane choć niezbyt eleganckie , switch nie jest równoważny do foreach tylko do elseif (elseif uważa się za szybsze)

foreach wykonuje pętle na wszystkich elementach tablicy wyświetlając szablon do każdej pozycji z tabeli

czy jest to dobre działa tak samo to tylko miejsce umieszczenia kodu, można tu dyskutować .

Witaj Batman,

Dziękuje za pzypomnienie podstaw, które są mi znane od par lat :-) W szablonie jest <if> i <foreach>, czy masz tam inne instrukcje warunkowe? A foreach w szablonach jest stosowany dosyć często ( w większych projektach ), więc mi to nie robi różnicy, ja osobiście używam foreach w szablonie. A masz pomysł jak nadać te statusy w szablonie? W myśl tego powinno to wyglądać tak:

<if="is_array( $data ) AND count( $data )">

<foreach="$data AS $row">

<if="$row['request_status'] == 0">

Dla 0

</if>

<if=$row['request_status'] == 1">

Dla 1

Co daje 4 iteracje i if, zamiast jednego switch, który dokładnie jednemu rekordowi się dopasowuje.

Pozdrawiam,

Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

Opublikowano
W szablonach nie ma switch, a foreach,

wybacz pomyślałem ze pomyliłeś te dwie funkcje

wracając

if , else , elseif jest bardziej optymalnym rozwiązaniem i zaleca się zastępowanie nimi funkcji switch przy optymalizacji kodu

więc może to tak nie wyglądać ale lepiej jest stosować if-y

jam_artists_button.png

  • Manager
Opublikowano

Wg mnie nie powinno się mieszać nigdy wyglądu ( html ) z logiką, co wynika choćby z wzorca MVC. Najlepiej to wszelkie obliczenia, sprawdzenia zrobić na poziomie kodu, a potem wynik tylko pokazać za pomocą bitów.

Wiesz, dla nas może być łatwo zmienić coś w takim bicie, ale nie wszyscy mogą się znać.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Opublikowano

Witam,

Czyli podsumowując - mam przekazywać do szablonu informację w postaci cyfr, pętelka foreach i if wszędzie dla każdej możliwej sytuacji? Bo teoria teorią, a tutaj chodzi o żywy przykład, chyba rozumiecie, z samych nazw zmiennych?

Pozdrawiam,

Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

  • Manager
Opublikowano

Teoria to teoria. To jak to zrobisz to Twój wybór. Jeśli uznasz, że wolisz dodawać w bitach warunki logiczne czy pętle to nikt Cię od tego nie odwiedzie. Ja tylko mówię, że powinno się maksymalnie oddzielać wygląd od wszelkiego kodu sterującego.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • 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ę.