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

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


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

В шаблоне добавления новости есть форма выбора категорий {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 {
	тут нужные свойства
}

 

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

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

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

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

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

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...