23.05.2013, 22:03
Wersja skryptu MyBB: 1.6.9
Adres forum: nieistotne
Na czym polega problem (screen, opis, komunikaty, nazwa i wersja wtyczki):
Witam,
próbuję stworzyć na potrzeby własnego forum plugin, który pokazywał by użytkownikom, że dany post został ukarany ostrzeżeniem, wraz z jego powodem. Żeby zaoszczędzić zapytań do bazy, zrobiłem skrypt, który zbiera ID postów do tablicy $postID, w przeciwnym razie w ciągu jednego wejścia do tematu mogłoby się wykonywać zdecydowanie za dużo (jak dla mnie) zapytań, bo nawet do 10 przy domyślnych ustawieniach:
Rozumiem, że będę musiał dodać frazę, która następnie będzie zamieniana na ewentualną informację o ostrzeżeniu, jeśli dla danego posta istnieje.
Druga część kodu, w tej chwili wygląda tak:
... jednak jak podejrzewam, wybrałem zły hook, gdyż nie da mi on możliwości na wykonanie podmienienia (chyba, że nie wiem o jakichś sztuczkach?). Szukałem tutaj: http://docs.mybb.com/MyBB_Plugin_Hooks.html odpowiedniego hook'a, lecz nie bardzo wiem, o który może chodzić.
Z góry dziękuję za jakąkolwiek okazaną mi pomoc. Jest to jak dotąd drugi mój plugin, jaki robię do MyBB, więc można powiedzieć, że jestem laikiem w tym silniku
Adres forum: nieistotne
Na czym polega problem (screen, opis, komunikaty, nazwa i wersja wtyczki):
Witam,
próbuję stworzyć na potrzeby własnego forum plugin, który pokazywał by użytkownikom, że dany post został ukarany ostrzeżeniem, wraz z jego powodem. Żeby zaoszczędzić zapytań do bazy, zrobiłem skrypt, który zbiera ID postów do tablicy $postID, w przeciwnym razie w ciągu jednego wejścia do tematu mogłoby się wykonywać zdecydowanie za dużo (jak dla mnie) zapytań, bo nawet do 10 przy domyślnych ustawieniach:
Kod PHP:
$plugins->add_hook("postbit", "zbieranie_pid");
function zbieranie_pid($post){
global $postID;
if(!count($postID)){
$postID = array();
}
array_push($postID, $post['pid']);
return $post;
}
Druga część kodu, w tej chwili wygląda tak:
Kod PHP:
$plugins->add_hook("showthread_end", "wyszukiwanie_ostrzezen");
function wyszukiwanie_ostrzezen(){
global $db, $postID;
if(count($postID)){
$tidArray = array();
$query = $db->query("SELECT A.`pid`, A.`tid`, A.`title`, B.`title` AS `title2` FROM `". TABLE_PREFIX ."warnings` AS A JOIN `". TABLE_PREFIX ."warningtypes` AS B WHERE A.`pid` IN (". implode(", ", $postID) .") AND A.`tid` = B.`tid`;");
while($row = $db->fetch_array($query)){
//print_r($row);
}
}
}
Z góry dziękuję za jakąkolwiek okazaną mi pomoc. Jest to jak dotąd drugi mój plugin, jaki robię do MyBB, więc można powiedzieć, że jestem laikiem w tym silniku