18.10.2016, 18:41
18.10.2016, 19:35
Wrzuć cały kod Twojego pluginu tutaj, nie mam możliwości pobrania.
18.10.2016, 19:35
Kod PHP:
<?php
define("IN_MYBB", 1);
$plugins->add_hook('index_start', 'firstf');
function firstf_info() {
return array(
"name" => "Kontakt w panelu bocznym",
"description" => "Dodaje przyjemną tabelę kontaktu do panelu bocznego.",
"website" => "https://webboard.pl/",
"author" => "Poftorek",
"authorsite" => "https://webboard.pl/",
"version" => "2.6",
"compatibility" => "18*"
);
}
function firstf_activate() {
global $db, $mybb;
//nazwa firstfu w zakladce firstfow
$firstf_group_settings = array(
"gid" => NULL,
"name" => "firstf_option_category",
"title" => "Kontakt w panelu bocznym",
"description" => "Skonfiguruj swój panel kontaktu.",
"disporder" => "50",
"isdefault" => "no"
);
$db->insert_query("settinggroups", $firstf_group_settings);
$gid = $db->insert_id();
// Włącz/Wyłącz
$option_1 = array(
"sid" => NULL,
"name" => "firstf_enabled",
"title" => "Włączyć/Wyłączyć wtyczkę?",
"description" => "Włącz lub wyłącz kontakt w panelu bocznym.",
"optionscode" => "yesno",
"value" => "yes",
"isdefault" => "yes",
"disporder" => "1",
"gid" => intval($gid)
);
// Nazwa panelu kontaktu
$option_2 = array(
"sid" => NULL,
"name" => "nazwa_kontaktu",
"title" => "Nazwa panelu kontaktu",
"description" => "Wpisz nazwą swojego panelu kontaktu.",
"optionscode" => "text",
"value" => 'Kontakt',
"isdefault" => "yes",
"disporder" => "2",
"gid" => intval($gid)
);
// ID pierwszego administratora
$option_3 = array(
"sid" => NULL,
"name" => "firstf_nwm2",
"title" => "ID użytkownika i numer GG",
"description" => "Wzór: <b>ID_użytkownika Numer_GG Skype Steam</b> - Jeśli jest więcej niż 1, na końcu umieść przecinek: <b>ID_Użytkownika Numer_GG Skype Steam,</b>",
"optionscode" => "textarea",
"value" => '1 12345678',
"isdefault" => "yes",
"disporder" => "3",
"gid" => intval($gid)
);
$db->insert_query("settings", $option_1);
$db->insert_query("settings", $option_2);
$db->insert_query("settings", $option_3);
require MYBB_ROOT."/inc/adminfunctions_templates.php";
}
function firstf_deactivate() {
global $db, $mybb;
$db->delete_query('settinggroups', 'name = "firstf_option_category"');
$db->delete_query('settings', 'name IN("firstf_enabled, nazwa_kontaktu, firstf_nwm2")');
require MYBB_ROOT."/inc/adminfunctions_templates.php";
find_replace_templatesets('index', '#(\n?){\$firstf}#', '', 0);
}
function firstf()
{
global $mybb, $firstf;
if ($mybb->settings['firstf_enabled'] == 1)
{
$firstf = '<table border="0" cellspacing="0" cellpadding="5" class="tborder">
<tbody><tr><td class="thead">'.$mybb->settings['nazwa_kontaktu'].'</td></tr>';
$DaneAdminow = explode(",", $mybb->settings['firstf_nwm2']);
foreach($DaneAdminow as $DaneAdmina)
{
$Admin = explode(" ", $DaneAdmina);
$user = get_user($Admin[0]);
$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
$user['profilelink'] = build_profile_link($user['username'], $user['uid']);
$user['usertitle'] = $user['usertitle'];
$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>";
}
$firstf .= '<tr><td class="trow1"><center>{+}contact_avatar|'.$user['uid'].'{-}<br /><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>';
}
$firstf .= '</tbody></table>';
}}
?>
19.10.2016, 12:36
Zobacz jeszcze co wyrzuca konsola, ja radze caly kod przepisać na nowo, bo troche błędów jest.
19.10.2016, 19:29
Konsola nic nie wyrzuca po przepisaniu pluginu, jednak kiedy jest włączony odświeża się poprawnie. Wiem, że to na pewno wina pluginu, jednak nie wiem gdzie jest ten mały błąd?
Kod:
Kod:
Kod PHP:
<?
if(!defined("IN_MYBB")) // Sprawdzanie dla bezpieczeństwa
die("Plik ten nie może być dostępny bezpośrednio."); // Jeśli błąd
$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
// 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
// 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
// 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 Nazwa_Steam Nazwa_Skype</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 Nazwa_Steam Nazwa_Skype</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 Nazwa_Steam Nazwa_Skype', // Wartość domyślna: ID_użytkownika Numer_GG Nazwa_Skype Nazwa_Steam
"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_1); // Do bazy danych, do kolumny ustawień, dodajemy dane z powyższej konfiguracji
$db->insert_query("settings", $option_2); // Do bazy danych, do kolumny ustawień, dodajemy dane z powyższej konfiguracji
$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
$user['usertitle'] = $user['usertitle']; // Tytuł użytkownika
//$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].'&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
?>
19.10.2016, 20:01
Po 1, adres WWW.
Po 2, czemu nie używasz szablonów?
Po 2, czemu nie używasz szablonów?
19.10.2016, 20:02
Po 0.
Kod teraz wygląda tak:
Po 1.
http://pluginsmybbthemes.ct8.pl/
Po 2.
A powinienem? Tam normalnie będę mógł użyć tego kodu?
Kod teraz wygląda tak:
Kod PHP:
<?
// 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
// 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].'&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
?>
http://pluginsmybbthemes.ct8.pl/
Po 2.
A powinienem? Tam normalnie będę mógł użyć tego kodu?
19.10.2016, 20:12
(19.10.2016, 20:02)Fyeem napisał(a): [ -> ]A powinienem? Tam normalnie będę mógł użyć tego kodu?Tak, przydałoby się jeszcze testowe konto
19.10.2016, 20:14
Kacper
dule=user
Po dodaniu dodałem do index zmienną i nie wyświetla nic.
A więc dodałem do globalnych szablonów:
Cały kod:
Dziwne, nagle działa poprawnie.
Kod:
dule=user
Po dodaniu dodałem do index zmienną i nie wyświetla nic.
A więc dodałem do globalnych szablonów:
Kod PHP:
$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].'&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);
Cały kod:
Kod PHP:
<?
// 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
// 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].'&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].'&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
?>
Dziwne, nagle działa poprawnie.
Kod:
Kod PHP:
<?
// 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
// 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].'&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].'&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
?>