MyBB Community Forums

Full Version: Conflict my plugin with dvz shoutbox
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello. I wrote my first plugin (code at the end) and it's no comaptibility with DVZ Shoutbox. So, when I wrote a few shouts in a short interval, of or not, the shouts not displayed before refreshing the page.

<?


// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
	die("Plik ten nie może być dostępny bezpośrednio.");
}


 
$plugins->add_hook('index_start', 'kontaktwpanelu'); // Dodawanie hooków, używamy index_start bo wyświetla się na stronie głównej, tworzy mój hook

function kontaktwpanelu_info() { // Dodaje funkcje do listy pluginów
	return array( // Zwraca
		"name"			=>	"Kontakt w panelu bocznym", // Tytuł pluginu w kodzie
		"description"	=>	"Plugin dodaje tabelę kontaktu, zaleca się dodanie go do panelu bocznego.", // Opis pluginu w kodzie
		"website"		=>	"https://mybboard.pl/uzytkownik-fyeem_36883", // Stworzył ten plugin użytkownik z tego linku
		"author"		=>	"Fyeem", // Autor: Fyeem
		"authorsite"	=>	"https://mybboard.pl/uzytkownik-fyeem_36883", // Stworzył ten plugin użytkownik z tego linku
		"version"		=>	"3.0", // Wersja pluginu
		"compatibility" =>  "18*" // kompatybilność pluginu z silnikami 1.8.X
	); // Zamyka zwracanie
} // Zamyka tą funkcję


function kontaktwpanelu_activate() { // Aktywacja pluginu
	global $db, $mybb; // Używanie bazy danych i mybb
	
	
 
	
// Zakładka Konfiguracja w ACP
	$kontaktwpanelu_group_settings = array(  // Ta zmienna $ = zwraca 
		"gid"               => NULL, // Takie cuś
		"name"              => "kontaktwpanelu_option_category", // Nazwa w kodzie 
		"title"             => "Kontakt w panelu bocznym", // Tytuł pluginu
		"description"       => "Skonfiguruj swój panel kontaktu.", // Opis pluginu
		"disporder"         => "50", // Kolejność pluginu
		"isdefault"         => "yes" // Włączone domyślnie: tak // zmiana na no jeśli nie działa
			); //Zamyka zwracanie
			
	$db->insert_query("settinggroups", $kontaktwpanelu_group_settings); // Do bazy danych, do kolumny ustawień - grup, dodajemy dane z powyższej konfiguracji
	$gid = $db->insert_id(); 
	
	
	// Ustawienia, pierwsze pole, włączony/wyłączony
	$option_1 = array( // Zwraca
        "sid"               => NULL, // Takie cuś
        "name"              => "kontaktwpanelu_enabled", // Nazwa w kodzie pola pierwszego
        "title"             => "Plugin włączony/wyłączony", // Nazwa pierwszego pola
        "description"       => "Włącz lub wyłącz plugin: <b>Kontakt w panelu bocznym.</b>", // Opis pierwszego pola
        "optionscode"       => "yesno", // Opcja wyboru tak/nie
        "value"             => "yes", // Wartość domyślna: tak
		"isdefault"         => "yes", // Włączone domyślnie: tak
        "disporder"         => "1", // Kolejność pola w ustawieniu pluginu
        "gid"               => intval($gid) // Takie inne cuś
			); // Zamyka zwracanie
			$db->insert_query("settings", $option_1); // Do bazy danych, do kolumny ustawień, dodajemy dane z powyższej konfiguracji
			
// Ustawienia, drugie pole, tytuł kontaktu 
	$option_2 = array( // Zwraca
        "sid"               => NULL, // Takie cuś
        "name"              => "nazwa_kontaktu", // Nazwa w kodzie pola drugiego
        "title"             => "Nazwa panelu kontaktu", // Nazwa drugiego pola
        "description"       => "Wpisz nazwą swojego panelu kontaktu.", // Opis drugiego pola
        "optionscode"       => "text", // Opcja jednolinijkowego miejsca na wpisanie jednej linijki tekstu tj. tytułu
        "value"             => 'Kontakt', // Wartość domyślna: Kontakt
		"isdefault"         => "yes", // Włączone domyślnie: tak
        "disporder"         => "2", // Kolejność pola w ustawieniu pluginu
        "gid"               => intval($gid) // Takie inne cuś
			); // Zamyka zwracanie
			$db->insert_query("settings", $option_2); // Do bazy danych, do kolumny ustawień, dodajemy dane z powyższej konfiguracji

// Ustawienia, trzecie pole, dane osoby do kontaktu
	$option_3 = array( // Zwraca
        "sid"               => NULL, // Takie cuś
        "name"              => "kontaktwpanelu_daneadminow", // Nazwa w kodzie trzeciego pola
        "title"             => "ID użytkownika i numer GG", // Nazwa trzeciego pola
        "description"       => "Uzupełnij to według wzoru: <b>ID_użytkownika Numer_GG</b> - Jeśli jest więcej użytkowników, których chcesz dodać do panelu niż 1, na końcu linijki z danymi pierwszego użytkownika dodawanego, umieść przecinek: <b>ID_użytkownika Numer_GG,</b>", // Opis trzeciego pola
        "optionscode"       => "textarea", // Opcja wielolinijkowego miejsca na wpisanie kilku linijek tekstu tj. danych użytkowników
        "value"             => 'ID_użytkownika Numer_GG', // Wartość domyślna: ID_użytkownika Numer_GG 
		"isdefault"         => "yes", // Włączone domyślnie: tak
        "disporder"         => "3", // Kolejność pola w ustawieniu pluginu
        "gid"               => intval($gid) // Takie inne cuś
			); // Zamyka zwracanie
		$db->insert_query("settings", $option_3); // Do bazy danych, do kolumny ustawień, dodajemy dane z powyższej konfiguracji
 rebuild_settings();
	   
			// Ja nie używam więc na razie usuwam //  require MYBB_ROOT."/inc/adminfunctions_templates.php"; // Podajemy, jaki plik jest wymagany do działania pluginu, podałem ten, bo dzięki niemu, możemy zastosować zmianę np. <body> w index na <body>{$zmienna_pluginu_naszego} 
} // Zamykamy aktywację pluginu


