Jump to content


Photo
* * * * * 1 votes

Актуальная тема assets jbzoo css и less


Best Answer SmetDenis , 27 August 2015 - 09:25

Стили можно разделить на 4 группы

  • Панель управления (подключаются всегда всей пачкой для ПУ)
  • Фреймворк (UIkit, BS, итд... тут все очевидно)
  • Общие стили, виджеты, корзина
  • Стили шаблона

Полагаю вопрос возникает по последним 2м пунктам.

Все общие стили находятся тут, подключаются по мере необходимости.
media\zoo\applications\jbuniversal\assets\less

Внутри можно найти папки

  • admin - стили панель управления
  • cart - все для корзины, выделено отдельно т.к это довольно большой пласт стилей.
  • general - самые-самые глобальные стили, вроде простейших колонок и clearfix
  • media - стили для мобильной версии
  • misc - коллекция примесей
  • widget - стили для JS-виджетов.

Less-файлы в корне являются чем то вроде загрузщиков (точкой входа), которые импортируют файлы из папок.

 

Соответственно, если мы хотим переопределить стили для jbcolor (виджет переключателя цветов), то идем в папку widget. находим файл colors.less

Чтобы не менять файл ядра, копируем его в наш текущий шаблон. Он подключится сам.

media\zoo\applications\jbuniversal\templates\<ШАБЛОН>\assets\less\widget\colors.less

 

Так же переопределение работает почти для всех общих стилей (за исключением самых-самых системных...)

 

Если стили относятся к шаблону модуля, то скорее всего файл лежит тут

Например для модуля формы фильтра все лежит тут modules\mod_jbzoo_search\assets\less\filter.less

Тут для простоты свои стили лучше писать в отдельный файл, так же как называется шаблон

efy5_200x0.png

 

 

Если включить режим отладки, убрать сжатие и объединение (т.е перейти в режим разработки), то по названию файла и классам легко понять что происходит, где искать...

 

Название классов у нас формируется примерно следующим образом

.jbzoo .<ИМЯ БЛОКА>
.jbzoo .<ИМЯ БЛОКА>-<ИМЯ ВЛОЖЕННОГО КЛАССА>
.jbzoo .<ИМЯ БЛОКА>-<ИМЯ ВЛОЖЕННОГО КЛАССА> div:hover 

 

jbzoo - это обязательное пространство имен.

В идеале специфичность должна быть не более 2х классов + тег или псевдокласс.

 

Поэтому если не получается переопределить, то можно добавить специфичности классом или тегом. Тут уже по обстоятельствам.

Go to the full post


61 replies to this topic

#21 isay777

isay777
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 113.4
  • posts: 1878
  • topics: 232

Posted 04 October 2015 - 17:39

Чё там, как?  ;)

 

Если найдётся минутка подскажите пожалуйста. 

 

isay убери пожалуйста метку, что вопрос решен.

 

Поясни, что значит переопределить в твоем понимании? 

Хочешь свой? Либо допиши свои, либо измени существующие. Или ты хочешь какой-то свой файл добавить? 

Или что ?


  • 0
ХОСТИНГ для сайтов jbzoo (все попугаи)

#22 andrey.koch

andrey.koch
  • JBZoo User (rus)
  • User rate: 16.4
  • posts: 444
  • topics: 86

Posted 04 October 2015 - 17:49

Да нет, не совсем, я подумал, может можно по аналогии с шаблонами переопределять файлы стилей?

 

Ну чтобы файл ядра не трогать, а написать свой и положить куда-нибудь для переопределения.

 

Такая возможность есть?

 

Или же нужно обязательно другой шаблон создавать и подключать для него свои стили?


  • 0

#23 andrey.koch

andrey.koch
  • JBZoo User (rus)
  • User rate: 16.4
  • posts: 444
  • topics: 86

Posted 04 October 2015 - 19:03

и подключать для него свои стили

И как это правильно сделать? Допустим, на примере mod_jbzoo_search. 

 

Чтобы старые стили не подключались, а подключались только новые.


Edited by andrey.koch, 04 October 2015 - 19:04.

  • 0

#24 isay777

isay777
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 113.4
  • posts: 1878
  • topics: 232

Posted 04 October 2015 - 19:37

Ну всё зависит от задач. 

А так во всех модулях есть helper.php 

