PDA

Zobacz pełną wersję : Edycja HTML generowanego przez Joomla



clk
09-10-2012, 10:38
Witam wszystkich!

Zaczynam zabawę z CMS Joomla i wszystko szło pięknie i ładnie, stworzyłem od podstaw własny szablon, zainstalowałem go, uruchomiłem menu, ogólnie nie napotkałem zbyt wiele problemów. Bajka.
Ale zaciąłem się na czymś takim:

Chciałem aby artykuł na stronie był wyświetlany w taki sposób (chodzi mi konkretnie o system ocen):

Od góry -

1. Tytuł
2. Data dodania
3. Artykuł
4. Ocena
5. Social buttony

Jednak standardowo Joomla wstawia diva z oceną artykułu zaraz pod tytułem (tak samo robi mi też K2). Mój problem polega na tym, że nie wiem w jaki sposób zmusić ten CMS do wstawiania tego diva POD artykułem w generowanej przez niego HTML.

Zmiana CSS nie nastręcza żadnych problemów, ale z HTML nie mogłem sobie poradzić. Pomyślałem, żeby odnaleźć plik odpowiedzialny za strukturę i przesunąć w nim konkretnego "includa" php od ocen, ale niestety nie znalazłem czegoś co by jednoznacznie wskazywało na system ocen.
Przesuwanie tych ocen przy użyciu CSS i pozycjonowania absolutnego lub fixed nie wchodzi w grę, bo przecież to by jakaś paranoja była http://forum.eduweb.pl/images/smilies/icon_e_wink.gif

A teraz na przykładzie HTML pokażę o co chodzi - tak mniej więcej wygląda generowany kod artykułu (chodzi o położenie diva - nazwijmy go - itemRating):


<div id="article">
<h2>Tytuł artykułu</h2>
<div id="itemRating">blablablabla</div>
<p>Treść artykułu</p>
</div>


A chciałbym aby wyglądał tak:



<div id="article">
<h2>Tytuł artykułu</h2>
<p>Treść artykułu</p>
</div>
<div id="itemRating">blablablabla</div>



Albo chociaż tak:



<div id="article">
<h2>Tytuł artykułu</h2>
<p>Treść artykułu</p>
<div id="itemRating">blablablabla</div>
</div>


Będę bardzo wdzięczny na za pomoc w ułożeniu tych ocen poniżej, a nie powyżej artykułu...
Pozdrawiam!

Bazyl
09-10-2012, 11:11
Witaj,

Na wiki poczytaj o nadpisywaniu szablonem i zrób widok artykułu, jak chcesz...

clk
09-10-2012, 12:21
I tak oto jednym zdaniem rozwiązuje się milion problemów początkującego!
Wielkie dzięki za pomoc! Pozdrawiam!

igrok
17-10-2012, 18:07
witam.

może jestem leniwy, może głupi ale nie umiem znaleźć odpowiedzi na moje pytanie.. może ci ktoś kto już się dobrze porusza w owym zagadnieniu albo odeśle mnie do danego artykułu w wiki albo poradnika (lub jednego i drugiego)...
mianowicie, tworze sobie szablon i nawet jakoś udało mi się w miare ostylować standardowo generowaną liste jednak przydała by się bym do ostatniej pozycji (li) mógł dodać dodatkową przez siebie stworzoną klasę... oczywiście mógłbym to na sztywno ustawiać przy danej pozycji menu jednak wolał bym (wiedza przyda się na przyszłość) nauczyć się jak zrobić by było to automatycznie generowane.. innymi słowy mam menu rozwijane pionowo składające się z n pozycji (jak wiadomo może się to zmieniać) i chciałbym by ostatnie li miało nieco inne/dodatkowe parametry...
na obecnym marnym poziomie mojej wiedzy wnoszę że trzeba by dopisać jakiś kod php w defoutowym szablonie .. taka przynajmniej jest moja teoria nie mniej jednak jestem betonem z php a i joomle dopiero zaczynam ogarniać...

clk
17-10-2012, 18:21
Też nie jestem jeszcze dobrze obcykany w tej Joomli, ani też nie robiłem tego nigdy, ale wydaje mi się, że z pomocą przyjdzie Ci opcja "Klasa CSS łącza".
Wejdź na zaplecze, kliknij wybraną pozycję menu, następnie z prawej strony jest zakładka 'Opcje pozycji menu" i tam jest pole "Klasa CSS łącza".
Daj znać czy zadziałało.

igrok
17-10-2012, 18:39
hmm o tym właśnie pisałem, tak powinno zadziałać (nie testowałem ale teoretycznie powinno zadziałać) tylko właśnie chciałbym uniknąć tego rozwiązania.. no bo np. jak ty byś chciał zainstalować owy szablon to zong, bez info dodatkowego ten element by ci nie zadziałał dla tego szukam jakiejś metody generowania automatycznego... no bo jak np ludzie do swoich szablonów wstawiają np menu z jquery czy nawet html+css ale ostylowane w innym układzie div'ow czy wykazów?...

