В юмор наверно писать, куда же еще.
Достался мне вчера сайт на Opencart версии 1.5.5.1.2 от 14-года (вроде бы не очень старый двиг) и задача - натянуть на него адаптив (медиа квери).
Полез разбираться и решать и ...
1 - открыть div в одном файле шаблона и закрыть его в другом - это нормальная практика этого движка или левая нога верстальщика так захотела?
2 - имеем разметку базовую (к примеру три колонки везде с одними классами) описана в \template\common\header.tpl (почему в хедер?), ладно изменил, открываю другую страницу, а там оказывается отвечает шаблон \template\information\information.tpl с той же самой разметкой как в header.tpl только в блоке контента (центральная колонка) своя информация.
И так по каждой странице. В итоге нашел десяток одинаковых разметок для разных страниц одного сайта.
В Joomla мы стали бы делать 10 разных шаблонов для совершенно одинакового вывода информации в плане структуры?
3 - захожу в админку, изменяю материал, хочу применить посмотреть а нет такой опции, плюс заголовок не служит ссылкой на изменить. Только сохранить\отменить. При сохранении попадаю в общий список и снова ищу тот же материал для редактирования. Фильтрации поиска никакого в помине нет по статьям.
Вопросы 1 и 2 даже не знаю кому адресовать - разрабам или верстала так схитрил? Ну да ладно, переходим к вопросам именно тому, кто ентот сайт делал
То что верстала описывал стили через #ID промолчу, нет классов у базовых элементов разметки (которые дублируются по разным файлам). Про стиль верстки даже говорить не буду, меня упрекают, что мол работаю не по методике, без БЭМ и фреймворков), но здесь же.... В горизонтальной полосе известной ширины и высоты расположить блок надо только через абсолют.
В JS файле нахожу следующую функцию с комментом (даже в 2014 году были решения на уровне разметки\стилей)
// Фиксим траблы с левым отступ при загрузве страницы
fixMarginLeftAndHeightBlock();
function fixMarginLeftAndHeightBlock()
{
/* Каждому четвертому блоку убираем левый отступ, чтобы была ровная колонка товаров */
$('.product-grid > div:nth-child(4n+1)').css({marginLeft:"0px"});
/* Ставим одинаковую высоту блоку с названием товара */
setEqualHeight($(".product-grid .name"));
}
Ну и еще однотипного
/* Каждому третему блоку убираем левый отступ, чтобы была ровная колонка товаров */
$('#content .box-product > div:nth-child(3n+1)').css({marginLeft:"0px"});
Даже я на уровне JS не фиксю баги стилей или разметки.
Идем дальше, в контенте нахожу такой код (который физически не может быть сформирован даже вордом)
<img alt="" src="картинка" style="font-family: tahoma, geneva, sans-serif; font-size: 14px; text-align: center;" />
такого я точно никогда за 15 лет не видел, что это и зачем?
Этот момент
просто шедеврален - две строки в таблице!
Про три вложенных друг в друга дива с фиксированной одинаковой шириной 1012px даже говорить не буду. Зачем так делать? При этом нет ни max\min-width, тупо фиксированный контейнер для дочерний блоков которого указана его же ширина.
За свою практику раз десятый сталкиваюсь с опенкартом и везде одинаковые проблемы - div открылся тут закрылся там, дублирование сущностей разметки.
Многие "умные" умы хают Joomla за доступность и тупость, но лучше системы в мире открытых CMS (да и закрытых тоже) я не встречал.
Простите за простыню, надо было выплакаться, у меня там в блокнотике еще много чего зафиксировано, но это пока самые перлы что нашел.