Skocz do zawartości


- - - - -

ROZWIĄZANY: Stworzenie własnego 'taska'


  • Zamknięty Temat jest zamknięty
23 odpowiedzi w tym temacie

#1 Dr R.I.P

    Death comes quickly

  • Użytkownik
  • 1100 postów
  • Wersja:n/c

Napisano 08 luty 2009 - 23:02

Cześć, chciałbym się dowiedzieć czy jest możliwość stworzyć zadanie, które miało by w sobie do wykonania zapytanie/zapytanie SQL. Dokładniej chodzi mi o to aby czyściło mi np co godzinę, zapytaniem fragmenty z nazw tematów.

Można cuś takiego zrobić ;>?

#2 DawPi

    ...a wy Pragnienie™

  • Manager
  • 49514 postów
  • Wersja:IP.Board 3.2.3

Napisano 08 luty 2009 - 23:06

Można, dlaczego nie? W czym Ci mam pomóc?
intermedia - profesjonalne rozwiązania Invision Power Board

#3 Dr R.I.P

    Death comes quickly

  • Użytkownik
  • 1100 postów
  • Wersja:n/c

Napisano 08 luty 2009 - 23:07

Może w tym jak to zrobić.. widzę że są pisanie w php, i nie wie jak mam się do tego zabrać :unsure:

Mam wkleić po prostu zapytanie sql i zapisać? Wczytać taska w task manager'że?

Użytkownik Dr R.I.P edytował ten post 08 luty 2009 - 23:08


#4 DawPi

    ...a wy Pragnienie™

  • Manager
  • 49514 postów
  • Wersja:IP.Board 3.2.3

Napisano 08 luty 2009 - 23:24

Jeśli nie masz pojęcia o .php, SQL to przecież tego sam nie zrobisz. :unsure:
intermedia - profesjonalne rozwiązania Invision Power Board

#5 Dr R.I.P

    Death comes quickly

  • Użytkownik
  • 1100 postów
  • Wersja:n/c

Napisano 08 luty 2009 - 23:26

Czy jest ktoś mi w stanie pomóc? Nie wiem czy jest to praco i czasochłonne, więc na razie chcę wybadać :unsure:

Zapytanie mam gotowe ;) Używam je w 'SQL Toolbox'

Użytkownik Dr R.I.P edytował ten post 08 luty 2009 - 23:27


#6 DawPi

    ...a wy Pragnienie™

  • Manager
  • 49514 postów
  • Wersja:IP.Board 3.2.3

Napisano 08 luty 2009 - 23:29

Jestem w stanie pomóc, ale nie wyręczać.
intermedia - profesjonalne rozwiązania Invision Power Board

#7 Dr R.I.P

    Death comes quickly

  • Użytkownik
  • 1100 postów
  • Wersja:n/c

Napisano 08 luty 2009 - 23:30

Na to liczę, bo chcę się czegoś nauczyć. To może od czego mam zacząć? :unsure:

#8 DawPi

    ...a wy Pragnienie™

  • Manager
  • 49514 postów
  • Wersja:IP.Board 3.2.3

Napisano 08 luty 2009 - 23:37

Po pierwsze to przenoszę. :unsure:

Szablon taska:
<?php

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 $class	 = "";
	var $root_path = "";
	var $task	  = "";
	
	/*-------------------------------------------------------------------------*/
	// Our 'auto_run' function
	// ADD CODE HERE
	/*-------------------------------------------------------------------------*/
	
	function run_task()
	{


//TYLKO TUTAJ ŁADUJESZ SWOJ KOD. NIC INNEGO NIE ZMIENIASZ.
		
		//-----------------------------------------
		// Unlock Task: DO NOT MODIFY!
		//-----------------------------------------
		
		$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;
	}
	
	
}
?>

W miejsce:
//TYLKO TUTAJ ŁADUJESZ SWOJ KOD. NIC INNEGO NIE ZMIENIASZ.

Wstawiasz swój kod, zapisujesz np. pod nazwą riptask.php i potem w ACP dodajesz nowe zadanie w sekcji zarządzania taskami.

W sumie to wszystko masz podane. ;)
intermedia - profesjonalne rozwiązania Invision Power Board

