Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Jak utworzyć nowy szablon i odnośnik do niego

Założony przez  SLAVOO.

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
{$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ę?
Jeśli Ci pomogłem naciśnij guzik POMÓGŁ lub dodaj PUNKT REPUTACJI
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:
<img src="link do obrazka" alt="Obrazek" />
Jeśli Ci pomogłem naciśnij guzik POMÓGŁ lub dodaj PUNKT REPUTACJI
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.
<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.
Jeśli Ci pomogłem naciśnij guzik POMÓGŁ lub dodaj PUNKT REPUTACJI
Nie jest ;)
Aby użyć szablonu jako zmienną, musisz dodać go do listy szablonów w global.php
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
To już wyższa szkoła jazdy, bo tego zrobić to już nie umiem.
Jeśli Ci pomogłem naciśnij guzik POMÓGŁ lub dodaj PUNKT REPUTACJI
Otwórz global.php, znajdź linijkę:
$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ź:
eval("\$header = \"".$templates->get("header")."\";"); 

i dodaj poniżej linijkę:
eval("\$reklama = \"".$templates->get("reklama")."\";"); 
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
Z tego pierwszego to mam tylko takie coś:
{
    $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.
Jeśli Ci pomogłem naciśnij guzik POMÓGŁ lub dodaj PUNKT REPUTACJI
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ć.
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
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.
Jeśli Ci pomogłem naciśnij guzik POMÓGŁ lub dodaj PUNKT REPUTACJI
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
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
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.
Jeśli Ci pomogłem naciśnij guzik POMÓGŁ lub dodaj PUNKT REPUTACJI
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 ;)
:: Akcja DZIĘKUJĘ ZA POMOC ::
Pomocy udzielam jedynie na forum. Wszystkie rzeczy wykraczające poza tą dziedzinę wykonuję odpłatnie.
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.
Jeśli Ci pomogłem naciśnij guzik POMÓGŁ lub dodaj PUNKT REPUTACJI



Użytkownicy przeglądający ten wątek:

1 gości