Zgodnie z obietnicą opiszę sposób na przerobienie dowolnego szablonu strony tak, aby ten działał pod kontrolą Joomla. Nie będzie to więc kurs html, ale łopatologiczny kurs oswajania gotowych, pociętych szablonów. Chciałem pokazać to na jakimś przykładzie, ale nie mam pod ręką wolnej instalacji Joomla, ba! nie mam żadnej - ale obejdzie się, ponieważ oswojenie zwykłej skórki html+css do Joomla jest bardzo proste. Odrobina teorii i troszkę więcej znajomości html i css powinno wystarczyć :) Zaczynamy!
Z pliku index.php naszej nowo tworzonej templatki wywalamy całą sekcję head i w jej miejsce wstawiamy:
Na screenie mojej strony zaznaczyłem pozycje:
top, left, right oraz mainbody, gdzie:
A teraz jaśniej :)
W divie (na zrzucie podpisanym
mainbody) zainkludowałem plik
mainbody.php, który odpowiada za wyświetlanie komponentów (artykuły, kontakt, katalog linków itd.), natomiast w divach
top, left i
right znalazły się pozycje modułów (
php mosLoadModules ( 'pozycja_modulu' ); ), które w PA przypisujemy poszczególnym modułom. W ten prosty sposób rozmieściłem najważniejsze elementy witryny.
Każdy z wypełnionych przeze mnie divów ma zdefiniowany swój wygląd (tło, czcionki, odstępy itp.) w pliku template_css.css i w tym przypadku nazewnictwo klas nie gra roli, bo to w końcu nasza templatka. Możemy sobie nazwać div lewej kolumny "lewy_div", prawy "prawy_div", top może się nazywać "gorne_menu", a część zarezerwowana dla komponentów "tabela_glowna".
Ale już nie możemy sobie pozwolić na dowolność w nazywaniu tytułu modułu, ponieważ tutaj musimy przestrzegać standardu Joomla. Większość (powiedzmy to tak: dodatki przestrzegające standardu Joomla) korzystają z jednego, głównego arkuszu styli – pliku template_css.css (choć bardziej rozbudowane komponenty siłą rzeczy posiadają własne css-y). Z tego też powodu z góry określono nazewnictwo konkretnych klas: modułów, dat publikacji i edycji, tytułów artykułów i komponentów, linków nawigacji, formularzy itp.
Jeśli więc w szablonie, który przerabiamy, tytuł wpisu w pliku css nazwany jest "tytul_wpisu", musimy go zmienić na contentheading, data wpisu musi nazywać się "createdate" itd.
Teraz może wymienię najważniejsze klasy (resztę, czyli te rzadziej używane, można w razie potrzeby znaleźć zaglądając do źródła i dopisać):
contentheading – tytuł artykułu/materiału statycznego
componentheading – nazwa komponentu
pagenav – przyciski nawigacji
small – mała czcionka, używana często w podpisach autorów komponentu na dole
button – wygląd przycisku m.in. pod formularzem kontaktowym, w księdze gości, logowaniem
inputbox – wygląd formularza
readon – link „czytaj całość”
createdate – data utworzenia
modifydate – data modyfikacji
sectiontableentry1 i
sectiontableentry2 – te dwa pola występują z reguły razem, np. w księdze gości na przemian co drugi wpis.
Jeśli dla odpowiednio uzyjecie w/w nazw, wasza nowa templatka nie powinna Was przestraszyć :) Tych wspólnych klas jest dużo więcej, ale w/w to podstawa ładu i składu.
Strukturę katalogów/plików templatki Joomla znamy :) Ale tak dla przypomnienia:
katalog
nazwa_templatki powinien zawierać:
- folder o nazwie
css a w nim plik
template_css.css
- folder
images z obrazkami
- plik
index.php
- plik
template_thumbnail.png – opcjonalnie, jesli chcemy w panelu widzieć miniaturkę templatki
- plik
templateDetails.xml – plik ten pełni dwie role: dostarcza informacji o templatce w panelu (pierwsza czesc pliku) oraz udziela instrukcji instalatorowi odnośnie zawartości katalogu templatki (druga część pliku). Jeśli chcemy instalować templatkę przez panel administracyjny, nie możemy sobie pozwolić na żadne błędy w tym pliku. Poniżej wzór prawidłowo napisanego pliku templateDetails.xml:
dla przykładu:
Lista plików nie jest wymagana, jeśli rozpakowany katalog templatki wrzucamy na serwer przez ftp.
Folder z plikami templatki pakujemy w .zip i jest on gotowy do instalacji przez panel administracyjny. W tym wpisie to wszystko. Starałem się pisać zwięźle, w razie wątpliwości pytajcie w komentarzach.
Przy okazji wszystkim zainteresowanym gorąco polecam książkę "
Joomla! Budowa i modyfikacja szablonów" autorstwa Pawła Frankowskiego. Paweł, to prywatnie mój kolega, z którym wspólnie napisaliśmy dzieło "
Joomla! Podręcznik administratora systemu" (wyd. Helion).
Jak będziesz pisał o "głębszej ingerencji" w wygląd joomla miałbym prośbę, abyś wspomniał o następujących zagadnieniach:
- dodawanie kolumny, do templatki 2 kolumnowej
- dodawanie module hilite
- tworzenie menu 3 poziomowego poziomego (top)
- tworzenie jakiś fajnych butoników i wstawianie ich
- tworzenie wypełnień graficznych pól np. search
Wielkie dzięki za tak zajmujący wpis i serdeczne pozdro.
Odnosnie Twoich próśb:
1) rozumiem, że chodzi Ci o rozbudowanie templatki o dodatkową kolumnę, której w tej chwili w ogóle nie ma? Jeśli tak, to html+css się kłania + to, co oppisałem w tym wpisie ;)
2) albo nie kojarze, albo pierwszy raz słyszę o tym (można jaśniej?:P)
3) takie coś, jak na portalach, gdzie po najechaniu np. na "Aktualności" pojawiają się aktualności? Nie wiem, czy do tego nie ma dotowego modułu wykorzystującego pozycje "submenu"
4) to raczej pod grafikę podbiega :) Zależy gdzie te buttoniki, bo można róznie
5) w klasie css danego pola zamiast background-color: #XXXXXX; umieszczasz obrazek:
background: url(../images/nazwa_pliku_tła.jpg); możesz dodac repeat-x (powtarzanie w poziomie, repeat-y powtarzanie obrazka w pionie lub no-repeat bo obrazek się nie powielał ;)
advert1. I teraz chodzi mi o ustalenie dodatkowych klas tylko dla tego modułu, żeby był wyróżniony graficznie.
ad3) chodzi mi o takie menu jak macie na wudeka.net.Najeżdżam np. na skład->Szuman->i tutaj jeszcze jakieś rozwinięcie po Szuman np. bboing, rap. Chciałbym mieć tylko to menu
pod nagłówkiem, ale potrzebuję trzech poziomów np. Czytelnia>Polecamy>Film :)
Pozdro
1) Jakie Twoim zdaniem są wady joomla?
2) Jak na wudeka ustawiłeś menu, żeby było tylko to pod nagłówkiem (poziome)?
Pozdrawiam
Szuman wciąż mam prośbę, o napisanie dokładnie jak np. w coreldraw x3 zrobić własny szablon pod joomla i żeby templatka dostosowywała się do rozdzielczości ustawionej na komputerze.
Pozdrawiam
- standardowe linki
- linki w postaci /ID_sekcji/ID_kat/ID_artykulu/
- /komponent_lub_sekcja/ID_tresci-Pelny-tytul_artykulu.html
SEF to moim zdaniem jedyna bolaczka Joomla, choc z drugiej strony duzym plusem jest to, ze Joomla nie potrzebuje mod_rewrite, by zamieniac linki na przyjazne wyszukiwarkom :)
Nic wiecej do glowy mi nie przychodzi ;)
To menu na wudeka.net to modul rozwijanego menu JA Transmenu 2.0 :) U mnie to wyglada tak:
- modul wyswietlajacy główne menu (mainmenu) jest wyłączony (nieopublikowany)
- w menu topmenu ustawilem wszystkie pozycje widoczne na stronie, a modul wyswietlający to menu gorne jest rowniez wyłączony (nieopublikowany)
- JA_transmenu korzysta z pozycji menu "topmenu" i jego pozycja jest ustawiona User3 (bo ta pozycja znajduje sie w belce pod topem). Jesli chodzi o wygląd, to do pliku css tego modulu skopiowalem zawartosc klasy menu z pliku template_css.css zeby wygladalo, jak trzeba :) Oczywiscie transmenu nie jest wymagane, bo moze to byc modul mod_mainmeu, ktory w ustawienia ma "Styl: poziome"
a na twoje pytanie nie jestem w stanie odpowiedziec, bo nie uzywam tego programum, poza tym to temat grafiki www, ktory w ostatnim etapie podchodzi pod templatki Joomla :)
Poczytaj tutoriale/fora dyskusyjne omawiajace tworzenie szablonow stron w tym programie. Gdy juz bedziesz mial gotowy, zwykly szablon, wtedy pomoze ci mój wpis na temat dostosowywania zwykłych szablonów do Joomla ;)
Pozdrawiam
ad3) użyj modułu JA_Transmenu (Joomla.pl - Pobierz - Moduły - druga podstrona :) )
komponentów, przykładowe (moje pierwsze wpisy) na konto na serwerze? Krótko mówiąc czy da się jakoś przenieść wszystko, tak by tam znowu nie zaczynać od zera?
Jesli chodzi o przeniesienie swojego lokalnego serwisu na zewnetrzny serwer, to nic trudnego: trzy rzeczy do zrobienia przed toba:
1) swoja baze danych (najlepiej przez phpMyAdmina) zgraj sobie uzywajac opcji "Export". W panelu serwera utworz nowa, pusta baze i pozniej w phpMyAdminie uzyj opcji "Import" i wgraj lokalną bazę: pusta baza ładnie się wypełni :)
2) przenies wszystkie pliki
3) wyedytuj plik configuration.php i w nim popraw zmienne dotyczace ścieżek, domeny i danych do bazy. Bedzie działać (i nie zapomnij o CHMOD-ach)
Standardowo, pytania na dziś (he,he)
1) Zmartwiłeś mnie trochę tym, że joomla nie nadaje się na duży
portal, bo taki właśnie zamierzałem stworzyc:(
2) Szuman jak w przybliżeniu określasz limit transferu jakiego
potrzebujesz na stronę?
3) Wybrałeś już jakiś dodatek na serwis społ.?
4) Znasz jakiś plugin do edytorów kodu, który widziałby w bibliotece klasy charakterystyczne dla joomla?
Pozdro
sporo kodu przed , bo "hedera" to faktycznie ma rozbudowanego. Znalazłem
na joomla.pl tutorial, w którym header jakoś jest przesuwany. Robiłeś coś kiedyś na podstawie tego tutka?
2)Odnośnie tego co mnie drażni w joomla: wyszukiwarka jest za wrażliwa na błędy np. wpiszę AcoComent zamiast AkoComment i już niczego nie znajdzie. Trochę przykre to jest, że nie ma świetnej galerii, dobrego modułu do recenzji płyt, słabo jest rozwiązana stopka.
choroby małolatów co dali się zmanipulować zręcznym marketingowcom.Ale wpisów było...od groma hehe. Ja myślałem, że ten wokalista, to laska, poza tym jak facet może malować oczy hehee. A co do rapu to sam pisałem.
2)Kupuję na zaś ;) Nie ma sensu liczyć, bo nigdy dokładnie nie wyliczysz, najwyżesz oszacować możesz: pomnóż wagę strony (dokument+pliki graficzne) przez ilość odsłon. Zużycia transferu dla downloadu nigdy nie oszacujesz, bo czasem w jednym dniu może jeden plik mieć tyle ściągnięć, ile w ciagu całego miesiąca (np. ktoś roześle link znajomym, znajomi znajomym itp)
3)jeszcze nie, bo dodatków będzie wiele i chcę je ze sobą fajnie zgrać :)
4)jest wtyczka do programu NVU, ale nie wiem jak ona działa (pewnie sama nazywa klasy, kiedy ty tworzysz poszczególne elementy strony)
2)bo to nie Google, żeby się domyślać ;) Szukajka szuka w bazie i gdy nie znajdzie danego ciągu znaków, to nic nie zwróci
Właściwie to szukałem gotowych, prostych templatek, ale w przystępny sposób wytłumaczyłeś budowę tychże, dlatego chyba zrobię sobie własną :-) Mam nadzieję, że się uda, bo po tym opisie wydaje się to banalnie proste :-)
Dziękuję i pozdrawiam
Paweł
Pozdrawiam, Waldek
Pozdrawiam
w jaki sposob zrobic, aby na poczatku kazdego tytułu była niewielka ikonka? Cos w rodzaju arrow
1) w css w klasie contentheading ustawic swoja ikone jako tło z atrybutem no-repeat i odpowiednią wartość dla padding-left
2) w components/com_content w pliku content.html.php mozesz odszukac (gdzies w polowie) fragment kodu odpowiedzialny za wyświetlanie newsow i przed tytułem wstawic ikone jako zwykły obrazek: img src...
czekamy na wiecej ... :)
http://www.iv.pl/view/38747.html
http://www.pomoc.joomla.pl/content/view/361/30/
Wszelkie niezbędne definicje znajdują się w pliku includes/frontend.php, który jest włączany automatycznie. Funkcja mosShowHead generuje automatycznie metadane, dotyczące autora, tytułu, słów kluczowych, opisu, generatora oraz dostępności dla robotów, na podstawie informacji wprowadzonych za pomocą panelu administracyjnego. Ręcznie należy wpisać przede wszystkim znacznik meta dotyczący kodowania znaków. Ścieżki do templatki też nie trzeba specjalnie podawać. Wystarczy wrzucić ją do odpowiedniego folderu i ustawić jako domyślną w panelu administracyjnym.
Poziome menu w CSS zawsze wyśrodkowane
Choć gdybym opisał to bardziej szczegółowo i w sposób bardziej zaawansowany, to ten wpis faktycznie zdezaktualizowałby się, ale tu jest z grubsza i wystarczy ruszyć nieco główką (znam takich, którzy na bazie tego wpisu kodowali szablon do 1.5).
Trochę jak kucharz, który nie próbuje gotowanej potrawy...
Jak robisz herbatę, to za każdym razem słodzisz po troszku i kosztujesz, czy już dobre?
I am worrying to pique a restore to health as this ringing in my ears. I identify that this is a medical requirement but, this is getting gone from of control. I know that I should see a doctor but I straight cannot give it. I call for the ringing in my ears to depot already and destitution some advice from those on the forum here that can help. Do you know how to get this ringing to stop?