Jump to content

Hosting dHosting.pl - 10% rabat!

Sign in to follow this  
semenedar

wykonywanie się zadania "Promocji Grupowych".

Recommended Posts

Posted (edited)

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?

Edited by semenedar

Share this post


Link to post
Share on other sites

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.

  • Like 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Posted (edited)

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.

Edited by semenedar

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Posted (edited)
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.

Edited by semenedar

Share this post


Link to post
Share on other sites

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


intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Damy radę.

  • Like 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.