function kontaktwpanelu_deactivate() { // Dezaktywacja pluginu
	global $db, $mybb; // Używanie bazy danych i mybb

	$db->delete_query('settinggroups', 'name = "kontaktwpanelu_option_category"'); // Usuwamy z bazy danych to, co dodaliśmy w 27. linijce zapytaniem wykonanym w 34. linijce
	$db->delete_query('settings', 'name IN("kontaktwpanelu_enabled, nazwa_kontaktu, kontaktwpanelu_daneadminow")'); // Usuwamy z bazy danych ustawienia, nazwy to 41; 55; 69 linijki 
 rebuild_settings();
	require MYBB_ROOT."/inc/adminfunctions_templates.php"; // Tym plikiem możemy bawić się w szablonie, np. usuwać zmienną
	find_replace_templatesets('index', '#(\n?){\$kontaktwpanelu}#', '', 0); // Zabawa w szablonie: index, usuwamy zmienną: {$kontaktwpanelu}	
 
} // Zamykamy dezaktywację pluginu


function kontaktwpanelu() { // Co robi moja funkcja
	global $mybb, $kontaktwpanelu; // Używanie mybb i mojej zmiennej pluginu
	
if ($mybb->settings['kontaktwpanelu_enabled'] == 1) { // Jeżeli ustawienie linijki 39. jest ustawione na tak (yes) (1)
		
	$DaneAdminow = explode(",", $mybb->settings['kontaktwpanelu_daneadminow']); 
	foreach($DaneAdminow as $DaneAdmina) {
	$Admin = explode(" ", $DaneAdmina);
	
	$user = get_user($Admin[0]); // Admin[0] daje nam takie cuś
	$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']); // Formatowanie nicku wg formatu jego grupy
	$user['profilelink'] = build_profile_link($user['username'], $user['uid']); // Link do profilu


//$kontaktwpanelu = '<table border="0" cellspacing="0" cellpadding="5" class="tborder"> 
//	<tbody><tr><td class="thead">'.$mybb->settings['nazwa_kontaktu'].'</td></tr>'; 							// Zamiana mojej zmiennej w szablonie index na to, to jest pierwsza część


$kontaktwpanelu  = '<table border="0" cellspacing="0" cellpadding="5" class="tborder"> 
					<tbody><tr><td class="thead">'.$mybb->settings['nazwa_kontaktu'].'</td></tr>
	
 <tr><td class="trow1"><center><span style="font-size:18px;">'.$user['profilelink'].'</span> 
<br /><span style="font-size:11px;"><img src="/images/firstf/gg.png" /> GG: '.$Admin[1].'</span> 
<div class="gg"><a href="gg:'.$Admin[1].'"> 
<img src="http://status.gadu-gadu.pl/users/status.asp?id='.$Admin[1].'&amp;styl=3" style="height: 32px; width:143;"></a></div><br>
</center></td> 
</tr>
</tbody></table>'; // Koniec zawartości tej zmiennej

} // Zamykamy CAŁĄ funkcję

// $kontaktwpanelu .= '</tbody></table>'; // Zamykamy zawartość tej zmiennej - końcówka

} // Zamknięcie { w 97
} // Zamknięcie { w 100
		
		
?>

