Aktualny czas: 07.09.2010, 16:33 Witaj! (LogowanieRejestracja)


Dyskusja (1)po instalacji pluginu nic sie nie wyswietla - jak sobie z tym poradzic
po instalacji pluginu nic się nie wyświetla - jak sobie z tym poradzić

Artykuł opisuje jak poradzić sobie z tym, że plugin się nie wyświetla.


Przykład z pluginu:
1. Ads after first post autorstwa MyBBoard.de
2. Emergency Message System autorstwa nitemare
Wersja mybb: Opis dotyczy pluginów dla MyBB w wersji 1.4. Możliwe, że w 1.2 jest podobnie.

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. To czego poszukujemy to wywołanie funkcji:
Kod PHP:
find_replace_templatesets 
Funkcja ta przyjmuje 3 do 4 argumentów, nas interesują trzy pierwsze, oddzielone od siebie przecinkami:
Kod PHP:
find_replace_templatesets(
    
NAZWA_SZABLONU,
    
POSZUKIWANY_FRAGMENT_SZABLONU_KTÓRY_ZOSTANIE_ZMIENIONY,
    
KOD_KTORY_SAMI_MUSIMY_WSTAWIC_DO_SZABLONU
); 

Żeby każdy mógł lepiej zrozumieć posłużymy 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>
</table>#'
"</tbody>
</table>{\$post['adsaf']}"
); 
stosując podany wcześniej klucz:
Szablon: "postbit"
Poszukiwany kod: "</tbody> </table>"
Kod który zostaje dodany do szablonu:
Kod PHP:
{$post['adsaf']} 
UWAGA: zwróć uwagę na pominięty znak "\".
Tak więc powyższy kod dodajemy do szablonu postbit, gdzieś po znaczniku "</table>", a jeżeli jego także w szablonie nie ma, to trzeba wkleić go w dowolne miejsce i sprawdzić co się wyświetla na forum.
Jeżeli wynik nie jest taki jakiego oczekujemy, próbujemy odgadnąć właściwą lokalizację tego kodu.

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.


Możliwości
Ostatnia zmiana: 10.06.2010, 16:43
Ostatnie zmiany - Wszystkie - Kategorie

Powered by MyBB-Wiki, © 2006-2010 Dragon - Icons

Kontakt | Portal MyBB PL | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS