Znowu ten kod jest nie kompatybilny z odświeżaniem czatu...
// 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://webboard.pl/user-36883.html", // Stworzył ten plugin użytkownik z tego linku
"author" => "Fyeem", // Autor: Fyeem
"authorsite" => "https://webboard.pl/user-36883.html", // 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
$insert_array22 = array(
'title' => 'kontaktwpanelu',
'template' => $db->escape_string('<table border="0" cellspacing="0" cellpadding="5" class="tborder">
<tbody><tr><td class="thead">{$mybb->settings[\'nazwa_kontaktu\']}</td></tr>
{$kontaktwpanelurow}
</tbody></table>'),
'sid' => '-1',
'version' => '',
'dateline' => time()
);
$db->insert_query('templates', $insert_array22);
$insert_array33 = array(
'title' => 'kontaktwpanelurow',
'template' => $db->escape_string('<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> {$steam}
{$skype}
<div class="gg"><a href="gg:{$Admin[1]}">
<img src="http://status.gadu-gadu.pl/users/status.asp?id={$Admin[1]}&styl=3" style="height: 32px; width:143;"></a></div><br>
</center></td>
</tr>'),
'sid' => '-1',
'version' => '',
'dateline' => time()
);
$db->insert_query('templates', $insert_array33);
// 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();
} // 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("templates", "title = 'hello_world_template'");
$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, $templates; // 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
$steam = NULL;
$skype = NULL;
if(!empty($Admin[2])){
$steam = "<br /><span style=\"font-size:11px;\"><img src=\"/images/firstf/steam.png\" /> Steam: {$Admin[2]}</span>";
}
if(!empty($Admin[3])){
$skype = "<br /><span style=\"font-size:11px;\"><img src=\"/images/firstf/skype.png\" /> Skype: {$Admin[3]}</span>";
}
//$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ęść
eval("\$kontaktwpanelurow .= \"".$templates->get("kontaktwpanelurow")."\";");
} // Zamykamy CAŁĄ funkcję
// $kontaktwpanelu .= '</tbody></table>'; // Zamykamy zawartość tej zmiennej - końcówka
eval("\$kontaktwpanelu = \"".$templates->get("kontaktwpanelu")."\";");
} // Zamknięcie { w 97
} // Zamknięcie { w 100
?>
Cytat:w pół dnia stałeś się lepszym pytonistą niż kawenanowo kiedykolwiek programisto :3 ~ Riess 13.11.2018 16:28
Cytat:ale z tą nazwą to fyeem ma racje ~ Divir 29.07.2019 16:08