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 (edytowane)

Mam grupę w której są nieaktywni użytkownicy.

W promocjach grup utworzyłem zasadę która powinna wyciągać (tzn przenosić do innej grupy) użytkowników z grupy nieaktywnych gdy napiszą jakiś nowy post ( w innej wersji gdy pojawią się na forum),  - ale to kompletnie nie działa.

Zasada przenosi wszystkich jak leci, wygląda jakby warunek nie był w ogóle sprawdzany. Ustawienia np. takie jak na obrazku.

 

Czy mógłby podać mi ktoś, w którym miejscu w kodzie następuje sprawdzanie tych warunków? Chyba trzeba zacząć w nim ręcznie grzebać.

 

zrzut:

screenshot-localhost-2019.06.24-17-32-16(1).png

Edytowane przez kodif
Opublikowano

Zapewne to bug. Nie, nie zgłaszałem, szkoda mi czasu na jałowe wymienianie wiadomości z nimi, po których, gdy zgłoszenie dojdzie do najwyższego departamentu, zorientują że że to jednak bug - podziękują i przez rok nie zrobią nic. Albo zgłaszasz im buga, a oni ci odpowiadają że twoja licencja wygasła i spadaj. W cudowny sposób bug znika. W skrypcie są nadal bugi które zgłaszałem dwa(!) lata temu.

 

Ponawiam prośbę o podpowiedz gdzie szukać obsługi tych warunków.

  • Manager
Opublikowano
15 godzin temu, kodif napisał:

Czy mógłby podać mi ktoś, w którym miejscu w kodzie następuje sprawdzanie tych warunków? Chyba trzeba zacząć w nim ręcznie grzebać.

system/Member/GroupPromotion.php

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Opublikowano

Ewidentnie jest błąd. Funkcja matches w applications/core/extensions/core/MemberFilter/Lastpost.php

	public function matches( \IPS\Member $member, $filters, $object=NULL )
	{
	
		/* If we aren't filtering by this, then any member matches */
		if( ( !isset( $filters['range'] ) OR !$filters['range'] OR empty( $filters['range']['end'] ) ) AND ( !isset( $filters['days'] ) OR !$filters['days'] ) )
		{
			return TRUE;
		}

zawsze zwraca w tym miejscu TRUE gdy ustawi się warunek filtrowania "mniej niż x dni temu". Gdy ustawi się warunek "więcej niż x dni temu", przepuszcza kod dalej, do dalszego sprawdzania.

 

teraz mam pytanie, czy jest w IPS4 jakaś zdefiniowana funkcja typu "alert" , żeby wyświetlić zawartość $filters?

Czy może muszę utworzyć coś, co zrzuci te dane do logu na dysk?

Opublikowano

Tak, chodzi mi o zdebugowanie, ale już nie istotne, pogrzebałem w kodzie i w zmiennych. Ta funkcja jest spieprzona totalnie, są wysyłane do niej istotne paramenty które ona ignoruje, są w niej jakieś pozostałości po szukaniu konkretnego warunku, itd

Wygląda jakby gimnazjalista-pasjonat zaczął to pisać, ale się znudził w połowie, a IPS zadowolony uważa że ma gotowy produkt.

 

Praktycznie jest do napisania od nowa, to samo jest w Lastvisit.php

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