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

Utworzenie hook przed wysłaniem nowego posta


Situ

Rekomendowane odpowiedzi

Witam. Pytanko jest możliwość utworzenia takiej modyfikacji aby przed wysłaniem posta sprawdzał w odpowiednim dziale (forum) ile ta osoba na dzień już tych postów wysłała? 

Jestem nowy jeśli chodzi o invision , na razie mam 2 dodatki z dotacją itp ale nie ogarnąłem jeszcze modyfikacji istniejących już funkcji. najgorsze jest to że nie wiem jak zacząć nawet. 

Za jakąkolwiek pomoc byłbym wdzięczny. W dev mode utworzyłem hook ale nie wiem czy do dobrej klasy. 

Odnośnik do komentarza
Udostępnij na innych stronach

Pomoc w stworzeniu , nie lubię gotowców , wolę sam się nauczyć pisać . Tyle że nie mam pojęcia jak zacząć ..... chcę aby przed założeniem posta najpierw wykonała się moja modyfikacja. Rozumiem że do tego celu muszę stworzyć hook , tylko którą klasę muszę zaciągnąć ? \IPS\forums\Topic?

Modyfikacja ma na celu sprawdzenie ile dzisiejszego dnia użytkownik stworzył tematów w danym dziale. jeśli za dużo to nie pozwoli mu wysłać nowego posta. nie wiem czy dobrze zaczynam ? 

 

class hook2 extends _HOOK_CLASS_
{

	/**
	 * @brief	Check posts per day limits? Useful for things that use the content system, but aren't necessarily content themselves.
	 */
	public static $checkPostsPerDay = true;

	/**
	 * Add Item Message
	 *
	 * @param	string				$message		The message
	 * @param	string				$color			The message color
	 * @param	\IPS|Member|NULL	$member			User adding the message
	 * @param	bool				$isPublic		Who should see the message
	 * @return	int
	 * @note This is a wrapper for the extension so content items can extend and apply their own logic
	 */
	public function addMessage( $message, $color=NULL, ?\IPS\Member $member=NULL, \bool $isPublic=true )
	{
		return parent::addMessage( $message, $color, $member, $isPublic );
	}

}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  1. Jeżeli chcesz coś dodać do szablonu to skorzystaj z opcji Theme Hook,
  2. Wyszukujesz jaki szablon Cię interesuje,
  3. Wchodzisz do edycji stworzonego pliku w AdminCP i łapiesz się czegoś za pomocą CSS Selector.
  4. Wybierasz opcję czy chcesz dodać coś pod tym złapanym elementem, nad, w środku na początku itd.,
  5. Wpisujesz kod phtml w pole content.
  6. I tyle

Tutaj masz podstawowy tutorial https://invisioncommunity.com/developers/docs/development/plugins/complete-example-of-a-plugin-in-ips-community-suite-r50/

 

Zliczanie postów na dzień już jest wbudowane w IPS. Wystarczy wyciągnąć odpowiednią funkcje.

See me on GitHub or aXenDev.net!

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager
17 godzin temu, Situ napisał:

Modyfikacja ma na celu sprawdzenie ile dzisiejszego dnia użytkownik stworzył tematów w danym dziale. jeśli za dużo to nie pozwoli mu wysłać nowego posta. nie wiem czy dobrze zaczynam

Przypinasz się do: \IPS\forums\Topic (czyli wyżej dobrze) i potem:

	/**
	 * Can a given member create this type of content?
	 *
	 * @param	\IPS\Member	$member		The member
	 * @param	\IPS\Node\Model|NULL	$container	Container (e.g. forum), if appropriate
	 * @param	bool		$showError	If TRUE, rather than returning a boolean value, will display an error
	 * @return	bool
	 */
	static public function canCreate( \IPS\Member $member, ?\IPS\Node\Model $container=NULL, $showError=false )
	{
		# Czy może dodawać nowe tematy
        
        return parent::canCreate( $member, $container, $showError );
	}

	/**
	 * Can comment?
	 *
	 * @param	\IPS\Member\NULL	$member							The member (NULL for currently logged in member)
	 * @param	bool				$considerPostBeforeRegistering	If TRUE, and $member is a guest, will return TRUE if "Post Before Registering" feature is enabled
	 * @return	bool
	 */
	public function canComment( $member=NULL, $considerPostBeforeRegistering=true )
	{
		#czy może odpowiadać w już dodanym temacie
        
        return parent::canComment( $member, $considerPostBeforeRegistering );
	}

 

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager
17 godzin temu, Situ napisał:
/**
	 * Add Item Message
	 *
	 * @param	string				$message		The message
	 * @param	string				$color			The message color
	 * @param	\IPS|Member|NULL	$member			User adding the message
	 * @param	bool				$isPublic		Who should see the message
	 * @return	int
	 * @note This is a wrapper for the extension so content items can extend and apply their own logic

To jest do wyświetlenia wiadomości w pozycji (np. temacie). Musisz czytać kod i opisy. ;)

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

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