Webboard

Pełna wersja: Problemy z wyświetlaniem pluginów
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Poziom trudności: Średni
Przykład z pluginu:
1. Ads after first post autorstwa MyBBoard.de
2. Emergency Message System autorstwa nitemare
Wersja mybb: Plugin pisany pod wersję 1.4 nie sprawdzałem jak jest pod 1.2

Witam!
Na forum często widzę posty typu "problem z wyświetlaniem pluginu xxx"
Myślę że po przeczytaniu poniższego poradnika każdy będzie mógł sam poradzić sobie z tego typu problemami. Tutorial nie należy do najłatwiejszych, wymaga trochę naszego wkładu.

Otóż problem z wyświetlaniem pluginów tkwi w tym, że w naszych szablonach nie ma odpowiedniego kodu.
Powstaje pytanie sąd taki kod wziąć?
Wystarczy go poszukać (nie od razu na forum) w kodzie wtyczki.

Otwieramy plik z naszą modyfikacją.
Szukamy linijki:
Kod PHP:
function activate() 
Jest to funkcja aktywująca plugin, nie w każdej wtyczce możne wyglądać tak samo, ważne aby znalazły się tam słowa kluczowe "function" i "activate"

W tejże funkcji aktywującej musimy znaleźć kod odpowiedzialny za edycję szablonu to w nim znajdziemy wszystko co jest nam potrzebne. Zaczyna się zazwyczaj od kodu:
Kod PHP:
find_replace_templatesets

Żeby każdy mógł lepiej zrozumieć posłużę się dwoma przykładami.
1. Ads after first post

Kod PHP:
function adsafp_activate() { 

    global 
$db;

    
// Variablen für dieses Plugin einfügen
    
require MYBB_ROOT."/inc/adminfunctions_templates.php";
    
find_replace_templatesets("postbit"'#</tbody> // w tej linijce znajduje się nazwa szablonu który należy zmodyfikować ("postbit")
</table>#'
"</tbody>
</table>{\$post['adsaf']}"
); // tutaj kod odpowiadający za wyświetlanie 

Szablon: "postbit"
Kod odpowiedzialny za wyświetlanie:
Kod PHP:
{$post['adsaf']} 

Kolejny przykład
Emergency Message System
Kod PHP:
function EMS_activate(){    
    require 
MYBB_ROOT.'/inc/adminfunctions_templates.php';
    
find_replace_templatesets(
        
"header"//szablon do edycji
        
'#'.preg_quote('<navigation>').'#',
        
'<navigation><br />
{$messagestyle}{$boardmessage}' 
//kod do wstawienia w szablonie
    
); 
Szablon: "header"
Kod odpowiadający za wyświetlanie:
Kod PHP:
{$messagestyle}{$boardmessage



Oczywiście nie w każdym pluginie kod będzie wyglądał tak samo, ale na pewno podobnie. Jeżeli coś nie jest do końca zrozumiałe proszę o pw a dokładnie wyjaśnię

Pozdrawiam