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 o taki sobie kod:

				<if="$this->ipsclass->member['mgroup'] == 4">
			<b><a href="index.php?showtopic=14606"><font color="#FF0000">Jakiś tekst.</font></a></b> ·
			</if>

....i chciałbym, aby było kilka grup (array coś tam - właśnie nie pamiętam), oraz dodatkowo zapytanie IF dla "Secondary Group".

Pozdrawiam,

KliczeK

In, and Out.

Opublikowano

Jeśli chcesz kilka instrukcji to ify oddzielasz znakami &&

<if="$this->ipsclass->member['mgroup'] == 4 && $this->ipsclass->member['mgroup'] == 11">

Dla secondary dajesz

<if="in_array(16, explode(',', $this->ipsclass->member['mgroup_others']))">

Opublikowano
Jeśli chcesz kilka instrukcji to ify oddzielasz znakami &&.

<if="$this->ipsclass->member['mgroup'] == 4 && $this->ipsclass->member['mgroup'] == 11">

To akurat wiem, tylko po co mi 100 linijek kodu jak jest na to łatwiejszy sposób? :P

Dla secondary dajesz

in_array(16, explode(',', $this->ipsclass->member['mgroup_others']))

Zaraz przetestuje. :P

In, and Out.

Opublikowano

OK, wszystko działa. Tylko możesz mi powiedzieć dlaczego dla mgroup mogę użyć tego w ten sposób:

<if="in_array( $this->ipsclass->member['mgroup_others'], array( 4,9,10,22 ) )">

a dla mgroup_others muszę w ten sposób?

<if="in_array(16, explode(',', $this->ipsclass->member['mgroup_others']))">

Próbowałem cały czas tak jak mgroup, temu mi nie tykało. :P

EDIT: Próbowałem w mgroup_others, również dodać kilka w ten sposób:

<if="in_array(4,9,10, explode(',', $this->ipsclass->member['mgroup_others']))">

...no i nie działa. :P

In, and Out.

Opublikowano

Ponieważ pozycję w mgroup_others przechowywane są po przecinkach i używając funkcji explode pozbywasz się tych przecinków i ładujesz wartości do tablicy. Czyli w funkcji in_array($a, $:P; zmienna $a odpowiada za pojedynczy parametr (w naszym przypadku numer grupy), a zmienna $b odpowiada za tablicę wartości, w której szukamy. I nie możesz pisać rzeczy typu in_array(4,9,10, ...) bo wtedy przekraczasz liczbę parametrów funkcji :P

Żeby znaleźć kilka wartości w mgroup_others masz dwa wyjścia. Albo dodajesz instrukcje między symbolami logicznymi && albo dodasz obsługę tagów <php> w szablonach i następującą funkcję

<php>
function array_in_array($mojeGrupy, $grupyZbazy)
{
foreach ($mojeGrupy as $mojaGrupa)
{
	if(in_array($mojaGrupa, $grupyZbazy)) return true;
}
return false;
}
</php>

Wtedy będziesz mógł odpalić takigo ifa

<if="array_in_array(array(4,9,10), explode(',', $this->ipsclass->member['mgroup_others']))">

czyli przeszukiwanie elementów jednej tablicy w drugiej.

Opublikowano
Informacja:
Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu.
Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

In, and Out.

  • Manager
Opublikowano
Żeby znaleźć kilka wartości w mgroup_others masz dwa wyjścia. Albo dodajesz instrukcje między symbolami logicznymi && albo dodasz obsługę tagów <php> w szablonach i następującą funkcję
<php>

d*pa. :P Podałeś dla 'i', a nie dla 'lub'. :P

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

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ę.