clk
17-10-2012, 19:11
No w takim razie IMO pozostają Ci tylko layout override'y i zabawa w plikach php. W ten sposób możesz dodać cały swój własny HTML do menu, ale z tego co sam przed chwilą popatrzyłem, to w pliku modules/mod_menu/tmpl/default.php pozycje li są wstawiane z użyciem jednej pętli, czyli nie obeszłoby się bez dopisania w PHP jakiegoś warunku IF czy coś, który rozpoznawałby że wstawiany element LI jest ostatni w danym elemencie UL i następnie doklejał mu klasę. Niestety, również nie znam PHP, aby podać Ci gotowe rozwiązanie.

Pozdrawiam

igrok
17-10-2012, 19:27
hehe, właśnie też do tego etapu sam doszedłem i zaczołem płakać :) widocznie nie umiem szukać bo ani na googlu ani w wiki nie znalazłem odpowiedzi i dla tego w ramach ostatniej deski ratunku postanowiłem tu napisać.. no nic pozostaje czekać ale bardzo dziękuję za szczere chęci :D przyda się :>....

Bazyl
17-10-2012, 19:34
Witam,

Css i selektor :last-child

igrok
17-10-2012, 19:51
tak wiem jestem matołem ale nie za bardzo rozumiem.. mam to w wiki wpisać? "last-child" podejżewam że to własnie ten li o który mi chodzi no ale jak to ostylować? ul li:last-child { color: red;} (bo powiedzmy chcę by ostatnia pozycja miala kolor inny czyli np czerwony) ?

Bazyl
17-10-2012, 19:58
Googiel Ci się popsuł?

igrok
17-10-2012, 20:31
no chyba sie zepsul bo dodaniu

//
// Jednak naucz się formatować kod.
//

i chciałbym by każda ostatnia "podpozycja", w tym przypadku 1b i 2b miała np. inne tł (np czerwone jak w tym kodzie co wczesniej wkleilem)...


ps. sorki ale nie umiem na szybko sformatowac tutaj tekstu by ladnie reprezentoeal graficznie o co mi chodzi.. w skrocie ogolnie klasyczne zwykle proste menu (drop down horizontal) mi chodzi bez zadnych dodatkowych rozgalezień :)

Bazyl
17-10-2012, 20:53
Poznaj podstawy css.
Chcesz pomocy - podaj adres strony.

igrok
17-10-2012, 21:07
ehh jak widze podstawy podstawom nie równe...

adres strony podac mi trudno bo robie ja lokalnie ale moze wystarczy przykladowe menu wg ktorego sie wzorowalem:

http://www.dynamik.pl/publikacje-joomla/19-menu-rozwijane-css-joomla#pos2
i przyklad autora
http://www.dynamik.pl/images/publikacje/sample_drop_down_menu.html

ogólnie to u mnie działa, potrzebuje tylko lekkiej modyfikacji.. dzialajac na przykladzie autora, chcialbym by kazdy ostatni element podmenu ( w tym przypadku "artykul 3" i "rok 2012") mial np. inne tlo...

ps. jezeli chcialo by ci sie wgryzac w kod to na mojej bardzo starej dawno napisanej stronie ( http://istudio.securityhost.pl/istudio_1.5.0b/ ) jest taki wlasnie trik ze kazde ostatnie li jest grafika/jest tam obraz.. i teraz chcialbym podobny manewr zastosowac tylko ze nie musze tam wsadzac grafiki a wystarczy mi ze sie tlo zmieni :) nie mniej jednak to chyba dobrze obrazuje co bym chcial osiagnac :)

igrok
18-10-2012, 00:09
ps2. pobawiłem się tym childem no i nawet zadziałało ale nie do końca... urzyje przykładu menu z linka wstawionego wczesniej...

#main_nav li:last-child
{
background:#ff0000;
}

działa ale łapie wszystko "co ostatnie" czyli "kontakt" tez jest zmieniony... niestety tego juz nie umiem rozwiazać...

igrok
26-10-2012, 23:15
mam kolejne pytanie:

powoli staram sie nadpisywać szablony, wziolem się za szablon arykułu... w swoim szablonie stworzyłem katalog html\com_content\article a wnim default.php, wprowadzilem lekkie zmiany i sa widoczne na stronie... problem zaczol sie gdy default.php zmienilem nazwe na xxx.php i z poziomu zaplecza w jednym z artykulow jakie mialem wybralem sposob wyswietlania na "xxx" - zmiany zniknely... ustawienia globalne w zapleczu (zaplecze->artykulu->opcje) tez nie pomogło... i tu moje pytanie jak zrobic by wybranym artykulom nadac inny "szablon"?...