Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

wykonywanie się zadania "Promocji Grupowych".


Rekomendowane odpowiedzi

Opublikowano (edytowane)

Szanowni Koledzy,

 

Chciałem skorzystać z wbudowanej funkcji "Promocje Grupowe" i przenosić Użytkowników z jednej grupy do innej grupy wyłącznie na podstawie kryterium "Dołączył" "Więcej niż" (3 dni) temu. Metodę chciałem zastosować oczywiście tylko dla jednej wybranej grupy, aby mi się wszyscy Użytkownicy zarejestrowani więcej niż 3 dni temu, nie przenieśli. Chodzi o Użytkowników, którzy tylko rejestrują się i zupełnie nic ze swoją bytnością dalej nie robią. (W sytuacji gdy robią, to pojawia się wniosek aktywacji, a wtedy sam, ręcznie przenoszę takiego Użytkownika do jeszcze innej grupy w której ta promocja nie działa). Problem w tym, że te promocje działają tylko na podstawie aktywności Użytkowników. Czyli - Użytkownik musi się zalogować na forum, aby system Promocji Grup zadziałał i przeniósł takiego Użytkownika zgodnie z określonymi kryteriami. To jest dobre, w przypadku aktywnych Użytkowników, którzy przychodzą, piszą, lub przynajmniej logują się. A mnie właśnie o to chodzi, żeby to sie działo nawet wówczas gdy Użytkownicy się nie logują.

 

Sądziłem, że ma to związek z używaniem wbudowanej w IPS opcji "Uruchamiaj automatycznie, w zależności od ruchu na stronie (domyślnie)" jednak konfiguracja uruchamiania zadań z zewnątrz "Używaj Usługi Web" (curl z dhosting) wykonywany prawidłowo co minutę, nie zmienia niczego. Przenoszenie z grup do grup odbywa się tylko, gdy Użytkownik się zaloguje, a to mnie nie urządza, bo stworzyłem sobie grupę z której chciałem takich Użytkowników którzy się tam przenieśli jednym ruchem wygodnie usuwać, poza tym różne grupy, widzą różne ogłoszenia i Użytkownicy przebywający w tych grupach wiedzą co mają robić. Gdy tego nie robią, są do kasacji. Czy jest możliwa modyfikacja, która sprawi że to zadanie będzie wykonywało się bez względu na aktywność Użytkowników?

Edytowane przez semenedar
  • Manager
Opublikowano

Pewnie też szukałeś na forum IPSu - ja również. I nic nie znalazłem. Sprawdziłem jak wygląda kod, w skrócie:

	/**
	 * [ActiveRecord] Save Changed Columns
	 *
	 * @return	void
	 * @note	We have to be careful when upgrading in case we are coming from an older version
	 */
	public function save()
	{
		if ( $this->member_id AND ( !\IPS\Dispatcher::hasInstance() OR \IPS\Dispatcher::i()->controllerLocation != 'setup' ) )
		{
			$this->checkGroupPromotion();
		}

Czyli napisanie moda pod to byłoby relatywnie proste - przejechać w pętli przez użytkowników (z paginacją oczywiście) i po prostu załadować każdego i dać save - podczas której to operacji wywołuje się metoda sprawdzająca promocje.

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Opublikowano

Napiszę do Ciebie niebawem ticket, abyś mi takiego moda wymodził Dawidzie, bo potrzebuję. Tak myślałem że nie obędzie się bez moda. Ręcznie grzebać w plikach mija się z celem, bo potem zaktualizuję skrypt i wszystko się nadpisze. Temat chyba rozwiązany. To znaczy no, będzie rozwiązany, ale nie tutaj jak sądzę.

Opublikowano (edytowane)

PS - nawet ręczne uruchomienie zadania, niczego nie zmienia. Użytkownicy jak byli, tak pozostają w grupie bez przeniesienia. Dopóki sie nie zalogują. Więc to nie ma nic wspólnego z metodą uruchamiania zadań, tylko jest to "wina" konstrukcji tego mechanizmu Promocji Grupowych.

Edytowane przez semenedar
  • Manager
Opublikowano
4 minuty temu, semenedar napisał:

PS - nawet ręczne uruchomienie zadania, niczego nie zmienia. Użytkownicy jak byli, tak pozostają w grupie bez przeniesienia. Dopóki sie nie zalogują. Więc to nie ma nic wspólnego z metodą uruchamiania zadań, tylko jest to "wina" konstrukcji tego mechanizmu Promocji Grupowych.

Jeszcze mi jedno sprawdź - masz usera który łapie się na Promocję, ale nie logował się - więc Promocja się nie uruchamia. Wejdź na jego profil w ACP i po prostu zapisz mu np. ilość zawartości (tak by się metoda save() uruchomiła). Czy potem na jego koncie widzisz efekty Promocji? W sensie czy jego grupa się zmieniła?

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Opublikowano (edytowane)
3 minuty temu, DawPi napisał:

Jeszcze mi jedno sprawdź - masz usera który łapie się na Promocję, ale nie logował się - więc Promocja się nie uruchamia. Wejdź na jego profil w ACP i po prostu zapisz mu np. ilość zawartości (tak by się metoda save() uruchomiła). Czy potem na jego koncie widzisz efekty Promocji? W sensie czy jego grupa się zmieniła?

 

Przetestuję to niebawem i przyjdę z odpowiedzią. Zrobię tak: Wezmę jakiegoś Usera który tylko zarejestrował się i nic nie robi, a jego licznik zawartości wynosi zero. Zmienię na "jeden" i zapiszę. Sprawdzę czy zadziałała Promocja Grupowa.

Edytowane przez semenedar
Opublikowano
Teraz, DawPi napisał:

No i oczywiście sprawdź czy łapałby się na tą Promocję.

 

Działa.

 

Nie trzeba nawet zmieniać ilości zawartości - Tak jak mówiłeś, wystarczy po prostu zapisać, nawet gdy było zero, zapisać - zero. Wtedy Promocja Grupowa działa (wcześniej oczywiście skonfigurowana tak, aby było pewne że zadziała na edytowanym Użytkowniku). Potrzeba by więc moda, który "zapisuje" tą wartość, na przykład co pięć minut, czy tam nawet co godzinę Użytkownikom z wybranej do Promocji Grupy, jak sądzę. Zresztą, no Ty najlepiej wiesz co trzeba a co nie.

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