ZAKOŃCZYLIŚMY WSPÓŁPRACĘ Z CARMASIN.PL

rayyoN

Team Ventum
  • Content count

    62
  • Joined

  • Last visited

  • Days Won

    1

rayyoN last won the day on May 29

rayyoN had the most liked content!

Community Reputation

1 Normalny

About rayyoN

  • Rank
    Newbie
  • Birthday 06/02/96

Personal Information

  • City
    Gdańsk

Recent Profile Visitors

104 profile views
  1. 1 Aplikacja Proxy Na samym początku zajmiemy się aplikacją, która będzie służyła nam jako proxy. W tym celu przejdź TUTAJ i się zarejestruj. Gdy następnym razem otworzysz ten link, otworzy Ci się taka strona: heroku.png (Rozmiar: 131,78 KB / Pobrań: 4) Wypełnij poniższe pola według zaleceń: App name: Nazwa twojej aplikacji (bedzie to subdomena serwera) Choose region: Najprawdopodobniej będziesz chciał wybrać tutaj Europe Po wypełnieniu powyższych pól kliknij na "Deploy App". Zostanie ci wyświetlony twój sekretny key (klucz), więc go sobie zapisz w bezpiecznym miejscu. 2 Wymagane pluginy My użyjemy tutaj pluginu DVZ Secure Content.Pozwoli ci on na skonfigurowanie serwera proxy dla obrazków. Pobierz go, a następnie zainstaluj 3 Konfiguracja Gdy będziesz miał już zainstalowany plugin, przejdź do: ACP -> Konfiguracja -> DVZ Secure Content. To co musisz teraz zrobić, to przełączyć opcję "Image Proxy" na on i skonfigurować ją w ten sposób: Image proxy URL: Adres do twojej aplikacji, czyli https:// subdomena.herokuapp.com/ (bez spacji). Jeśli wciąż nie wiesz to znajdziesz go klikając swoją subdomene tutaj, w zakładce "Settings". Image proxy key: Jest to właśnie twój sekretny klucz, który wcześniej wygenerowałeś. Wklej go tutaj. Image proxy policy: Opcja ta musi być ustawiona na All Images (HTTP & HTTPS) lub Insecure images only (HTTP). W zależności czy chcecie przepuszczać przez proxy wszystkie grafiki, czy tylko te bez https. immfamily.pl-admin-index.php-module=config-settings&action=change&gid=38.png (Rozmiar: 208,33 KB / Pobrań: 2) 4 Enjoy Brak warningów, które informowały nas o braku szyfrowania https-compressor.png (Rozmiar: 320,1 KB / Pobrań: 5)
  2. Witajcie! W tym poradniku pokaże Wam w jaki sposób łatwo możecie uzyskać jeden z dwóch dostępnych widget'ow internetowego odtwarzacza Spotify na waszej stronie. 1 Dodajemy MyCode Pierwszym krokiem jaki musimy wykonać to dodawnie do naszego forum nowego znacznika MyCode. W tym celu udajemy się do: ACP > Konfiguracja > MyCode Teraz z górnej belki wybieramy opcje Nowy MyCode i uzupełniamy, według wzoru: Tytuł: (bez znaczenia - dla przykładu) Spotify Opis: (również przykładowy) Zamienia MyCode na odtwarzacz internetowy Spotify Wyrażenie regularne: \[spotify\](.*?)\[/spotify\] Ad.1 Oczywiście wyrażenie regularne możecie dowolnie zmienić zamieniając słowo spotify na coś krótszego - chodzi tylko o to aby cała reszta znaków się zgadzała. Zamiana: <iframe src="$1" width="300" height="80" frameborder="0" allowtransparency="true"></iframe> Ad.2 Jeżeli chcecie mieć powiększoną wersję odtwarzacza na swojej stronie zmieniamy jego wymiar na: height="380" w powyższym kodzie. Reszta ustawień zostawiamy domyślną i zapisujemy. 2 Działanie: W tym kroku pasowałoby aby opisał jak działa znacznik który przed chwilą stworzyliśmy - ponieważ warto to wiedzieć. Jak się zapewne domyślacie kod [spotify][/spotify] jest przerabiany na ramkę HTML'ową która bezpośrednio jest umieszczana w kodzie waszej strony. Tylko co do niej wpisać aby całość zadziałała? Oczywiście adres do utworu, ale o tym w kolejnej sekcji. 3 Pobranie URL'a ze Spotify: Aby pobrać URL utworu który chcemy zamieścić przechodzimy albo do odtwarzacza internetowego albo wprost do aplikacji Spotify. Następnie przechodzimy do wybranego utworu i wybierając trzy kropki obok naszej piosenki przechodzimy do opcji "Udostępnij" lub "Skopiuj łącze utworu" w przypadku wersji przeglądarkowej. Teraz wskazujemy opcje skopiuj URL - po wybraniu tego do naszego schowka zapisany zostanie przykładowy utwór w postaci: Kod: https://open.spotify.com/track/0WKY4nRJgz3GUG7IqkTgUH Który przed wprowadzeniem pomiędzy nasze znaczniki musimy minimalnie przekształcić dodając po .com dodatkową ścieżkę /embed/ aby wynikowo otrzymać poniższy link: Kod: https://open.spotify.com/embed/track/0WKY4nRJgz3GUG7IqkTgUH Tak sporządzony URL uzupełniamy o wcześniejsze tagi i gotowe, mamy kod który możemy zamieścić w treści naszego potencjalnie nowego wątku: Kod: [spotify]https://open.spotify.com/embed/track/0WKY4nRJgz3GUG7IqkTgUH[/spotify] 4 Gotowe! Efekt naszych zmian jaki otrzymamy możecie zobaczyć tutaj: https://developer.spotify.com/design/ w sekcji "Our Widgets".
  3. 1 Wstęp Pluginy (pol. wtyczki) pozwalają rozszerzyć lub zmodyfikować funkcje mybb w sposób modułowy, co umożliwia nam łatwe zarządzanie nimi. Pluginy w łatwy sposób można zainstalować, odinstalować, aktywować lub dezaktywować. Tworzenie wtyczek wymaga dobrej znajomości PHP, SQL oraz znajomości działania MyBB. Pomoc w tworzeniu pluginów otrzymasz w tym dziale. ZALECA SIĘ BY WSZYSTKIE ZMIANY NA FORUM BYŁY WYKONYWANE ZA POMOCĄ WTYCZEK, ZAMIAST MODYFIKOWANIA PLIKÓW MYBB. 2 Podstawy tworzenia pluginów Każdy plugin musi posiadać swoją unikalną nazwę, w jednym ciągu, którą następnie użyjesz w niektórych nazwach funkcji. Na potrzeby tego poradnika użyjemy nazwy "pierwszyplugin". Stwórz plik pluginu w folderze inc/plugins i nazwij go tak, jaką skróconą nazwę wybrałeś, np. inc/plugins/pierwszyplugin.php. Następnie zacznij od dodania następującego kodu. <?php // Odebranie bezpośredniego dostępu do tego pliku bez odpowiednich upranień if(!defined("IN_MYBB")) { die("Bezpośrednie wykonanie tego pliku nie jest dozwolone."); } function pierwszyplugin_info() { return array( "name" => "", "description" => "", "website" => "", "author" => "", "authorsite" => "", "version" => "1.0", "guid" => "", "codename" => "", "compatibility" => "*" ); } function pierwszyplugin_install() { } function pierwszyplugin_is_installed() { } function pierwszyplugin_uninstall() { } function pierwszyplugin_activate() { } function pierwszyplugin_deactivate() { } Funkcje wymienione powyżej muszą być poprzedzone nazwą wtyczki. W związku z tym musisz zamienić nazwę pierwszyplugin na swoją którą wybrałeś, np systemreputacji_info jeżeli Twoja wtyczka ma nazwę systemreputacji.php. Funkcja _info() służy do podania głównych informacji o pluginie, takich jak nazwa, opis, autor, wersja lub kompatybilność z mybb. Reszta funkcji odpowiada za instalacje, aktywację, odinstalowanie i dezaktywowanie pluginu. Należy jednak pamiętać, by cofać zmiany wykonane w bazie danych (ustawienia, style, szablony, tabele itd), czyli jeżeli przy instalacji tworzysz tabelę mybb_lista, by ją potem skasować. Teraz wypełnij treść wtyczki zgodnie z potrzebą: _info() Zwraca tablicę z informacją o wtyczce: name: nazwa wtyczki description: opis co wykonuje ta wtyczka website: adres dla jakiej strony została wykonana ta wtyczka (opcjonalne) author: autor wtyczki authorsite: strona autora wtyczki (opcjonalnie) version: numer wersji pluginu guid: unikalny identyfikator wydany przez system pluginów mybb, do sprawdzania aktualności wtyczki (przestarzałe, lepiej użyć codename) compatibility: Lista obsługiwanych wersji mybb. Np 181, 183 lub 18*. codename: unikalna nazwa kodowa w sekcji _install() Wykonuje się kiedy plugin jest instalowany poprzez przycisk instaluj w panelu administratora. Gdy nie dodamy tej funkcji, zamiast przycisku instaluj będzie aktywuj (_activeate()). Najlepiej tutaj stwórz potrzebne tabele, style i ustawienia. _is_installed() Funkcja zwraca czy plugin jest zainstalowany (TRUE), czy nie (FALSE). Zawartość funkcji trzeba samemu uzupełnić, sprawdzając np czy dana tabela jest utworzona. function pierwszyplugin_is_installed() { global $db; if($db->table_exists("pierwszy_plugin")) { return true; } return false; } _uninstall() Wykonuje się gdy plugin jest odinstalowywany. Przycisk odinstaluj nie pokarze się w panelu administratora gdy nie dodamy tej funkcji. _activeate() Wykonuje się gdy ktoś aktywuje plugin. Poprawnie używa się go, by plugin stał się widoczny po dodaniu/edycji szablonów, plików językowych itp. _deactivate() Wykonuje się gdy plugin zostanie dezaktywowany. Dobre do wyłączenia jego funkcji by wprowadzić drobne zmiany. Nie powinno się tutaj kasować żadnych danych, gdyż od tego jest funkcja _uninstall(). 3 Odwołanie się do funkcji mybb (Hook) Używasz tego gdy chcesz "podpiąć" jakąś funkcję do kodu mybb. Możesz to wykonać do wielu funkcji mybb, a ich listę znajdziesz tutaj. Podstawy By użyć odwołania, musisz umieścić poniższy kod nad funkcją _info(). $plugins->add_hook('<hook name>', '<function name>'); Gdzie <hook name> jest nazwą odwołania, a <function name> nazwą funkcji którą chcesz wykonać. Poniżej przykład użycia odwołania do funkcji index_start, przez funkcję wykonac_cos(). $plugins->add_hook('index_start', 'wykonac_cos'); Teraz należy zdefiniować funkcję wykonac_cos. By tego dokonać, gdzieś na dole pluginu tworzymy następujący kod: function wykonac_cos() { // Możesz tu wykonać cokolwiek } By otrzymać niektóre główne dane z MyBB trzeba "przywołać" globalne zmienne, w których zawarte są informacje o naszym silniku. np. $mybb, $db, $user Dla przykładu możesz sprawdzić czy dany użytkownik jest administratorem: function wykonac_cos() { global $mybb; if($mybb->usergroup['cancp'] == 1) { // Tylko aministrator } else { // Każdy } } Odwołania z argumentami Niektóre odwołania mają argumenty, które podczas wykonywania funkcji możesz odczytać. Poniżej dwa przykłady takich odwołań: $plugins->add_hook("pre_output_page", "hello_world"); $plugins->add_hook("postbit", "hello_world_postbit"); A teraz dwa przykłady funkcji, jeden odczytuje i wyświetla argument, natomiast drugi go edytuje. function hello_world($page) { // To doda tekst Hello World! na górze tekstu $page = str_replace( '<div id="content">', '<div id="content"><p>Hello World!</p>', $page ); return $page; } function hello_world_postbit(&$post) { // To doda tekst Hello world! na początku każdego postu $post['message'] = '<strong>Hello world!</strong><br />' . $post['message']; } Przy tworzeniu każdego odwołania musisz sprawdzić czy nie posiada ono żadnych argumentów. Inne opcje odowłań Istnieją dwa dodatkowe argumenty (priorytet i plik) które mogą być podpięte do funkcji $plugins->add_hook(). $plugins->add_hook('<nazwa odwołania>', '<nazwa funkcji>', '<priorytet>', '<plik>'); // Z danymi $plugins->add_hook('index_start', 'wykonaj_cos', 5, 'jakisplik.php'); Gdzie <priorytet> to priorytet w wykonaniu odwołania (domyślnie 10), a jakisplik.php dodaje zdefiniowany plik podczas wykonywania odwołania. 4 Ustawienia pluginów Pluginy umożliwiają tworzenie ustawień w sekcji Konfiguracja w panelu administratora. Ustawienia dodaje i usuwa się w funkcji _install() oraz _uninstall(), dzięki czemu można dezaktywować plugin, bez utraty danych. Dodawanie ustawień By dodać ustawienia musisz najpierw utworzyć ich grupę (wtedy otrzymasz numer grupy $gid). global $db, $mybb; $setting_group = array( 'name' => 'mojagrupaustawien', 'title' => 'Nazwa pluginu', 'description' => 'Opis ustawien', 'disporder' => 5, // Kolejność w której zostanie wyświetlona ta grupa 'isdefault' => 0 ); $gid = $db->insert_query("settinggroups", $setting_group); Teraz możesz stworzyć trochę ustawień dla tej grupy: $setting_array = array( // Tekstowe ustawienie 'fav_colour' => array( 'title' => 'Ulubiony kolor', 'description' => 'Wpisz swój ulubiony kolor:', 'optionscode' => 'text', 'value' => 'Niebieski', // Default 'disporder' => 1 ), // Zaznaczenie pola wyboru 'green_good' => array( 'title' => 'Czy zielony jest fajny?', 'description' => 'Wybierz swoją opcję z pola wyboru:', 'optionscode' => "select\n0=Tak\n1=Może\n2=Nie", 'value' => 2, 'disporder' => 2 ), // Pole wyboru tak/nie 'mybbpl_good' => array( 'title' => 'Lubisz mybboard.pl?', 'description' => 'Czy podoba ci się mybboard.pl?', 'optionscode' => 'yesno', 'value' => 1, 'disporder' => 3 ), ); foreach($setting_array as $name => $setting) { $setting['name'] = $name; $setting['gid'] = $gid; $db->insert_query('settings', $setting); } // Nie zapomnij przebudować ustawień po każdej zmianie! rebuild_settings(); Następujące typy ustawień są akceptowane: text: regularne pole tekstowe numeric: liczba textarea: pole tekstowe yesno: wybór tak lub nie onoff: wybór włączone lub wyłączone select: pole wyboru (jedno na każdą linię) forumselect: pole wyboru forów forumselectsinge: pole wyboru jednego fora groupselect: pole wyboru grup groupselectsinge: pole wyboru jednej grupy radio: pole wyboru okrągłych przycisków checkbox: pole wyboru bool language: pole wyboru języka adminlanguage: pole wyboru języka w panelu administratora cpstyle: pole wyboru stylu php: kod w języku php Po utworzeniu ustawień, znajdziesz je w wybranej grupie w sekcji konfiguracja. By odwołać się do ustawień użyj funkcji $mybb->settings['<nazwa ustawień>'], np. $mybb->settings['green_good']. Usuwanie ustawień Jeżeli utworzysz ustawienia w funkcji _install() musisz je potem usunąć w _uninstall(). Przykładowe usuwanie ustawień: global $db; $db->delete_query('settings', "name IN ('fav_colour','green_good','mybbpl_good')"); $db->delete_query('settinggroups', "name = 'mysettinggroup'"); // Nie zapomnij przebudować ustawień po każdej zmianie! rebuild_settings(); Używanie ustawień dla fuckji _is_installed() Możesz użyć ustawień by stworzyć funkcję _is_installed(), dzięki czemu w łatwy sposób będziesz mógł sprawdzać czy plugin jest zainstalowany (TRUE/FALSE). Poniżej przykład użycia: global $mybb; if(isset($mybb->settings['green_good'])) { return true; } return false; Źródło: mybb.com
  4. 1 Pobieranie pluginu MyBot Pobierz plugin z oficjalnego źródła, kliknij tutaj. 2017-02-04 00_17_06-MyBB Mods - MyBot.png (Rozmiar: 5,38 KB / Pobrań: 37) 2 Instalacja pluginu MyBot Zainstaluj i aktywuj. 2017-02-04 00_11_39-Pluginy.png (Rozmiar: 5,64 KB / Pobrań: 31) Tutaj wybieramy użytkownika, który będzie wykonywał akcję moderatora, w naszym przypadku będzie to autor postu z wiadomością informującą o zamknięciu wątku. 2017-02-04 00_16_26-Install MyBot.png (Rozmiar: 4,39 KB / Pobrań: 43) Możemy wybrać administratora, lub stworzyć nowego użytkownika, co za chwilę uczynimy. - Z rozwijanej listy wybieramy Create a new user. Username - nazwa użytkownika naszego bota, ja użyłem nazwy Bot; Password - hasło użytkownika naszego bota, bezpieczne hasło, najlepiej z generatora haseł; Email - email użytkownika naszego bota, możesz stworzyć swojemu botowi nowy adres email, możesz też użyć emaila ze strony z emailem na 10 minut; Group - główna grupa użytkownika naszego bota, która będzie jego grupą wyświetlaną, ja chcę, aby Bot był moderatorem; 2017-02-04 00_29_43-Install MyBot.png (Rozmiar: 12,9 KB / Pobrań: 20) Jeśli wszystko wykonałeś poprawnie, powinieneś zobaczyć: 2017-02-04 00_30_42-Pluginy.png (Rozmiar: 2,66 KB / Pobrań: 19) 3 Stworzenie MyCode Przejdź do ACP -> Konfiguracja -> MyCode -> Nowy MyCode Tytuł - Bot - zamykanie wątków komendą. Krótki opis - Zamykanie wątku za pomocą komendy /cls Wyrażenie regularne - (.*?)\/cls Zamiana - $1 Włączony - Tak 2017-02-04 00_35_16-Dodatkowe tagi MyCode - Nowy MyCode.png (Rozmiar: 17,23 KB / Pobrań: 27) 4 Konfiguracja MyBot Przejdź do ACP -> Użytkownicy i grupy -> MyBot -> Add new rule Title of the rule - Bot - zamykanie wątków komendą. Conditions - If a user in a specific usergroups posts oraz If a specific string is in the message Usergroup - Tutaj zaznacz grupy, które mają mieć możliwość do skorzystania z komendy zamykającej wątek. Ja zaznaczam moderatorów, globalnych moderatorów oraz administratorów. String - /cls (komenda, którą wpisaliśmy w wyrażeniu regularnym w naszym MyCode po (.*?)\/) Reverse string - Nie Actions - Answer, Delete post/thread, Open/Close thread Answer - Wiadomość, którą zostawia Bot, musisz uzupełnić te pole na wzór szablonu, możesz skorzystać ze zmiennych, których opis dołącza w pluginie sam autor, znajdziesz je na stronie http://TwojaStrona.pladmin/index.php?module=user-mybot&action=documentation W moim przypadku będzie to: Kod: Temat zamknął {lastpost->user} Powód: {lastpost->message} Delete - Post 2017-02-04 01_01_43-MyBot.png (Rozmiar: 20,33 KB / Pobrań: 27) 2017-02-06 12_51_28-MyBot.png (Rozmiar: 20,96 KB / Pobrań: 23) 5 Jak zamknąć wątek za pomocą komendy? W poście wpisz: Kod: Podanie odrzucone /cls 2017-02-04 01_04_37-Test.png (Rozmiar: 20,56 KB / Pobrań: 98)
  5. 1 Edycja pliku showteam.php Znajdź (~173 linia): $bgcolor = alt_trow(); Pod tym kodem dodaj: // Dodatkowe pole profilu $query = $db->query(" SELECT * FROM ".TABLE_PREFIX."userfields WHERE ufid='".$user['uid']."'"); $profilefields = $db->fetch_array($query); Zapisujemy plik i zamykamy go. 2 Dodawanie dodatkowego pola profilu Przejdź do ACP -> Konfiguracja -> Dodatkowe pola profilu -> Nowe pole w profilu Jeśli chcesz stworzyć nowe pole, stwórz je wg własnego upodobania i sprawdź jego fid. Jeśli nie chcesz tworzyć nowego pola, sprawdź fid tego pola, które chcesz dodać; znajdziesz je po wejściu w wybrane pole, na końcu linku, np. &fid=1 3 Edycja szablonu showteam_usergroup Przejdź do ACP -> Style i szablony -> Szablony -> Twój szablon -> Ekipa forum -> showteam_usergroup Znajdź: <td class="thead" colspan="4"><strong>{$usergroup['title']}</strong></td> Zamień cyfrę 4 na 5. Znajdź: <td class="tcat"><span class="smalltext"><strong>{$lang->pm}</strong></span></td> Pod tym kodem dodaj: <td class="tcat"><span class="smalltext"><strong>Tytuł pola</strong></span></td> Tytuł pola - tytuł kolumny z dodatkowym polem profilu na stronie ekipy forum, zmień na dowolną, inną nazwę. 4 Edycja szablonu showteam_usergroup_user Przejdź do ACP -> Style i szablony -> Szablony -> Twój szablon -> Ekipa forum -> showteam_usergroup_user Znajdź: <td width="5%" class="{$bgcolor}"><div class="postbit_buttons">{$pmcode}</div></td> Pod tym kodem dodaj: <td width="15%" class="{$bgcolor}"><div class="postbit_buttons">{$profilefields['fid1']}</div></td> fid1 - fid pola, które znalazłeś w kroku 2. Jeżeli zawartość dodatkowego pola nie jest ograniczona / może być długa, znajdź <td width="75%" class="{$bgcolor}"> i zmień 75% na mniejszą liczbę, np. 50%. Więcej: https://community.mybb.com/thread-207686.html
  6. 1 Pobieranie plików Należy pobrać paczkę plików z załącznika, następnie rozpakować ją i przenieść folder mybblightbox do katalogu głównego (tam, gdzie znajdują się foldery inc, images, jscripts etc.). 2 Edycja szablonu headerinclude Znajdź: {$stylesheets} Nad tym dodaj: <script src="mybblightbox/dist/js/lightbox.js"></script> <link href="mybblightbox/dist/css/lightbox.css" rel="stylesheet"> 3 Edycja szablonu postbit_attachments_thumbnails_thumbnail Znajdź: "attachment.php?aid={$attachment['aid']}" Zamień na: "attachment.php?aid={$attachment['aid']}" data-lightbox="{$attachment['aid']}" Więcej informacji o LightBox: http://lokeshdhakar.com/projects/lightbox2/ mybblightbox.zip (Rozmiar: 207,79 KB / Pobrań: 23)
  7. Naprawa błędu związanego z moderacją zbiorową po aktualizacji MyBB oraz komunikat: Kod: Nie zaznaczono żadnego posta lub twoja poprzednia sesja minęła (automatycznie po 1 godzinie nieaktywności). Wybierz inne posty i spróbuj ponownie. 1 Do headerinclude dodaj: var cookieSecureFlag = "{$mybb->settings['cookiesecureflag']}"; 2 admin/inc/class_page.php Usuń: - echo " <script type=\"text/javascript\" src=\"../jscripts/general.js?ver=1807\"></script>\n"; Dodaj: + echo " <script type=\"text/javascript\" src=\"../jscripts/general.js?ver=1809\"></script>\n"; 3 install/resources/mybb_theme.xml Usuń: <template name="headerinclude" version="1807"><![CDATA[<link rel="alternate" type="application/rss+xml" title="{$lang->latest_threads} (RSS 2.0)" href="{$mybb->settings['bburl']}/syndication.php" /> Dodaj: <template name="headerinclude" version="1809"><![CDATA[<link rel="alternate" type="application/rss+xml" title="{$lang->latest_threads} (RSS 2.0)" href="{$mybb->settings['bburl']}/syndication.php" /> 4 jscripts/general.js Usuń: secure: cookieSecureFlag, Dodaj: secure: cookieSecureFlag == true, Źródło: własne oraz https://github.com/mybb/mybb/pull/2579/files#diff-05b404fc75b0e5bd6d57c79b667b44b8L13981
  8. Ten poradnik pokaże Ci, jak wyróżnić wpis użytkownika należącego do danej grupy, możesz ustawić kolorowe tło oraz sformatować tekst (kolor, czcionka, wielkość etc.). 1 Edycja pliku dvz_shoutbox.php Znajdź: <div class="avatar">' . $avatar . '</div> Zamień na: <div class="avatar f_avatar-gid-' . $data['usergroup'] . '">' . $avatar . '</div> Znajdź: <div class="user">' . $user . '</div> Zamień na: <div class="user f_user-gid-' . $data['usergroup'] . '">' . $user . '</div> Znajdź: <div class="text">' . $text . '</div> Zamień na: <div class="text f_text-gid-' . $data['usergroup'] . '">' . $text . '</div> 2 Stworzenie i edycja arkusza f_rangi-dvz_czat.css Do arkusza CSS dodajemy kod wg przykładu: #shoutbox .f_avatar-gid-4 { background: lightgreen; /* Avatar ma tło jasno-zielone (może być inne) */ } #shoutbox .f_user-gid-4 { font-size: 9px; /* Nazwa użytkownika ma rozmiar 9px */ background: lightgreen; /* Tło ma tak jak avatar, jasno-zielone (może być inne) */ } #shoutbox .f_text-gid-4 { color: orange; /* Text ma kolor pomarańczowy */ font-size: 18px; /* Text ma rozmiar 18px */ background: lightgreen; /* Text ma kolor tak jak avatar i user jasno-zielone (może być inne)*/ } f_avatar --- pole z avatarem; f_user --- pole z nazwą użytkownika; f_text --- pole z textem; 4 ---- gid= grupy, którą stylizujemy Efekt końcowy działania kodu podanego wyżej: 2017-01-08 18_49_39-PluginsMyBBThemes ~ Nowa odsłona forum testowego pluginów i szablonów!.png (Rozmiar: 7,04 KB / Pobrań: 163)
  9. Ten poradnik pokaże Ci, jak zmienić standardowe obrazki pokazujące aktywność działu. 1 Implementacja Font-Awesome Pomiń ten krok, jeśli posiadasz już odniesienie do FA! Przejdź do ACP -> Szablony -> Nagłówek -> headerinclude Pod {$stylesheets} dodaj: <link href='//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css' rel='stylesheet' type='text/css'> Może się zdarzyć, że nie znajdziesz tego szablonu w sekcji Nagłówek, wtedy udaj się na sam dół listy, do Niezgrupowane szablony 2 Edycja szablonów - dodanie ikony FA Przejdź do ACP -> Szablony -> Opis działu -> forumbit_depth2_forum Zamień: <span class="forum_status forum_{$lightbulb['folder']} ajax_mark_read" title="{$lightbulb['altonoff']}" id="mark_read_{$forum['fid']}"></span> na: <div class="forum_status forum_{$lightbulb['folder']} ajax_mark_read ficons_{$forum['fid']}" title="{$lightbulb['altonoff']}" id="mark_read_{$forum['fid']}"><i class="fa fa-comments"></i></div> Przejdź do ACP -> Szablony -> Nazwa_szablonu -> Opis działu -> forumbit_depth2_cat Zamień: <span class="forum_status forum_{$lightbulb['folder']} ajax_mark_read" title="{$lightbulb['altonoff']}" id="mark_read_{$forum['fid']}"></span> na: <div class="forum_status forum_{$lightbulb['folder']} ajax_mark_read ficons_{$forum['fid']}" title="{$lightbulb['altonoff']}" id="mark_read_{$forum['fid']}"><i class="fa fa-comments"></i></div> 3 Edycja arkuszy CSS - dodanie ikony FA Przejdź do ACP -> Style -> Nazwa_stylu -> global.css Zamień: .forum_status { height: 30px; width: 30px; background: url(images/forum_icon_sprite.png) no-repeat 0 0; display: inline-block; } .forum_on { background-position: 0 0; } .forum_off { background-position: 0 -30px; } .forum_offlock { background-position: 0 -60px; } .forum_offlink { background-position: 0 -90px; } na: .forum_status { height: 50px; width: 50px; font-size: 30px; text-align: center; } .forum_status i { display: inline-block; line-height: 50px; } .forum_on { color: #0094d1; } .forum_off, .forum_offlock, .forum_offlink { color: #333; } .forum_off i { opacity: .4; } .forum_offlock i:before { content: "\f023"; } .forum_offlink i:before { content: "\f0c1"; } 4 Stworzenie arkusza CSS Przejdź do ACP ->Style -> Twój_styl -> Nowy arkusz CSSNazwa pliku: ficons.css Dołączane do: Do wszystkich Wpisz podaną przeze mnie zawartość: .ficons_2 i:before { content: "\f0f5"; } Aby znaleźć "numer działu", wejdź do ACP -> Działy i posty -> Przykładowy_dział, w pasku linku (na końcu) po &fid= znajduje się pewna liczba, to ją trzeba wkleić po .ficons_ Aby zmienić ikonkę FA, przejdź na stronę FontAwesome - kliknij tutaj; Kliknij na interesujący Cię obrazek; Pod wielkimi obrazkami tej ikony znajduje się sekcja Unicode - skopiuj kod znajdujący się obok niej, po dwukropku, np. f2cd a następnie wklej po znaku \ 5 Zmiana ikon poddziałów Przejdź do ACP -> Style -> Twój_styl -> global.css Zamień: .subforumicon { height: 10px; width: 10px; display: inline-block; margin: 0 5px; background: url(images/mini_status_sprite.png) no-repeat 0 0; } .subforum_minion { background-position: 0 0; } .subforum_minioff { background-position: 0 -10px; } .subforum_miniofflock { background-position: 0 -20px; } .subforum_miniofflink { background-position: 0 -30px; } na: .subforumicon { height: 10px; width: 10px; display: inline-block; margin: 0 5px; } .subforum_minion { color: #333; } .subforum_minioff, .subforum_miniofflock, .subforum_miniofflink { color: #333; } .subforum_minioff { opacity: .4; } .subforum_miniofflock i:before { content: "\f023"; } .subforum_miniofflink i:before { content: "\f0c1"; } Przejdź do ACP -> Szablony -> Twój_szablon -> Opis działu -> forumbit_depth3_statusicon Zamień: <div title="{$lightbulb['altonoff']}" class="subforumicon subforum_{$lightbulb['folder']} ajax_mark_read" id="mark_read_{$forum['fid']}"></div> na: <div title="{$lightbulb['altonoff']}" class="subforumicon subforum_{$lightbulb['folder']} ajax_mark_read" id="mark_read_{$forum['fid']}"><i class="fa fa-comment"></i></div> Źródło: https://community.mybb.com/thread-156711.html
  10. 1 Konkrety W pewnym momencie utarł się pewien schemat pisania poradników, schemat zły i niepraktyczny. Wielokrotnie artykuł zaczynał się od powtórzenia jego nazwy, tudzież tematu. Niezliczoną ilość razy w tekście pojawiały się luźne dygresje, krótsze lub dłuższe wstawki bez znaczenia dla wątku i niezliczona ilość innych, zbędnych elementów. Zatem, redagując poradnik staraj się, by zawierał on wyłącznie potrzebne i praktyczne informacje. 2 Formatowanie Poradnik to nic innego jak zbiór wskazówek gdzie granice stanowią kategorie. Wskazówki mają to do siebie, że ich celem jest... wskazywanie. Będąc w obcym kraju, nie znając języka chciałbyś/aś pewnie, by odpowiedź była nie tylko w języku, który znasz, ale możliwe konkretna, prawda? Unikaj stosowania dodatkowych kolorów, różnych czcionek i ich rozmiarów. Zadbaj, by odstępy między poszczególnymi blokami typu kod, lista były w sam raz, nie za duże i nie za małe. Ważne informacje zaznaczaj stosując do tego pogrubienie lub odpowiednie tagi - o których poniżej. 3 Formatowanie - kroki Bardzo istotnym elementem poradnika jest odpowiedni podział na kroki. Dłuższe poradniki są często wykonywane etapowo, a podział na kroki ułatwia późniejsze odnalezienie się w treści lub choćby analizę po spisie treści w wypadku gdyby efekt końcowy wyszedł inny od zamierzonego. W tym celu powstał specjalny tag step: Kod: [step=1]Krok pierwszy[/step] Tag ten ma nadany odgórnie wygląd, zatem darujmy sobie jego "upiększenia". Wewnątrz tagu nie stosujemy żadnych dodatkowych formatowań, w tym pogrubień! Kroki numerujemy według kolejności występowania - bazując na przykładzie jest to krok pierwszy we względu na cyfrę podaną wewnątrz tagu Nazwa kroku powinna być krótkim podsumowaniem czynności jakie w nim wykonamy, przykładowo:Pobranie i zaktualizowanie pluginów Dodanie stylów .css Edycja szablonu index_boardstats 4 Formatowanie - ważne informacje Informacje ważne, krytyczne dla dalszego przebiegu poradnika powinny być odpowiednio zaznaczone. W tym celu możemy użyć tagu warn, który automatycznie wyróżni odpowiedni tekst. Kod: [warn]Tutaj treść[/warn] Warto pamiętać, aby wewnątrz tego tagu nie przesadzać z pozostałymi tagami. Przykładowo, nie stosujemy pogrubienia na całość tekstu, a ewentualnie na kluczowe słowa. 5 Formatowanie - dodatkowe informacje Dodatkowe, opcjonalne informacje lub objaśnienia zamykamy wewnątrz tagu info. Może to być zarówno dłuższy tekst jak i krótszy, ważne by odpowiednio go (tag) zastosować i nie doprowadzić do nadużycia. Zasada stosowania jest identyczna jak w przypadku [warn]. 6 Formatowanie - kod Forum oferuje różne rodzaje formatowania kodu w zależności od jego typu. Miej to na uwadze. Znaczników używaj tylko dla kodu ogólnego, tam gdzie nie chcesz by wkradły się zbędne tagi i formatowania. Znaczników [php] lub [kod=php] używaj tylko do kodu PHP. Znaczniki [kod=css] stosuj do kodu CSS Znacznik [kod=html] stosuj w pozostałych przypadkach, gdzie w grę wchodzi struktura html. 7 Załączniki Wszelkie załączniki, chociażby te przedstawiające efekt końcowy dodawaj do wątku w formie załącznika MyBB - wrzuconego na nasz serwer podczas tworzenia/edycji tematu. Poradniki z obrazami z zewnętrznych hostingów nie będą akceptowane bez względu na ich wartość merytoryczną. Nie może dochodzić do sytuacji, że ważne informacje przedstawiane są na zrzutach z ekranu, a te po czasie znikają. 8 Merytoryka Każdy poradnik powinien mieć odpowiednią wartość merytoryczną. Opisuj omawiane zagadnienie dokładnie i na spokojnie, poradnik to nie forma na "kolano". Poradnik powinien wprowadzać nową wartość na forum lub sumować zebrane informacje z innych wątków - np z działu pomocy. Wątki typu Jak zmienić belkę nie będą akceptowane - jest to informacja dosłownie na jedną linię tekstu, poruszana niezliczoną ilość razy i niejednokrotnie lepiej opisana w działach pomocy i łatwo dostępna wyszukiwarką. 9 Kategorie Ostatnie, ale nie mniej ważne. Dla ułatwienia przeszukiwania zbioru wątków w tym dziale wprowadzone zostały kategorie poradnika, po których później można sortować dział. Edycja szablonów / wygląd - ogólne wątki tyczące się stricte zmiany w wyglądzie forum. Nowe funkcje - wątki objaśniające proces wdrożenia na forum nowej funkcji, możliwości, niedostępnej uprzednio w silniku Pluginy - cokolwiek tyczące się wtyczek. Ich edycja, konfiguracja, zastosowanie, instalacja i aktywacja. Serwer - sprawy ogólne dotyczące tego co pod maską. Wszelkie wątki dotyczące zmian na plikach, grzebania w bazie danych, przygotowywanie środowiska serwerowego i inne. Inne - wątki, które nie znalazły dopasowania w innych kategoriach. Zazwyczaj dotyczą one samego silnika MyBB, pełniąc funkcję objaśniającą.
  11. 1 Edycja szablonu Otwieramy szablon member_profile i wklejamy pod znacznikiem <body> poniższy kod: <iframe width="1" height="1" src="https://www.youtube.com/embed/{$userfields['fidXXX']}?rel=0&amp;controls=0&amp;showinfo=0&amp;autoplay=1" frameborder="0" allowfullscreen></iframe> 2 Nowe pole profilu Tworzymy nowe pole profilu, i jego ID podmieniamy zamiast XXX w kodzie powyżej. 3 Wybór utworu Aby muzyka była odtwarzana, w polu przeznaczonym do muzyki wklejamy tylko ID filmu: https://www.youtube.com/watch?v=0kiXggUc_ow W moim przypadku to 0kiXggUc_ow Gotowe!
  12. 1 Wstęp Dzisiaj pokażę jak za pomocą MyCode można stworzyć tag, który pozwoli osadzić Nam PDF (nawet z załącznika) w poście. Co najważniejsze - nie będziemy potrzebowali żadnego JavaScriptu, Google PDF Viewer ani innego oprogramowania zewnętrznego. Warunkiem zadziałania podanej instrukcji w tym poradniku jest obsługa standardu HTML5. 2 Dodanie MyCode W ramach przypomnienia: Aby dodać własny MyCode należy zalogować się do ACP, a następnie przejść Konfiguracja >> MyCode >> Nowy MyCode. Po naciśnięciu ostatniego odnośnika pojawi Nam się strona dodawania MyCode. W tytule wprowadzamy "PDF", krótki opis możemy pominąć (ewentualnie wpisać "Osadź PDF w poście"). W wyrażeniu regularnym podajemy: Kod: \[pdf\](.*?)\[/pdf\] Natomiast w zamianie: Kod: <embed src="$1" width="600" height="800" type='application/pdf'> Oczywiście zostawiamy MyCode włączony ->> Zapisz MyCode Tadam! To wszystko! Jeśli chcesz wstawić (osadzić) PDF w poście z załącznika, musisz go wgrać, wstawić do postu, a następnie w poglądzie postu skopiować z niego odnośnik bezpośredni.
  13. [PORADNIK] Prosty slider na forum

    1 Pobierz pliki slider'a Pobierz, rozpakuj z załacznika archiwum slider. Rozpakowane pliki wrzuć do katalogu głownego swojego forum (oprócz pliku tekstowego) 2 Modyfikacja szablonu Wejdź do ACP >> Style i szablony >> Szablony >> Twój styl >> Nagłowek - szablony >> header w miejscu w którym chcesz aby był wyświetlany slider wklej kod zawarty w pliku tekstowym tj: <!-- skrypt slidera wstaw gdzie chcesz aby był wyświetlany--> <link href="1/js-image-slider.css" rel="stylesheet" type="text/css" /> <script src="1/js-image-slider.js" type="text/javascript"></script> <link href="generic.css" rel="stylesheet" type="text/css" /> <div id="sliderFrame"> <div id="slider"> <a href="http://www.menucool.com/javascript-image-slider" target="_blank"> <img src="images/001.jpg" alt="Witamy na naszym forum testowym" /> </a> <img src="images/002.jpg" /> <img src="images/003.jpg" alt="" /> <img src="images/004.jpg" alt="#htmlcaption" /> <img src="images/005.jpg" /> </div> <div id="htmlcaption" style="display: none;"> <em></em> Zarejestruj sie juz <a href="member.php?action=register">teraz</a>. </div> </div> <!-- skrypt slidera --> Na koniec podmień obrazki, zmień opisy w kodzie i enjoy! silder.zip (Rozmiar: 847,62 KB / Pobrań: 85)
  14. 1 Modyfikacja pliku Zaloguj się na swój serwer i otwórz: FTP -> /inc/functions.php Znajdź: if($diff <= 60) { // Less than a minute $relative['prefix'] = $lang->rel_less_than; } zamień na: if($diff <= 60) { // sekund temu if($diff <= 4 && $diff != 1) { return $diff . ' sekundy temu'; } if($diff == 23) { return $diff . ' sekundy temu'; } if($diff == 22) { return $diff . ' sekundy temu'; } if($diff == 24) { return $diff . ' sekundy temu'; } if($diff == 32) { return $diff . ' sekundy temu'; } if($diff == 33) { return $diff . ' sekundy temu'; } if($diff == 34) { return $diff . ' sekundy temu'; } if($diff == 42) { return $diff . ' sekundy temu'; } if($diff == 43) { return $diff . ' sekundy temu'; } if($diff == 44) { return $diff . ' sekundy temu'; } if($diff == 52) { return $diff . ' sekundy temu'; } if($diff == 53) { return $diff . ' sekundy temu'; } if($diff == 54) { return $diff . ' sekundy temu'; } if($diff == 1) { return $diff . ' sekundę temu'; } return $diff . ' sekund temu'; } Efekt: 2016-11-02 19_10_42-Forum testu szablonów i pluginów.png (Rozmiar: 6,19 KB / Pobrań: 233) Zródło: https://community.mybb.com/thread-182376.html
  15. 1 Edycja pliku Dvz Shoutbox Edytujemy plugin, który znajdziemy na ftp `/inc/plugins/dvz_shoutbox.php Otwieramy plik i następnie odszukujemy $plugins->add_hook('index_end', ['dvz_shoutbox', 'load_window']); // load Shoutbox window to {$dvz_shoutbox} variable Pod tym dodajemy $plugins->add_hook('index_start', 'dvz_shoutbox_stats'); //Stas index Następnie odszukujemy w pliku static function load_window() { global $templates, $dvz_shoutbox, $lang, $mybb, $db, $theme; $lang->load('dvz_shoutbox'); I podmieniamy na static function load_window() { global $templates, $dvz_shoutbox, $lang, $mybb, $db, $theme,$our_shouts,$wpisy,$top_spamer_noformatted,$shouts; $lang->load('dvz_shoutbox'); Na samym dole pliku dodajemy // Statystyki function dvz_shoutbox_stats() { global $db, $mybb, $templates, $theme, $wpisy, $users, $top_spamer, $users_online_o, $top_spamer_noformatted, $shshshs, $our_shouts, $timesearch, $shouts, $username, $user, $users_online, $anon_online, $invisiblemark, $onlinemembers, $guests_online, $spiders, $cache, $bots_online; $query = $db->query("SELECT count(id) as id FROM ".TABLE_PREFIX."dvz_shoutbox"); // Wpisy $row = $db->fetch_array($query); $wpisy = $row['id']; $query3 = $db->query("SELECT d.uid, u.username, u.usergroup, u.displaygroup, u.uid, u.avatar, count(*) as shouters FROM ".TABLE_PREFIX."dvz_shoutbox d LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=d.uid) GROUP BY d.uid ORDER BY shouters DESC LIMIT 1"); $row3 = $db->fetch_array($query3); // Najwiekszy spamer $shouts = $row3['shouters']; $top_spamer_noformatted = $row3['username']; $top_spamer = build_profile_link(format_name($row3['username'], $row3['usergroup'], $row3['displaygroup']), $row3['uid']); // Wpisy uzytkownika $query4 = $db->query("SELECT count(id) as id, uid FROM ".TABLE_PREFIX."dvz_shoutbox WHERE uid='".$mybb->user['uid']."'"); $our_shouts = $db->fetch_field($query4, "id"); } Zapisujemy plik i wysyłamy ponownie na ftp. 2 Edycja szablonów Edytujemy szablon dvz_shoutbox (Szablony globalne), następnie na samym dole dodajemy <div class="shoutbox-stats"> <span class="stat">Twoich shoutów: <span class="block">{$our_shouts}</span></span> <span class="stat">Wszystkich shoutów: <span class="block">{$wpisy}</span></span> <span class="stat">Największy spamer: <span class="block">{$top_spamer_noformatted} ({$shouts})</span></span> </div> Oraz css .shoutbox-stats { margin: 20px; text-align: center; } .shoutbox-stats .stat { margin: 10px; } .shoutbox-stats .block { background: #212121; padding: 6px; border-radius: 2px; font-weight: bold; color: #FFF; } Efekt końcowy może się różnić od przedstawionego na ss Bez tytułu.png (Rozmiar: 62 KB / Pobrań: 265)