Now, i have this code and all right
<?


// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
die("Plik ten nie może być dostępny bezpośrednio.");
}


 
$plugins->add_hook('index_start', 'kontaktwpanelu'); // Dodawanie hooków, używamy index_start bo wyświetla się na stronie głównej, tworzy mój hook

function kontaktwpanelu_info() { // Dodaje funkcje do listy pluginów
return array( // Zwraca
"name" => "Kontakt w panelu bocznym", // Tytuł pluginu w kodzie
"description" => "Plugin dodaje tabelę kontaktu, zaleca się dodanie go do panelu bocznego.", // Opis pluginu w kodzie
"website" => "https://mybboard.pl/uzytkownik-fyeem_36883", // Stworzył ten plugin użytkownik z tego linku
"author" => "Fyeem", // Autor: Fyeem
"authorsite" => "https://mybboard.pl/uzytkownik-fyeem_36883", // Stworzył ten plugin użytkownik z tego linku
"version" => "3.0", // Wersja pluginu
"compatibility" =>  "18*" // kompatybilność pluginu z silnikami 1.8.X
); // Zamyka zwracanie
} // Zamyka tą funkcję


function kontaktwpanelu_activate() { // Aktywacja pluginu
global $db, $mybb; // Używanie bazy danych i mybb


 

// Zakładka Konfiguracja w ACP
$kontaktwpanelu_group_settings = array(  // Ta zmienna $ = zwraca 
"gid"               => NULL, // Takie cuś
"name"              => "kontaktwpanelu_option_category", // Nazwa w kodzie 
"title"             => "Kontakt w panelu bocznym", // Tytuł pluginu
"description"       => "Skonfiguruj swój panel kontaktu.", // Opis pluginu
"disporder"         => "50", // Kolejność pluginu
"isdefault"         => "yes" // Włączone domyślnie: tak // zmiana na no jeśli nie działa
); //Zamyka zwracanie

$db->insert_query("settinggroups", $kontaktwpanelu_group_settings); // Do bazy danych, do kolumny ustawień - grup, dodajemy dane z powyższej konfiguracji
$gid = $db->insert_id(); 


// Ustawienia, pierwsze pole, włączony/wyłączony
$option_1 = array( // Zwraca
        "sid"               => NULL, // Takie cuś
        "name"              => "kontaktwpanelu_enabled", // Nazwa w kodzie pola pierwszego
        "title"             => "Plugin włączony/wyłączony", // Nazwa pierwszego pola
        "description"       => "Włącz lub wyłącz plugin: <b>Kontakt w panelu bocznym.</b>", // Opis pierwszego pola
        "optionscode"       => "yesno", // Opcja wyboru tak/nie
        "value"             => "yes", // Wartość domyślna: tak
"isdefault"         => "yes", // Włączone domyślnie: tak
        "disporder"         => "1", // Kolejność pola w ustawieniu pluginu
        "gid"               => intval($gid) // Takie inne cuś
); // Zamyka zwracanie
$db->insert_query("settings", $option_1); // Do bazy danych, do kolumny ustawień, dodajemy dane z powyższej konfiguracji

// Ustawienia, drugie pole, tytuł kontaktu 
$option_2 = array( // Zwraca
        "sid"               => NULL, // Takie cuś
        "name"              => "nazwa_kontaktu", // Nazwa w kodzie pola drugiego
        "title"             => "Nazwa panelu kontaktu", // Nazwa drugiego pola
        "description"       => "Wpisz nazwą swojego panelu kontaktu.", // Opis drugiego pola
        "optionscode"       => "text", // Opcja jednolinijkowego miejsca na wpisanie jednej linijki tekstu tj. tytułu
        "value"             => 'Kontakt', // Wartość domyślna: Kontakt
"isdefault"         => "yes", // Włączone domyślnie: tak
        "disporder"         => "2", // Kolejność pola w ustawieniu pluginu
        "gid"               => intval($gid) // Takie inne cuś
); // Zamyka zwracanie
$db->insert_query("settings", $option_2); // Do bazy danych, do kolumny ustawień, dodajemy dane z powyższej konfiguracji

// Ustawienia, trzecie pole, dane osoby do kontaktu
$option_3 = array( // Zwraca
        "sid"               => NULL, // Takie cuś
        "name"              => "kontaktwpanelu_daneadminow", // Nazwa w kodzie trzeciego pola
        "title"             => "ID użytkownika i numer GG", // Nazwa trzeciego pola
        "description"       => "Uzupełnij to według wzoru: <b>ID_użytkownika Numer_GG</b> - Jeśli jest więcej użytkowników, których chcesz dodać do panelu niż 1, na końcu linijki z danymi pierwszego użytkownika dodawanego, umieść przecinek: <b>ID_użytkownika Numer_GG,</b>", // Opis trzeciego pola
        "optionscode"       => "textarea", // Opcja wielolinijkowego miejsca na wpisanie kilku linijek tekstu tj. danych użytkowników
        "value"             => 'ID_użytkownika Numer_GG', // Wartość domyślna: ID_użytkownika Numer_GG 
"isdefault"         => "yes", // Włączone domyślnie: tak
        "disporder"         => "3", // Kolejność pola w ustawieniu pluginu
        "gid"               => intval($gid) // Takie inne cuś
); // Zamyka zwracanie
$db->insert_query("settings", $option_3); // Do bazy danych, do kolumny ustawień, dodajemy dane z powyższej konfiguracji
 rebuild_settings();
  
 /* $template = '<table border="0" cellspacing="0" cellpadding="5" class="tborder"> 
<tbody><tr><td class="thead">'.$mybb->settings['nazwa_kontaktu'].'</td></tr>

 <tr><td class="trow1"><center><span style="font-size:18px;">'.$user['profilelink'].'</span> 
<br /><span style="font-size:11px;"><img src="/images/firstf/gg.png" /> GG: '.$Admin[1].'</span> 
<div class="gg"><a href="gg:'.$Admin[1].'"> 
<img src="http://status.gadu-gadu.pl/users/status.asp?id='.$Admin[1].'&amp;styl=3" style="height: 32px; width:143;"></a></div><br>
</center></td> 
</tr>
</tbody></table>';

$insert_array = array(
    'title' => 'kontaktwpanelu',
    'template' => $db->escape_string($template),
    'sid' => '-1',
    'version' => '',
    'dateline' => time()
);

$db->insert_query('templates', $insert_array);*/
  
// Ja nie używam więc na razie usuwam //  require MYBB_ROOT."/inc/adminfunctions_templates.php"; // Podajemy, jaki plik jest wymagany do działania pluginu, podałem ten, bo dzięki niemu, możemy zastosować zmianę np. <body> w index na <body>{$zmienna_pluginu_naszego} 
} // Zamykamy aktywację pluginu


