Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

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ć ;>?

Opublikowano (edytowane)

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?

Edytowane przez Dr R.I.P
Opublikowano (edytowane)

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'

Edytowane przez Dr R.I.P
  • Manager
Opublikowano

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

---

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

Opublikowano

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 ;>?

post-213-1234182866_thumb.png

  • Manager
Opublikowano

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

---

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

  • 9 miesięcy temu...
Opublikowano (edytowane)

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 ;)

Edytowane przez Dr R.I.P
Opublikowano (edytowane)

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

Przetestuje.

edit

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

czyli to co zawsze

Edytowane przez Dr R.I.P
  • Manager
Opublikowano

Oczywiście, że nie jest. Po pierwsze to wyrwałeś się z motyką na słońce - nie znasz składni budowy zapytań do bazy. Najpierw musisz to znaleźć w plikach IP.Board i poprawić swój kod wg znalezionych informacji.

Jeśli jednak: NIE znasz php, NIE znasz sql to NIE zabieraj się za to. Bo po co?

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

  • Manager
Opublikowano

No chwila. Przecież albo chcesz się czegoś nauczyć - napisałeś w tym dziale, więc tak pomyślałem, że nie chcesz czekać na gotowe.

Trochę jednak to nie pasuje, że osoba nie znająca PHP/SQL pisze w takim dziale. :)

No to co? Mam to przenieść do supportu?

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Opublikowano

Witaj,

Fakt, DawPi ma zupełną rację. Zabierasz się za działania w "obiektowym" świecie programowania, który nie jest taki prosty, a Twój kod jest zupełnie nie poprawny. Masz po zdefiniowaniu funkcji array, co już daje do myślenia, że musisz wiedzieć co to.

Na początek Ci powiem, że tablice składają się z indeksów i wartości ( { id => 1 } ), więc gdzie leży błąd w Twoim kodzie? Przecinek w tych miejscach oznacza nowy indeks/wartość. A mimo to, chciałbym Ci pomóc, ale zupełnie nie rozumiem co chcesz osiągnąć.

Z tego co widziałem zamiast [RS] chcesz coś dać, ale zapytanie zupełnie leży.

Posłuchaj starszych i doucz się o wszystkich, zaczynając od PHP, a kończąc na MySQL.

Pozdrawiam,

Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

Opublikowano (edytowane)

Ojoj, czegoś tutaj nie rozumiem. Temat ten został przeniesiony ponad pół roku temu przez Dawida do tego działu, był wcześnie w supporcie, to nie ja go tutaj umieściłem.

Kupię sobie odpowiedni kurs PHP+SQL inaczej tego nie ruszę.

@Largo

Jasne, jesteście mądrzejsi, więc to naturalne, że słucham/czytam to co piszecie. Zrozumiałem też, że nic tutaj po moim próbowaniu, gdy podstawy leżą, a może jest ich nawet brak. Postaram się douczyć. :)

Edytowane przez Dr R.I.P
  • Manager
Opublikowano

Bo myślałem, że faktycznie chcesz się czegoś nauczyć, ale jak sam zauważyłeś nic się przez te pół roku nie zmieniło w kwestii poziomu Twojej wiedzy to zaproponowałem przeniesienie tego z powrotem.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

  • 1 miesiąc temu...
  • Manager
Opublikowano

Najpierw wrzuć plik, np. o nazwie riptask.php do folderu sources/tasks/, którego treść wygląda tak:

<?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()
{
	//-----------------------------------------
	// Code section description
	//-----------------------------------------

	/* CUSTOM CODE */

	//-----------------------------------------
	// Log to log table - modify but dont delete
	//-----------------------------------------

	$this->class->append_task_log( $this->task, 'Custom task run successfully' );

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

Gdzie zmieniasz tylko ten fragment:

		//-----------------------------------------
	// Code section description
	//-----------------------------------------

	/* CUSTOM CODE */

Który edytujesz i zamieniasz na swój kod PHP.

Niżej możesz zmienić informację, jaka zostanie dodana do logów:

'Custom task run successfully'

Kolejna operacja to dodanie tasku w ACP:

ACP :a: TOOLS & SETTINGS :a: Task Manager :D Task Manager :):D Add New Task

I wypełnienie formularza -> nazwa opis, nazwa wysłanego pliku (Task PHP File To Run) oraz ustawienia uruchamiania tasku.

( Temat z listy ToDo - nie zapominam )

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

  • 2 miesiące temu...
  • Manager
Opublikowano

Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu.

Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • 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ę.