PDA

Zobacz pełną wersję : Dodanie css do modulu.



pumanitro
21-01-2015, 21:09
Witam !

Chciałbym zmienić tło mojego modułu na zielone, niestety nie wiem jak to zrobić.
Zależy mi również by zrobić to z poziomu podstawowego widoku mojego modułu.

Próbowałem tak :
8051

Ale otrzymuję jakiś strasznie dziwaczny efekt :
8052

Wszystkie znaczniki a otrzymują zielone tło oczywiście tylko nie otrzymuje tego mój moduł ...
W chromie wygląda to tak :
http://screenshotuploader.com/i/1501/l388o.png (zdjęcie za duże więc dałem link)

A chcę by mój komponent był zielony :(
8053

Bardzo zależy mi na zmianie koloru z kodu w pliku "default.php" ze względu na to iż chcę edytować styl tego modułu w zależności od wartości w bazie danych .

Piszę na tym forum ponieważ szukam odpowiedzi cały dzień i jeszcze jej nie znalazłem.
Z góry dziękuję za pomoc.

zwiastun
21-01-2015, 21:19
Przeczytałem razy kilka Twój post i nie rozumiem zbytnio, o co Ci chodzi.
Kod widoku żadnego modułu (w pliku default.php) nie zawiera określenia koloru tła (a przynajmniej nie powinien zawierać). Może zawierać co najwyżej jakąś definicję klasy CSS dla ramki modułu.
Jeśli chcesz uzyskać zielony kolor dla znacznika a, to w Twoim przypadku trzeba prawdopodobnie w kodzie CSS wpisać regułę dla .ja-box-ct a h3 {}. Jeśli to ma być kolor tła (a nie kolor tekstu), to trzeba go zdefiniować prawdopodobnie dla .ja-box-ct, a nie dla a.

pumanitro
21-01-2015, 21:22
Właśnie chciałbym zmienić background modułu na zielony. Tylko zależy mi by dokonać tej zmiany w pliku default.PHP.

zwiastun
21-01-2015, 21:26
Tylko zależy mi by dokonać tej zmiany w pliku default.PHP
A po kie licho? Od kiedy wymyślono CSS wygląd separuje się od warstwy logicznej i treści. I po to właśnie CSS wymyślono.
Dopisz sobie w <div class=".ja-box-ct clearfix" style="background: green"> i pewnie zadziała. Tylko, jak powiadam ewidentny dowód nieprofesonalizmu.

pumanitro
21-01-2015, 21:38
8054
Po spróbowaniu tego co powiedziałeś wyszło mi coś takiego :
8055
A chcę by był cały zielony .

Czytałem, że trzeba pokombinować coś z tym :

$document = JFactory::getDocument();



$module = JModuleHelper::getModule( 'goto' );
$style = 'a {'
. 'color: black;'
. 'background-color: green;'
. '}';
$document->addStyleDeclaration($style);

Ale próbowałem i nic mi to nie dało. :(

A chcę to zmienić w pliku widoku ze względu na to, że potem będę uzależniał wygląd komponentu od bazy danych.
Np. Gdy Kowalski wstawi 30 postów moduł ten zmieni kolor na czerwony w innym razie wciąż będzie zielony.

zwiastun
21-01-2015, 21:39
przenieś deklarację stylu do diva wyżej.

PS Po raz kolejny przywołujesz jakiś kod, który miałby zmieniać tło odnośnika a nie całego modułu! Naprawdę wiesz, co chcesz zrobić?

pumanitro
21-01-2015, 21:50
No i o to mi chodzi :D

Że z tego pliku nie wiem jak zmienić styl css tego diva.

Bo ten div idzie z templatki .Mogę zmienić tam by tło było zielone, ale wtedy każdy z modułów bd takiego kolory. A chcę by tylko ten był zielony.
Z kolei można to jeszcze zrobić na "Przyrostekach klas CSS modułu" , ale wtedy nie będę mógł uzależnić tego koloru od stanu rzeczy w bazie danych.

Więc muszę w moim pliku default.php zmienić w jakiś sposób kolor tego "diva z góry".
Strzelam, że trzeba użyć jakiś funkcji, których oczywiście nie znam :(

Tak dla rozjaśnienia dodam jeszcze strukturę mojego modułu :

mod_goto ->
.......................-index.php
.......................-mod_goto.php
.......................-mod_goto.xml
.......................-tmpl (folder) ->
..............................................-default.php -------------------Plik, którego kod pokazywałem - wygląd modułu----------------------
..............................................-index.php

zwiastun
21-01-2015, 22:17
Stwórz sobie alternatywny układ modułu i możesz sobie wkładać do jego kodu, co zechcesz.

pumanitro
21-01-2015, 23:07
Użyłem alternatywnego układu modułu, ale wciąż nie wiem jak odwołać się do css tego div'a odpowiedzialnego za kolor modułu :(

Nie wiem jak napisać by zmienić kolor tego diva, po prostu nie wiem.
Nie ma on żadnego id, żeby odwołać się do niego poprzez js.
Pewnie jest jakaś funkcja dzięki, której mógłbym zmienić style tego, ale jej nie znam :(

- - - Updated - - -

No chyba, że można by zmienić Przyrostek klas CSS modułu jakoś z kodu np. dodać nowy przyrostek bądź usunąć stary.

zwiastun
22-01-2015, 00:53
Teraz to zupełnie nie rozumiem, o co pytasz. Bo jeśli pytasz, jakiego użyć kodu php, który Ci zrobi to, czego chcesz, to daj ogłoszenie w dziale zleceń.
Jeśli pytasz o to, jak dodać w swoim module (bo rozumiem, że to Twój własny moduł) opcję konfiguracyjną - nadanie modułowi niepowtarzalnego ID, to przecież nie jest to jakiś wielki problem dla kogoś, kto napisał moduł. Nawet ja to potrafię zrobić, choć programistą nie jestem.