открываем его и видим к примеру 

     parent::_loadAssets();

        $this->_jbassets->js('mod_jbzoo_search:assets/js/filter.js');

        $this->_jbassets->less('mod_jbzoo_search:assets/less/filter.less');
        $this->_jbassets->less('mod_jbzoo_search:assets/less/filter-' . $this->getItemLayout() . '.less');

Либо меняем на свой less, либо дописываем свой по аналогии. 

 

Но проще взять удалить все стили внутри filter.less (я бы не советовал) и переписать на свои. Либо просто написать свои - но это уже ИМХО. Просто я так делаю иногда. 


Edited by isay777, 04 October 2015 - 19:38.

  • 2
ХОСТИНГ для сайтов jbzoo (все попугаи)

#25 andrey.koch

andrey.koch
  • JBZoo User (rus)
  • User rate: 16.4
  • posts: 444
  • topics: 86

Posted 04 October 2015 - 19:39

Менять хелпер?

 

А что будет после обновления?

 

 

 

Соответственно, если мы хотим переопределить стили для jbcolor (виджет переключателя цветов), то идем в папку widget. находим файл colors.less

Чтобы не менять файл ядра, копируем его в наш текущий шаблон. Он подключится сам.

 

 

Можно ли вот так же сделать для модуля?


Edited by andrey.koch, 04 October 2015 - 19:41.

  • 0

#26 isay777

isay777
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 113.4
  • posts: 1878
  • topics: 232

Posted 04 October 2015 - 19:41

 

Можно ли вот так же сделать для модуля?

 

Нет. Вы путаете модуль и jbzoo. 

Структура jbzoo позволяет шаблонизировать всё что угодно и прописывать свои less в папке шаблона. 

У модуля нет шаблонов - оно такое не умеет. 

 

Уникализировать модуль можно добавив ему свой суфикс и прописать например все стили для фильтра у себя в своем css типа так 

 

.moi-modul .jbzoo-search {} 

и т.д. 


Edited by isay777, 04 October 2015 - 19:43.

  • 1
ХОСТИНГ для сайтов jbzoo (все попугаи)

#27 andrey.koch

andrey.koch
  • JBZoo User (rus)
  • User rate: 16.4
  • posts: 444
  • topics: 86

Posted 04 October 2015 - 19:44

Тогда это печальненько...  :(

 

После обновления каждый раз править файлы модуля. 

 

Только так можно?


  • 0

#28 isay777

isay777
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 113.4
  • posts: 1878
  • topics: 232

Posted 04 October 2015 - 19:44

PS Понимаешь о чем я?


Тогда это печальненько...  :(

 

После обновления каждый раз править файлы модуля. 

 

Только так можно?

 

Напиши свои стили в СВОЁМ css. 


  • 1
ХОСТИНГ для сайтов jbzoo (все попугаи)

#29 andrey.koch

andrey.koch
  • JBZoo User (rus)
  • User rate: 16.4
  • posts: 444
  • topics: 86

Posted 04 October 2015 - 19:48

Биться CSS (muscle)  против CSS  (muscle) и те, и другие будут подключаться.

 

Хотелось бы иметь возможность как-то поинтересней обойти эту ситуацию.

 

Например возможность выбора файла стиля или его отключение, или переопределение.


  • 0

#30 isay777

isay777
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 113.4
  • posts: 1878
  • topics: 232

Posted 04 October 2015 - 19:52

Биться CSS (muscle)  против CSS  (muscle) и те, и другие будут подключаться.

 

Хотелось бы иметь возможность как-то поинтересней обойти эту ситуацию.

 

Например возможность выбора файла стиля или его отключение, или переопределение.

 

Я тебе написал выше где он подключается. Обновление хелперов модулей проходит не часто.  

Либо помни, и копируй строку при обновлении. 

 

Еще раз повторю. Отключаешь подключение не нужного less и подключаешь свой. Всё. Что тебе еще надо то? 

Я же говорю ты путаешь возможности шаблонизации компонента zoo с МОДУЛЕМ! 

 

Есть еще простой выход. Напиши свой модуль со своим less... и всё обновления не страшны.


Edited by isay777, 04 October 2015 - 19:53.

  • 1
ХОСТИНГ для сайтов jbzoo (все попугаи)




Click to return to top of page in style!