function kontaktwpanelu_deactivate() { // Dezaktywacja pluginu
global $db, $mybb; // Używanie bazy danych i mybb
/*$db->delete_query("templates", "title = 'kontaktwpanelu'");*/

$db->delete_query('settinggroups', 'name = "kontaktwpanelu_option_category"'); // Usuwamy z bazy danych to, co dodaliśmy w 27. linijce zapytaniem wykonanym w 34. linijce
$db->delete_query('settings', 'name IN("kontaktwpanelu_enabled, nazwa_kontaktu, kontaktwpanelu_daneadminow")'); // Usuwamy z bazy danych ustawienia, nazwy to 41; 55; 69 linijki 
 rebuild_settings();
require MYBB_ROOT."/inc/adminfunctions_templates.php"; // Tym plikiem możemy bawić się w szablonie, np. usuwać zmienną
find_replace_templatesets('index', '#(\n?){\$kontaktwpanelu}#', '', 0); // Zabawa w szablonie: index, usuwamy zmienną: {$kontaktwpanelu} 
 
} // Zamykamy dezaktywację pluginu


function kontaktwpanelu() { // Co robi moja funkcja
global $mybb, $kontaktwpanelu; // Używanie mybb i mojej zmiennej pluginu

if ($mybb->settings['kontaktwpanelu_enabled'] == 1) { // Jeżeli ustawienie linijki 39. jest ustawione na tak (yes) (1)

$DaneAdminow = explode(",", $mybb->settings['kontaktwpanelu_daneadminow']); 
foreach($DaneAdminow as $DaneAdmina) {
$Admin = explode(" ", $DaneAdmina);

$user = get_user($Admin[0]); // Admin[0] daje nam takie cuś
$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']); // Formatowanie nicku wg formatu jego grupy
$user['profilelink'] = build_profile_link($user['username'], $user['uid']); // Link do profilu

   
//$kontaktwpanelu = '<table border="0" cellspacing="0" cellpadding="5" class="tborder"> 
// <tbody><tr><td class="thead">'.$mybb->settings['nazwa_kontaktu'].'</td></tr>'; // Zamiana mojej zmiennej w szablonie index na to, to jest pierwsza część


$kontaktwpanelu  = '<table border="0" cellspacing="0" cellpadding="5" class="tborder"> 
<tbody><tr><td class="thead">'.$mybb->settings['nazwa_kontaktu'].'</td></tr>

 <tr><td class="trow1"><center><span style="font-size:18px;">'.$user['profilelink'].'</span> 
<br /><span style="font-size:11px;"><img src="/images/firstf/gg.png" /> GG: '.$Admin[1].'</span> 
<div class="gg"><a href="gg:'.$Admin[1].'"> 
<img src="http://status.gadu-gadu.pl/users/status.asp?id='.$Admin[1].'&amp;styl=3" style="height: 32px; width:143;"></a></div><br>
</center></td> 
</tr>
</tbody></table>'; // Koniec zawartości tej zmiennej

} // Zamykamy CAŁĄ funkcję

// $kontaktwpanelu .= '</tbody></table>'; // Zamykamy zawartość tej zmiennej - końcówka

} // Zamknięcie { w 97
} // Zamknięcie { w 100


?>

Not actually.