Использую для темы свой helper.php к примеру кастомизирую поле input убираю у него классы textarea form-control и прописываю свои в админке поле становится тоже без классов и без стилей, так задумано или это баг. пробовал для темы админки скопировать стандартный helper.php не помогло. как решить данную проблему
helper.php ломает стили админки
Михаил, это не баг, а ожидаемое поведение системы. Можете добавить проверку на админку в вашем хелпере:
function html_input($type = 'text', $name = '', $value = '', $attributes = []) { $attributes['autocomplete'] = 'off'; } $attributes['type'] = $type; $attributes['name'] = $name; $attributes['value'] = $value; // Если это админка - возвращаем стандартные классы if (cmsCore::getInstance()->uri_controller == 'admin') { return html_tag_short('input', $attributes, 'input form-control'); } // Для фронтенда - просто кастомные классы return html_tag_short('input', $attributes, 'my-custom-class'); }
Решение такое себе, но я почему-то подозреваю, что в тему admincoreui тоже нужно класть хэлпер. Могу ошибаться.
function html_input($type = 'text', $name = '', $value = '', $attributes = []) { $attributes['autocomplete'] = 'off'; } $attributes['type'] = $type; $attributes['name'] = $name; $attributes['value'] = $value; // Если это админка — возвращаем стандартные классы if (cmsCore::getInstance()->uri_controller == 'admin') { return html_tag_short('input', $attributes, 'input form-control'); } // Для фронтенда — просто кастомные классы return html_tag_short('input', $attributes, 'my-custom-class'); }
не помогло все тоже самое,
что в тему admincoreui тоже нужно класть хэлпер
да добавил с самого начала, но тоже админка игнорирует его
Михаил, всё так и должно быть. И да отчасти не ожидаемое поведение. Хелперы править плохая идея в целом. Как из этого выйти без правок движка?
Файл шаблона поля лежит тут /templates/modern/assets/fields/string.tpl.php (и в целом для каждого шаблона). Вместо вызовов html_input() вставьте свою вёрстку инпута прям там, не забудьте что атрибуты тега должны печататься через html($var), а не через echo $var.
Михаил, всё так и должно быть. И да отчасти не ожидаемое поведение. Хелперы править плохая идея в целом. Как из этого выйти без правок движка?
благодарю, то что нужно