#9 Dr R.I.P

    Death comes quickly

  • Użytkownik
  • 1100 postów
  • Wersja:n/c

Napisano 08 luty 2009 - 23:38

W tamto miejsce daję mój kod czyli to zapytanie sql? ;) (pytanie na pjontke :unsure:, ale lepiej dopytać)

#10 DawPi

    ...a wy Pragnienie™

  • Manager
  • 49514 postów
  • Wersja:IP.Board 3.2.3

Napisano 08 luty 2009 - 23:39

Np. to zapytanie.
intermedia - profesjonalne rozwiązania Invision Power Board

#11 Dr R.I.P

    Death comes quickly

  • Użytkownik
  • 1100 postów
  • Wersja:n/c

Napisano 09 luty 2009 - 13:34

A więc tak wczoraj zrobiłem takiego (nic specjalnego)

CODE-BOX
<?php

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 $class = "";
var $root_path = "";
var $task = "";

/*-------------------------------------------------------------------------*/
// Our 'auto_run' function
// ADD CODE HERE
/*-------------------------------------------------------------------------*/

function run_task()
{

UPDATE ibf_topics SET title = REPLACE(title, '[RS]', '') WHERE title LIKE '%[RS]%';
UPDATE ibf_topics SET title = REPLACE(title, '[rs]', '') WHERE title LIKE '%[rs]%';


//TYLKO TUTAJ ŁADUJESZ SWOJ KOD. NIC INNEGO NIE ZMIENIASZ.

//-----------------------------------------
// Unlock Task: DO NOT MODIFY!
//-----------------------------------------

$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;
}


}
?>

Niestety przy ustawieniach pokazanych na screenie nie wykonuje tych zapytań w bazie danych. Gdzie popełniłem błąd ;>?

Załączone pliki

  • Załączony plik  task.PNG   36,07 KB   9 Ilość pobrań


#12 DawPi

    ...a wy Pragnienie™

  • Manager
  • 49514 postów
  • Wersja:IP.Board 3.2.3

Napisano 09 luty 2009 - 13:45

Ten wstawiony kod.. Jest niepoprawny. W sumie to przy nazwie tasku na liście powinna być kłódka - zablokowanie niepoprawnego taska.

Musisz użyć formy zapytań używanych w IP.Board - zalecam lekturkę jakiegoś pliku, choćby sources/action_public/topics.php - tam pełno kodu dotyczącego zapytań do bazy danych.
intermedia - profesjonalne rozwiązania Invision Power Board

#13 Dr R.I.P

    Death comes quickly

  • Użytkownik
  • 1100 postów
  • Wersja:n/c

Napisano 11 listopad 2009 - 00:20

Odkopuje swój stary temat, ponieważ totalnie nie wiem jak to zrobić :)

Stworzyłem coś takiego (dodałem tam gdzie kazałeś)

$this->ipsclass->DB->simple_construct( array( 'update' => 'topics', 'set' => 'title =', 'REPLECE' => (title, '[RS]', ''), 'where' => 'title', 'LIKE' => '%[RS]%') );
$this->ipsclass->DB->simple_exec();

Pewnie jest tutaj dużo błędów, starałem się czytać w action public wspierając się manualem php (php.net.pl), lecz nie działa.

BTW. chyba w końcu czas na jakiś kurs php z allegro ;)

Użytkownik Dr R.I.P edytował ten post 11 listopad 2009 - 00:21


#14 DawPi

    ...a wy Pragnienie™

  • Manager
  • 49514 postów
  • Wersja:IP.Board 3.2.3

Napisano 11 listopad 2009 - 00:36

Raz, że nie REPLECE tylko REPLACE, a dwa to czy dodałeś task w ACP czy tylko stworzyłeś ten plik? :)
intermedia - profesjonalne rozwiązania Invision Power Board

#15 Dr R.I.P

    Death comes quickly

  • Użytkownik
  • 1100 postów
  • Wersja:n/c

Napisano 11 listopad 2009 - 00:37

Tak, tak jasne. :) Reszta jest ok? ;)

Przetestuje.

edit

Parse error: syntax error, unexpected ',' in (...) line 23.

czyli to co zawsze

Użytkownik Dr R.I.P edytował ten post 11 listopad 2009 - 00:40






Użytkownicy przeglądający ten temat: 1

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