Polskie wsparcie PrestaShop

PrestaShop => Wygląd => Wątek zaczęty przez: Brombel w Lipiec 02, 2012, 10:50:58 pm

Tytuł: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 02, 2012, 10:50:58 pm
Witam wszystkich po raz pierwszy.
Mam takie pytanko.
W plikach szablonu sklepu czyli themes/nazwa_szablonu/css/modules/nazwa_modułu/nazwa_modułu.css, w tych plikach możemy zmieniać wygląd poszczególnych modułów? Dajmy na to, że nie chciał bym, nic zmieniać w pliku global.css, ale chciałbym zmienić wygląd tylko jednego modułu. To mogę właśnie tam?
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 02, 2012, 11:10:10 pm
moduly maja swoje szablony css i sa umieszczane w ogromnej wiekszosci w katalogu modulu,
czyli /modules/nazwa_modulu/***.css

firebug ci powie jaki plik
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 03, 2012, 12:33:45 am
Natomiast pliki css core prestashop, sa umieszczane tak jak pisales w katalogu templatki
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 03, 2012, 08:40:52 am
Sprawdziłem katalogi modułów modules/nazwa_modułu/ i tylko w kilku były pliki ***.css
Dajmy na to, że chcę, żeby w ciągu roku szablon zmieniał się 4 razy. Zgodnie z porami roku. Ale jeden moduł ma być wyglądem inny, nie zmieniając nic w globals.css To wtedy trzeba zmienić właśnie tam themes/nazwa_szablonu/css/modules/nazwa_modułu/nazwa_modułu.css
Bo nic mi nie mówi "css core prestashop"
Znam tylko ciotkę, ciotkę html i css oraz php. Ale nawet laik przy pomocy np. opery i dodatku dragonfly może coś tam pozmieniać w wyglądzie i nie tylko. Więc dlatego moje pytania z katalogiem themes/nazwa_szablonu/css/modules/ bym zrozumiał do czego on jest. I może innym też to się przyda.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: sower w Lipiec 03, 2012, 08:58:33 am
w teorii ma służyć do nadpisywania/definiowania  przez templetkę domyślnych styli modułów, ale aby to poprawnie  działało musi być spełnione kilka warunków. W Sumie jest to po to aby oddzielić sytle samego core sklepu od modułów oraz aby łatwiej można było personalizować wygląd modułów
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 03, 2012, 09:41:13 am
Dlaczego tylko w teorii? Sądziłem, że właśnie do tego to jest z chłopskiego punktu widzenia. Tylko, że mnie zmyliło to że zainstalowałem moduł np. wContent dodałem w templatce o takiej samej nazwie co moduł katalog i później pik.css (oczywiście dodałem w themes/nazwa_szablonu/css/modules/ )Zmieniając w pliku nazwa_modułu.css  i tak wygląd modułu nie zmieniał się. Więc dla tego rozpocząłem ten temat. Jakie trzeba spełnić warunki żeby to zadziałało?
Tytuł: Odp: moduły css
Wiadomość wysłana przez: sower w Lipiec 03, 2012, 10:07:59 am
no napisałem w teorii i , że musi być spełnionych kilka warunków?

jeżeli zmieniłeś nazwę css a ponad to masz zdefiniowany w tpl/module plik css o określonej nazwie to niestety nie spełniłeś warunków ;)....... ;D ;D
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 03, 2012, 10:25:39 am
Nie zmieniłem nazwę css. Zainstalowałem moduł ale przy instalowaniu modułu nic mi się nie zainstalowało w szablonie sklepu. Więc sam utworzyłem w szablonie a dokładnie w themes/nazwa_szablonu/css/modules/ katalog o takiej samej nazwie co moduł a następnie w tym katalogu umieściłem plik o nazwie takiej samej co moduł z końcówką .css I wpisując coś w tym pliku, powinien wygląd modułu się zmieniać, co się nie dzieje. Więc jeszcze raz mam pytanie jakie warunki muszę spełnić żeby to zadziałało.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: sower w Lipiec 03, 2012, 10:39:10 am
nie nie powinien się zmienić............ przeczytaj mój post jeszcze raz

tak mała podpowiedź .......... to co zawarte w kodzie ma pierwszeństwo przed tym co jest zawarte w globalnych ustawieniach ........ skoro masz zdefiniowany styl kodzie modułu to chyba oczywistym jest  że style będą brane z tego a nie z globalnych ustawień...... pomijam tu resztę ........ czyli zmianę nazw ;)
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 03, 2012, 11:29:45 am
Sower nie rozumiem tego co napisałeś. Jeżeli jest szablon sklepu to czy wygląd nie powinien być uzależniony od plików .css w tym szablonie a nie od .css tego modułu. Jeżeli chcę np. zmienić wielkość liter w danym szablonie i konkretnym module to powinienem chyba zajrzeć do plików themes/nazwa_szablonu/css/modules/ a nie zaglądać do modules/nazwa_modułu/
Dajmy że mam kaprys zmieniać wygląd sklepu co miesiąc i mam kilka zainstalowanych szablonów. To za każdym razem miał bym mieszać w plikach css tego modułu? To by było bez sensu tworzyć różne szablony jak i tak coś trzeba zmienić w innym katalogu niż themes.
Po za tym w modules/nazwa_modułu/ nie ma żadnego pliku z końcówką .css (w tym co zainstalowałem)
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 03, 2012, 12:28:01 pm
Dlatego ci napisalem wczesniej ze firebug ci pokaze z ktorego stylu korzysta i gdzie jest on zdefiniowany.
Style sa dziedziczone wiec trzeba czasami cofnac sie po drzewku zaleznosci.
A co do zmian okresowych wygladu.
Najlepiej utworz sobie swoj szablon styli ( jeden plik css ) ktory nadpisze juz wczesniej zdefiniowane style, i zaladuj go jako ostatni. On bedzie obowiazywal.
Sa nawet gotowe moduly w ktorych mozesz zdefiniowac kilka plikow styli i wybierac ktory z nich ma byc ladowany.
To dla ciebie najlatwiejsza droga.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 03, 2012, 01:11:34 pm
Rozumiem, że w szablonie sklepu jest podstawowy plik global.css i tam wygląd jest zapisany. To po co w takim razie katalog themes/nazwa_szablonu/css/modules/ ? Jeżeli wszystko już jest zapisane w global.css
Ja sądziłem, że tam mogę zmienić wygląd konkretnego modułu. I gdy wchodzę w podstawowy szablon presty i zaglądam w ten katalog, i zmieniam np. kolor  czcionki w danym module np. themes/prestashop/css/modules/blockcategories/blockcategories.css to zmienia się właśnie wygląd tego modułu.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 03, 2012, 02:25:32 pm
system styli w prestashop jest bardziej skomplikowany
od wersji 1.4 rozbito global.css na global.css i style modulow
nie wszystko jest zdefiniowane w global.css
lub cos jest ale zostaje nadpisane przez nastepny styl

to tak samo jak z tablicami asocjacyjnymi w php
gdzies definiujesz $tablica['color'] = 'red';
a gdzies pozniej $tablica['color'] = 'green';

i klucz color przyjmuje inna wartosc niz to bylo zdefiniowane na poczatku

dlatego, jak wczesniej ci pisalem, zrob swoj plik styli i tam zdefiniujesz swoje ustawienia ktore nadpisza ci poprzednie.

po pierwsze, nie tracisz orginalnych styli, po drugie latwiej ci bedzie w przyszlosci modyfikowac

w header.tpl templatki pod sekcja:
{if isset($css_files)}
{foreach from=$css_files key=css_uri item=media}
<link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
{/foreach}


dopisz link do swojego css no i oczywiscie zrekompiluj szablon smarty
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 03, 2012, 03:21:37 pm
Więc dajmy na to, że zrobił bym tak jak piszesz, tworząc własny plik.css. I piszesz żebym "i załaduj go jako ostatni" To znaczy gdzie bo takim orłem to ja nie jestem.

I ponawiam jednocześnie pytanie, co zrobić jeżeli zainstalowałem moduł i chciałbym żeby zmieniać wygląd modułu w pliku themes/nazwa_szablonu/css/modules/nazwa_modułu/nazwa_modułu.css ?
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 03, 2012, 03:30:40 pm
cos ty sie uczepil tego katalogu !!!
nie wazne gdzie on jest jesli nadpisujesz wartosci w swoim css

przeczytaj poprzedni post ze zrozumieniem

niech twoj fragment header.tpl wyglada tak:

.................
{if isset($css_files)}
   {foreach from=$css_files key=css_uri item=media}
   <link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
   {/foreach}
{/if}
{literal}
        <link href="/themes/prestashop/css/lato.css" rel="stylesheet" type="text/css" media="all" />
{/literal}
.................

dzieki takiemu zapisowi twoj plik css bedzie ostatni w sekcji header

do pliku lato.css przekopiuj dyrektywy css, ktore chcesz zmienic, i zmien w nich wartosci na swoje
Tytuł: Odp: moduły css
Wiadomość wysłana przez: sower w Lipiec 03, 2012, 04:41:46 pm
dobra ale po co tyle kombinacji?

wracając do początkowego pytania ............  katalogi, o których piszesz służą do nadpisania czy to tpl /modules/nazwa_modułu  czy to css /modules/nazwa_modułu i tak jak napisałem służą DO NADPISANIA........ czyli aby coś było nadpisane musi istnieć.

Jeżeli w module (nie dotyczy standardowych modułów presty) nie ma pliku css to....... należy go utworzyć (może być pusty plik) a następnie osadzić w header - najprościej w module przy użyciu public function hookHeader i albo  przez tpl albo Tools::addCSS i albo z automatu zainstalowac albo ręcznie powiesić na hooku ............. po tym można sobie do woli nadpisywać css

z automatu presta umożliwia nadpisane tylko standardowych/domyślnych modułów i aby to obejść należy zrobić to co wyżej napisałem .......... nie trzeba się bawić w modyfikację header.tpl czy martwić się który css jest pierwszy a który ostatni.......... w/w rozwiązanie jest zgodne ze standardem i tyle w temacie
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 03, 2012, 06:40:44 pm
zgodze sie z toba @sover ze jest to po fachowemu, dla tworcow templatek, dla ludzi obeznanych co i jak w prescie dziala.
Ale zeby tak zrobic to trzeba sporo czasu z presta spedzic.

Moj sposob polega na dopisaniu jednej linijki do header.tpl
a dlaczego tak?
1.na 100% wiem ze moje style beda obowiazujace
2.nie musze szukac plikow css po calej prescie i zastanawiac sie czy w dobrym miejscu
3.na goraco modyfikuje dyrektywy css w firebugu i jak pasuje, to kopiuje dyrektywe z wartosciami i wklejam do mojego css
4.taki moj css moge podpiac w kazdej chwili, kiedy chce i gdzie chce, moze to byc zalezne od pory roku, albo mam kaprys i kazda kategoria moze miec swoje style, albo jakis modul tylko style zmienia w zaleznosci od kategorii , kilka linijek kodu we FrontController i juz mam switcha
5. moge sobie nawet zrobic modul do przelaczania i podpiac moje style bez ingerencji w nie.
6. nie zmieniam orginalnych wartosci, wiec nawet upgrade mi nie grozny,

I co najwazniejsze, wszystko mam w JEDNYM pliku css

aaa zapomnialbym, przez takie rozwiazanie skrocila mi sie praca nad modyfikacja templatki co najmniej o polowe.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 03, 2012, 11:53:05 pm
Przeczytałem kilka razu to co napisaliście i wkońcu zrozumiałem do pewnego miejsca.To czy będzie jeden plik.css (themes/nazwa_szablonu/css/plik_własny.css) czy kilka w różnych modułach (themes/nazwa_szablonu/css/modules/konkretny moduł) to zależy tylko od własnego widzimisie (komu jak wygodnie) a następnie trzeba to osadzić w pliku header.tpl . Ze zrozumieniem mi to @mario wyjaśniłeś, w którym miejscu i jak. Z tym nie ma problemów. Ale "no i oczywiscie zrekompiluj szablon smarty" lub " i albo  przez tpl albo Tools::addCSS i albo z automatu zainstalowac albo ręcznie powiesić na hooku" tu mnie zatkało. Przeszukałem forum ale nic nie znalazłem. Jak mam to ugryść. Bo bez tego nadal w tym nowym_pliku.css po wpisaniu w niego zmienionych parametrów, na stronie sklepu nic się nie zmienia.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: sower w Lipiec 04, 2012, 12:07:47 am
oj to chyba źle szukałeś ;) poszukaj dobrze
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 04, 2012, 03:47:18 pm
Dodałem w pliku nazwa_modułu.php
...............................
function hookHeader()
   {
      Tools::addCSS(($this->_path).'ścieżka_gdzie znajduje_się_.css', 'all');
   }
.............................
i cała prawa kolumna zniknęła

Co dalej?
Tytuł: Odp: moduły css
Wiadomość wysłana przez: sower w Lipiec 04, 2012, 06:32:11 pm
nauka php i smarty  ;D
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 04, 2012, 07:28:41 pm
Nie prosciej by ci bylo dac link do strony i powiedziec co chcesz zmienic i gdzie?
Trzeba bylo tak zrobic od razu.
Chyba ze to wielka tajemnica. ;)
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 04, 2012, 11:12:28 pm
@sower jak by wszyscy byli geniuszami to nie potrzebne było by to forum. A tak możesz zabłysnąć swoją wiedzą. Staram uczyć się tego ale tylko dla przyjemności własnej.
@mario na pewno by było prościej dać link i żeby ktoś to za mnie zrobił. Ale co mi to da, że i tak nie będę rozumiał tego co zostało zrobione. Może nie znam html i css ale staram się tego nauczyć ale najważniejsze jest żeby to zrozumieć. Przecież mogę pozmieniać w global.css i też mi coś wyjdzie. A ja potrzebuje trochę wskazówek, żebym sam to zrobił.
Zobaczyłem że w katalogu themes/nazwa_szablonu/css jest katalog modules i można tam zmieniać wygląd podstawowych modułów i mi się to spodobało i postanowiłem że spróbuje dodać jakiś moduł i żebym też mógł tak zmieniać wygląd jak w tamtych. A tu klapa. I dlatego zacząłem ten temat.
Choć pomysł @sowera też mi się podoba, bo wszystkie własne zmiany by były w jednym pliku css.
Więc może ktoś z forumowiczów dorzuci jakieś wskazówki do tego function hookHeader?
A poza tym, dlaczego przed ksywką daje się @. Na innych forach tego nie zauważyłem.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: sower w Lipiec 04, 2012, 11:42:04 pm
zajrzałeś chociaż  do dokumentacji presty? skoro chcesz zgłębiać jej tajniki ;) - może jednak zerknij wtedy będziesz rozumiał o czym piszmy
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 05, 2012, 03:46:43 pm
A jest dokumentacja w języku polskim czy tylko to http://doc.prestashop.com?
Tytuł: Odp: moduły css
Wiadomość wysłana przez: sower w Lipiec 05, 2012, 04:34:14 pm
tylko EN
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 08, 2012, 12:47:30 pm
Nic mi nie wychodziło z tego co napisali @sower i @mario . Ani jakieś powieszenie na hooku, bo dany moduł już miałem zainstalowany. Dalej nie wiem jak to zrobić, by w danym module można było wygląd zmieniać w pliku znajdującym się w themes/nazwa_szablonu/css/modules/nazwa_modułu/nazwa_modułu.css tak jak to wymyślili twórcy presty.
Ale dobry pomysł ma @mario by wszystkie zmiany własne robić w swoim pliku css, tylko nic a nic mi z tego nie wychodziło co napisał @mario.
A teraz moja propozycja:
Dajmy na to że mamy 4 szablony na każdą porę roku (tak jak mi się wcześniej ubzdurało) i w każdym szablonie chcemy po swojemu coś zmienić. Tworzymy w każdym szablonie po jednym pliku css np. zima.css; wiosna.css; lato.css; jesien.css oczywiście w themes/nazwa_szablonu/css/ .
I teraz w pliku FrontController.php trzeba znaleźć linijkę
 …..............................................
Tools::addCSS(_THEME_CSS_DIR_.'global.css', 'all');
…...............................................

i wpisać pod nią
…..............................................
Tools::addCSS(_THEME_CSS_DIR_.'zima.css', 'all');
Tools::addCSS(_THEME_CSS_DIR_.'wiosna.css', 'all');
Tools::addCSS(_THEME_CSS_DIR_.'lato.css', 'all');
Tools::addCSS(_THEME_CSS_DIR_.'jesien.css', 'all');
….............................................
I to wszystko. I u mnie po zmianach w tych plikach dyrektyw css wszystko się zmienia w danym szablonie i pięknie śmiga.
Oczywiście pamiętajmy, żeby wszystko się od razu zmieniało, musi być zaznaczone w ustawieniach panelu głównego presty - optymalizacja – „wymuszaj kompilację” na tak i „korzystać z ceche” na nie
Co do presty to bawiłem się na 1.4.4.1
Nie wiem czy to nie ma czasami jakiś skutków ubocznych, ale na razie u siebie żadnych nie znalazłem. Oczywiście nic nie zmieniałem w pliku header.tpl
Czekam na wasze opinie.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 08, 2012, 02:44:34 pm
alez zrobiles dokladnie to co ci poradzilem
podpiales tylko w innym miejscu

wywolywanie 4 styli jest nadmiarowe, i tak tylko ostatni bedzie brany pod uwage
wiec zakomentuj te ktore sa niepotrzebne:
//Tools::addCSS(_THEME_CSS_DIR_.'zima.css', 'all');
//Tools::addCSS(_THEME_CSS_DIR_.'wiosna.css', 'all');
Tools::addCSS(_THEME_CSS_DIR_.'lato.css', 'all');
//Tools::addCSS(_THEME_CSS_DIR_.'jesien.css', 'all');

skorzysta na tym czas ladowania strony

zmieni sie pora, zamienisz komentarze

i tak dokonales zmiany
ja w header.tpl, ty we FrontController ( i tak przechodzi przez header.tpl ) efekt ten sam, no prawie
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 08, 2012, 06:03:20 pm
Oczywiście, że jest nadmiarowe, tylko chciałem pokazać innym takim jak ja, laikom, żeby to zrozumieli. Ja próbował w tym header.tpl podpiąć to i nic mi nie wychodziło a w tym FrontController od razu.
Ale jeszcze raz chcę potkreślić, że to jest genialny pomysł z tym jednym, własnym plikiem css.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 08, 2012, 08:58:44 pm
Dobra, przekonales mnie
godzinka i popelnilem modul do tego celu

http://prestashopforum.pl/index.php/topic,9073.0.html

Chcesz sie uczyc, dobrze, wiec zadanie dla ciebie
Powiedz, jakiego triku uzylem w tym module i dlaczego.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 08, 2012, 09:53:00 pm
No niezły modulik. Nawet nadpisuje to co ja zrobiłem w FrontController.php. Przy tym moduliku nic nie trzeba szukać po całej prescie tylko w tym module w katalogu css. No jestem pod wrażeniem i tylko w godzinkę? Od razu widzę gdzie moje miejsce. U podnóża Mount Everest. Jak tylko będę miał czas przyjrzę się temu.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: Brombel w Lipiec 08, 2012, 11:04:25 pm
Trochę czasu się znalazło. Wychodzi z tego, że zainstalowałeś moduł w Header of pages gdzie będzie we wszystkich szablonach i plik styleHeader.tpl dopisuje na samym końcu header i nadpisuje css. Tak to rozumuje, chociaż nie jestem pewny, bo tak jak pisałem wcześniej, tylko ciut-kę znam php i css.
Tytuł: Odp: moduły css
Wiadomość wysłana przez: mario w Lipiec 08, 2012, 11:37:23 pm
podpowiedz 1:
przestudiuj header.tpl - od niego wszystko sie zaczyna

podpowiedz 2:
dowiedz sie co to jest system hookow i jak dziala, jak inicjujemy wykonanie i jak modul odpowiada

podpowiedz 3:
dowiedz sie jak sa ladowane pliki css i js , do jakiego kontenera i czy tylko tak moga byc ladowane

Nie musisz juz odpowiadac na ten post.