css-префикс у модулей

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 19 октября 2013 в 21:44
Привет всем. Возникла необходимость добавить дополнительный css-префикс для модулей. Не спрашивайте, зачем )))

В PHP и MySQL не рублю совершенно, не мой профиль, а подсказать в данный момент некому.

Я так понимаю, что в таблицу cms_modules нужно добавить ещё один столбец, например, css_prefix_new. Затем где-то в каком-то файле/файлах бэк-энда добавить <input name="css_prefix_new"… > scratchА вот как это конкретно сделать, и где конкретно — не знаю.

Научите, плиз, кто-нибудь.

Или хорошо бы сделать плагин, который автоматом добавлял бы к модулям дополнительный css-префикс. В таком случае, озвучивайте цены и сроки.
#2 19 октября 2013 в 22:08
Никаких особых знаний не нужно, тем более php/sql
Каждый модуль идет с такими вот классами (они отвечают за оформление)
class="module"
class="moduletitle"


При добавлении префикса к примеру "NEW" этот модуль будет идти с такими классами
class="NEWmodule"
class="NEWmoduletitle"


И в файле стилей /templates/_default_/css/styles.css нужно написать эти стили к примеру
  1. .NEWmodule {width:100px;}
  2. .NEWmoduletitle (font-size:20px;color:red;)
Тоесть через админку в модуле префикс добавляете и редактируете файл стилей (добавляете новое оформление которое будет доступно по этому префиксу и для всех остальных модулей).
Больше никуда лезть не нужно!

Или хорошо бы сделать плагин, который автоматом добавлял бы к модулям дополнительный css-префикс.

Tokarev
Это уже сделано.
#3 19 октября 2013 в 22:11
PolarOne, неееет, я наверно неправильно объяснил))) в настройках любого модуля есть css_prefix, мне нужно, чтобы из настроек можно было добавить не один префикс, а два, то есть, добавить для настроек ещё одно поле, чтобы можно было в module.tpl добавить не только {$mod.css_prefix} но и {$mod.css_prefix_new}
#4 19 октября 2013 в 22:14
поясню подробнее, нужно, чтобы module.tpl выглядел так:

  1.  
  2. <div class="{$mod.css_prefix}module">
  3. {if $mod.showtitle neq 0}
  4. <div class="{$mod.css_prefix_new}moduletitle"> <!-- вот сюда нужен префикс -->
  5. {$mod.title}
  6. {if $cfglink}
  7. <span class="fast_cfg_link">
  8. <a href="javascript:moduleConfig({$mod.id})" title="Настроить модуль">
  9. <img src="/templates/{template}/images/icons/settings.png"/>
  10. </a>
  11. </span>
  12. {/if}
  13. </div>
  14. {/if}
  15. <div class="{$mod.css_prefix}modulebody">{$mod.body}</div>
  16.  
  17. </div>
  18.  
  19.  
#5 19 октября 2013 в 22:15


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

Tokarev

Так через пробел добавьте.
<div class="new1 new2moduletitle">
Или опять не так понял?
#6 19 октября 2013 в 22:18

Или опять не так понял?

PolarOne
нет))) не знаю, как объяснить ещё)))

в общем, для классов module и moduletitle мне нужна возможность добавлять разные префиксы, а не один и тот же)
#7 19 октября 2013 в 22:22
Кажется понял...
Так можно в исходнике добавить скажем разные ID
и использовать сочетанно.
  1. div#mod1.NEWmodule {width:100px;}
  2. div#mod2.NEWmoduletitle (font-size:20px;color:red;)
  3.  
  4. <div id="mod1" class="{$mod.css_prefix}module">
  5. {if $mod.showtitle neq 0}
  6. <div id="mod2" class="{$mod.css_prefix_new}moduletitle">
  7.  
Если опять не так, то сори снова, видимо не вижу полноты картины)
#8 19 октября 2013 в 22:26
Новый префикс будет один на всех или у каждого модуля свой или он может быть совсем разный?

Если один на всех то просто вписать в шаблон.
<div class="new_moduletitle">

Если это будет второй префикс модуля и его название привязано к основному префиксу то можно так
<div class="{$mod.css_prefix}_new_moduletitle">

А иначе действительно сложно и непонятно.
#9 19 октября 2013 в 22:27
PolarOne, можно, всё правильно поняли))) только проблема, что там заюзан готовый UI типа бутстрапа, все таблицы стилей прописаны заранее, там тыщи строк кода, только стилей для оформления фона элемента около 500 прописано)) и чем это всё править, проще заказать разработку плагина, или средствами php+mysql сделать...

его название привязано к основному префиксу

оно не привязано ((
#10 19 октября 2013 в 22:32

оно не привязано ((

Tokarev
тогда каким образом вы хотите различать где какой второй префикс должен стоять?
#11 19 октября 2013 в 22:37
Tokarev, мда, сори, но тут нужно чтоб кто-то уже в живую смотрел.
Если много стилей, то уже сложно выставлять приоритеты селекторов, сам ч… ногу сломит в них. Как бы у вас этого не было, то ставите префикс, а он уже и не работает…
#12 19 октября 2013 в 22:39


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

Sonat
в этом и фишка, к примеру, самому модулю можно будет задать любой бэкграунд, а заголовку — другой бэкграунд и плюс цвет текста свой… и так ДЛЯ КАЖДОГО модуля

Tokarev

Да и так можно со стандартным функционалом. В каждом модуле свои стили оформления.
К примеру Блок "Новости" в сайдбаре на главной — со своим префиксом и стилями.
А клон модуля "Новости" на странице фото скажем — со своим префиксом и стилями есно
и так для каждого модуля )
#13 19 октября 2013 в 22:39

Как бы у вас этого не было, то ставите префикс, а он уже и не работает...

PolarOne
да не нужно про стили вообще думать, уверен, что дополнительный префикс — это решение моей траблы))) мой программер на рыбалке сейчас, уехал до понедельника, так бы уже сделали всё, а то я сижу тут и уснуть не могу, пока не осуществлю задумку)))
#14 19 октября 2013 в 22:42

К примеру Блок "Новости" в сайдбаре на главной — со своим префиксом и стилями.
А клон модуля "Новости" на странице фото скажем — со своим префиксом и стилями есно

PolarOne
нееет стилевое оформление модуля должно зависеть не от модульной позиции и не от страницы, а от того, что захочет вебмастер

можно было просто наплодить файлов module.tpl, module1.tpl,… module500.tpl, но это же трындец, граждане…
#15 20 октября 2013 в 01:46
Tokarev, мой друг, ты прости что не в личке пишу: я тя убью верстальной лопатой, если ещё раз префиксом суфикс обзовёшь zlo
И по делу: ущипни себя за мочку левого уха. Как правило, после этого действия отпадает необходимость даже в префиксах… laugh
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.