Перейти к публикации

Редактирование компонентов шаблона без редактирования файлов движка


Рекомендованные сообщения

В шаблоне добавления новости есть форма выбора категорий {category}. Её дизайн прописан в файле modules\addnews.php

if( $config['allow_multi_category'] ) {

			$cats = "<select data-placeholder=\"{$lang['addnews_cat_sel']}\" name=\"catlist[]\" id=\"category\" onchange=\"onCategoryChange(this)\" style=\"width:350px;height:140px;\" multiple=\"multiple\">";
		
		} else {
			
			$cats = "<select data-placeholder=\"{$lang['addnews_cat_sel']}\" name=\"catlist[]\" id=\"category\" onchange=\"onCategoryChange(this)\" style=\"width:350px;\">";
		}

Верстаю шаблон под bootstrap4.

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

if( $config['allow_multi_category'] ) {

			$cats = "<select data-placeholder=\"{$lang['addnews_cat_sel']}\" name=\"catlist[]\" id=\"category\" onchange=\"onCategoryChange(this)\" class=\"w-100\" multiple=\"multiple\">";
		
		} else {
			
			$cats = "<select data-placeholder=\"{$lang['addnews_cat_sel']}\" name=\"catlist[]\" id=\"category\" onchange=\"onCategoryChange(this)\" class=\"form-control\">";
		}

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

Ссылка на сообщение
Поделиться на других сайтах
21 минуту назад, LonerD сказал:

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

Свойства CSS могут наследоваться, а не обязательно чтобы им были прописаны имена.

 

например

<div class="test">{category}</div>

в CSS

.test select {
	тут нужные свойства
}

 

  • Поддерживаю 1
Ссылка на сообщение
Поделиться на других сайтах

Разобрался в этом нюансе. Спасибо.

Меня смутила вариативность if-else (разное оформление для разных настроек движка), оказывается это решается через указание в CSS select[multiple]

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Такое себе удовольствие получается... :unsure:  Особенно если используются популярные нынче готовые фреймворки (типа бутстрапа), в которых всё уже настроено. Казалось бы, в вышеприведённом примере достаточно для select указать готовый класс .form-control и радоваться тому, что на разных устройствах всё будет отображаться одинаково красиво. Но из-за того, что шаблон вынесен в файл движка, приходится дублировать сущности. Начал выискивать классы .form-control (несколько десятков записей в bootstrap.css), переименовывать их в .test, получилась куча лишнего кода... на компьютере выглядит вроде как нужно.... посмотрел на планшете - ужас. Остаётся или бесплодно часами вылавливать ошибки (решение правильное, но времязатратное) или каждый раз после обновлений редактировать файлы движка (решение неправильное, но гораздо более простое) в надежде, что когда-нибудь шаблонизация будет вынесена в шаблоны и не нужно будет искать и перекрывать стили из движка. :(

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...