Skocz do zawartości


- - - - -

[Artykuł/Tutorial] Tworzenie własnego Tasku z zadaniami (IP.Board Coding )


  • Proszę się zalogować aby odpowiedzieć
Brak odpowiedzi na ten temat

#1 Spanner

Spanner

    PHP & IP.Board Developer

  • Administrator
  • 5435 postów
  • Płeć:Mężczyzna
  • Skąd:KrK
  • Wersja:IP.Board 3.3.x

Napisany 20 marzec 2009 - 18:18

Tytuł: Tworzenie własnego Tasku z zadaniami
Opis:
Kategoria: IP.Board Coding
Data dodania: 20.03.09, 18:18
Autor: Spanner

Cytuj

Tworzenie własnego taska wcale nie jest ani trudne ani bardzo skomplikowane. Jedyne co musimy wykonać, to stworzyć prosty plik php zawierający czynności do cyklicznego wykonania, oraz w ACP -> TOOLS & SETTINGS -> Task Manager ustawić odpowiedni harmonogram dla tego zadania.

Zaczniemy więc od początku i stworzymy najpierw plik php wykonujący jakieś czynności.

Struktura samego pliku jest z góry narzucona przez IP.Board, zatem nie trzeba wymyślać nic nowego. Plik taska powinien wyglądać tak:


<?php
/**
 * Free Test Task
 *
 * @copyright Spanner & IPSBeyond.pl
 * @author Spanner
 *
 */


if ( ! defined( 'IN_IPB' ) )
{
		print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
		exit();
}

class task_item
{
		var $ipsclass;
		var $class	 = '';
		var $root_path = '';
		var $task	  = '';

		/**
		 * Run task
		 *
		 *
		 */
		function run_task()
		{
				//DO SOMETHING

				$this->class->unlock_task( $this->task );
		}

		/*-------------------------------------------------------------------------*/
		// register_class
		// LEAVE ALONE
		/*-------------------------------------------------------------------------*/

		function register_class(&$class)
		{
				$this->class	 = &$class;
				$this->ipsclass  =& $class->ipsclass;
				$this->root_path = $this->class->root_path;
		}

		/*-------------------------------------------------------------------------*/
		// pass_task
		// LEAVE ALONE
		/*-------------------------------------------------------------------------*/

		function pass_task( $this_task )
		{
				$this->task = $this_task;
		}
}
?>


Oczywiście zamiast //DO SOMETHING wstwawiamy nasz kod do wykonania.

Najprostszym zadaniem jaki może wykonać się cyklicznie, jest zapis w logach tasków w ACP jakiegoś tekstu i nazywa się to logowaniem zdarzeń. Kod jaki należy wstawić to:

$this->class->append_task_log( $this->task, "Uruchomiłem pierwszy task" );

Wiadomo jednak, że tego typu rzeczy nie są szczytem marzeń i każdy chciałby, żeby jego task wykonywał bardziej ambitne rzeczy.


Jedynym ograniczeniem w tym wypadku jest nasza wyobraźnia i umiejętności jakie posiadamy.

Plik wgrywamy do katalogu /sources/tasks/ następnie przechodzimy do ACP -> TOOLS & SETTINGS -> Task Manager. W środkowej części strony na samym dole klikamy na Add New Task i wypełniamy pola następująco:



Task Title tutaj wpisujemy nazwę naszego tasku, np. Mój pierwszy task
Task Short Description tutaj podajemy krótki opis tasku np. opisujący co robi dany task, w naszym przypadku może to być loguje uruchomienie tasku
Task PHP File To Run W tym polu należy wpisać nazwę pliku, który wgraliśmy przed chwilą do katalogu /sources/tasks/

Następna sekcja Time Options służy do ustawienia jak często ma być uruchamiane nasze zadanie.

Task Time: Minutes Tutaj ustawiamy, o której minucie ma być uruchamiane zadanie
Task Time: Hours Tutaj ustawiamy godzinę uruchamiania skryptu
Task Time: Week Day Tutaj ustawiamy, w które dni tygodnia ma być uruchamiane zadanie
Task Time: Month Day Tutaj natomiast ustawiamy którego dnia miesiąca ma być uruchamiany task

Zostały nam już tylko dwie opcje do ustawienia:

Enable Task Logging tutaj wybieramy Yes, jeśli chcemy aby nasz task logował zdarzenia w przykładowym tasku będzie to "Uruchomiłem pierwszy task"

oraz

Uruchomiłem pierwszy task Tą opcję ustawiamy na Yes jeśli chcemy by nasz task w ogóle był uruchamiany.

Po wypełnieniu i oznaczeniu wszystkich opcji klikamy na przycisk Create New Task

To wszystko tym sposobem stworzyliśmy nasze pierwsze cykliczne zadanie

Ten post został wypromowany na artykuł


Tworzenie grup , Tworzenie własnego hooka - Przeciążenie skina , Jak odzyskac dane | IPBoard 2.1.x , Tworzenie/edytowanie skina a zapis do xml , Stare-Nowe posty | IPBoard 3.0.5


0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników