Webboard

Pełna wersja: Jak utworzyć nowy szablon i odnośnik do niego
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
wersja skryptu MyBB: 1.6.9
adres forum: insidery.cba.pl
na czym polega problem (screen, opis, komunikaty, nazwa stylu/theme/szablonu):

Chcę utworzyć nowy szablon w "default templates" o nazwie na przykład "reklama", w którym dodam sobie materiały reklamowe. Tworzy on się w "niezgupowane szablony". No i to niby OK.

I teraz chcę aby z "header" w odpowiednim miejscu odnosił się do szablonu "reklama".
Coś mi nie wychodzi.

W header dodałem
Kod:
{$reklama}
i nie idzie.

Jak dodam bezpośrednio to co jest w "reklama" do "header", dokładnie w tym samym miejscu, to jest OK.
Ale tak nie chce, bo index staje się nie czytelny. Chciałbym porobić sobie takie podprogramy, mówiąc starym językiem programisty (nawet nie wiem czy teraz używa się nazwy podprogramy :D ).

Co robię źle?
Coś, gdzieś trzeba jeszcze dodać?

Nie bardzo kumam, bo np jest szablon footer i do niego jest odnośnik {$footer} i wszystko działa. To dlaczego nie działa to, co ja robię?
Aby dodać sobie taką zmienną musisz zrobić taki (nie wiem jak to nazwać) szkielet z danymi do tego szablonu. Weźmy przykład pluginu, który pod zmienną $dwa trzyma cyfrę 2. Dodając do szablonu {$dwa} wyświetli się nam liczba. Nie możesz dodać o tak sobie jakiejś zmiennej i liczyć, że zadziała w szablonie. Tworząc nową podstronę także możesz zrobić to samo co w pluginach.
A możesz podać przykład takiego szkieletu i gdzie to zapisać, pod jaką nazwą?
Dajmy na to kod w tym szablonie to:
Kod:
<img src="link do obrazka" alt="Obrazek" />
Takie kombinowanie z pluginami nie ma sensu, aby zmniejszyć ilość kodu w poszczególnym szablonie.
Wystarczy porobić w tym szablonie spacje/wcięcia/pisać w nowych liniach. Dobrze ułożysz kod i nie będziesz miał problemu z edycją.
np.
Kod:
<div id="tak">
    <div class="nie">
        Jakiś tekst
    </div>
</div>
Hm... No dobra, to w takim razie funkcja Nowy szablon jest bezużyteczna. Bez sensu.
Nie jest ;)
Aby użyć szablonu jako zmienną, musisz dodać go do listy szablonów w global.php
To już wyższa szkoła jazdy, bo tego zrobić to już nie umiem.
Otwórz global.php, znajdź linijkę:
Kod PHP:
$templates->cache($db->escape_string($templatelist)); 

Nad nią masz spis szablonów, teraz dopisz twój szablon do linijki:
Cytat:$templatelist .= ",global_boardclosed_warning,global_bannedwarning,error_inline,error_nopermission_loggedin,error_nopermission";


W tym wypadku wyglądałoby to tak:
Cytat:$templatelist .= ",global_boardclosed_warning,global_bannedwarning,error_inline,error_nopermission_loggedin,error_nopermission,reklama";



Potem znajdź:
Kod PHP:
eval("\$header = \"".$templates->get("header")."\";"); 

i dodaj poniżej linijkę:
Kod PHP:
eval("\$reklama = \"".$templates->get("reklama")."\";"); 
Z tego pierwszego to mam tylko takie coś:
Kod:
{
    $templatelist .= ',';
}
$templatelist .= "css,headerinclude,header,footer,gobutton,htmldoctype,header_welcomeblock_member,header_welcomeblock_guest,header_welcomeblock_member_admin,global_pm_alert,global_unreadreports,";
$templatelist .= ",global_pending_joinrequests,nav,nav_sep,nav_bit,nav_sep_active,nav_bit_active,footer_languageselect,header_welcomeblock_member_moderator,redirect,error";
$templates->cache($db->escape_string($templatelist));
Jak tutaj dodam to reklama, potem całą resztą jak pisałeś i nie działa. Dam chyba sobie z tym spokój.
Możliwe, ja sprawdzałem global.php w 1.7. Analogicznie, szablon reklama powinien być po error, a potem zmienna tam, gdzie podałem. Jak odpalę Windowsa, to dodatkowo zobaczę, jak to mam na swoim forum, bo coś takiego kiedyś robiłem i jeszcze dam Ci znać.
Jak możesz to sprawdź dokładnie, przyznam, że trochę mi zależy. Lubię porządek a dzięki temu parę rzeczy bym sobie uporządkował w szablonach. Nie wiem czy to ma znaczenie, ale ten stworzony przeze mnie szablon korzystałby również z CSS. Chyba nie ma znaczenia, ale wolałem na wszelki wypadek dopisać Ci to.
Kurczę... Kombinowałem, kombinowałem i w żaden sposób to nie chce działać. Chyba coś sobie ubzdurałem :(

Jedyny sposób, jaki znalazłem to ten: http://community.mybb.com/thread-119978-...#pid866671
OK. Przestudiuję ten link.
Jednak miałem rację, że ta funkcja dodawania szablonów jest bezużyteczna :D

Może w następnych wersjach MyBB poprawią funkcjonalność niektórych rzeczy.
Nie do końca jest bezużyteczna. Przydaje się np. W przypadku pluginów, które tworzą sobie szablony w szablonach globalnych. Dzięki temu można dla danego plugina zrobić szablon pod konkretny styl ;)
No tak w przypadku pluginów OK. Ale chodzi o funkcjonalność w sposób, o którym pisałem.
Potem przejrzę link, który dałeś i jeśli coś wykombinuję to napiszę tutaj, jeśli nie, to nie.