Серафин (Син)
{.Dis manibusque sacrum.}
Так сложилось, что за время работы в вебе набрался кое-какой опыт работы с движками сайтов. Тот же WP и Joomla (последняя активно юзается в собственных проектах), немного NetCat. Но на работе пришлось познакомится с платной (и не самой дешевой) системой 1С Битрикс.

Все бы хорошо. Движок шустрый, авторизация синхронизируется с нашей облачной CRM, структуру и дизайн можно крутить как угодно и делать хоть блог, хоть магазин, хоть большой портал (наш случай).

Но нашелся один недостаток, возможно, не так сильно важный: 1С «пережевывает» весь html-код, который пытаешься вставить в качестве контента. При этом нещадно его калеча.

Живой пример: масштабная статья, сделанная из презентации на 50 слайдов, с текстом и картинками. Все это добро нужно упаковать в аккордеон, чтобы не грузить пользователя сразу горой информации, сам аккордеон укомплектовать десятком строчек стилей и выложить.

Работы на час (при условии, что весь текст уже вытащен из презентации, как и скриншоты, последние загружены на хостинг и нужно просто пихнуть в код в нужном порядке). Кажется. Наивный я Рысь, угу.

Фрагмент исходного кода:



Да, я ставлю закрывающий тег у «li», хоть по стандарту HTML это не обязательно. Но в случае списков с длинными строчками так визуально легче сориентироваться, где пункт начинается, а где заканчивается.
Браузер это безобразие отображает как фразу «Основные принципы», обведенную тонкой рамочкой (все детали рамки задаются через CSS). При нажатии на элемент под ним появляется область с текстом, заключенным в тег «p». При повторном клике сворачивается обратно.


1С прожевала код и выплюнула мне следующее:



Теперь при клике на «Основные принципы» вываливается ТРИ области, каждая обведена рамочкой и только в центральной из них мой текст. Остальные просто пустые рамочки.

В итоге пришлось убирать все списки и разбивать все через символы alt+7 (•) и переносы строки. Тогда лишние куски кода пропали.



Но на этом приключения только начинались.

Выше упомянуто, что кроме текста, в материале имеются скриншоты (программы, мы разработкой и внедрением ПО для внутреннего аудита и контроля занимаемся). Казалось бы, что сложного - здесь, на дайри, отлично видно, как вставляется в html картинка:
И тут все не слава богу.

В конструкции «текст -> картинка -> текст» (по вертикали) 1С умудрился всунуть после первого куска текста неразрывный пробел. На маленьком мониторе все бы ничего, картинка съезжает вниз, но на широкоформатном даже представлять не хочу, чем это обернется.

Для справки, кто такой неразрывный пробел - хорошая статья о пробеле с Хабра.

Тихо поматерившись сквозь зубы, забрал весь код из Notepad++ в Adobe DW (там хоть результат видно в реальном времени). А вспомнить, что нужно сделать еще один вариант всего этого аккордеона (напоминаю - это около 50 блоков) - становится совсем грустно.

Уже шутки про то, что если программист говорит, что на задачу надо день, то закладывать надо от 2 до 20 дней, смешными не кажутся. Одно дело - сделать код, другое - заставить его работать, как тебе надо, ей-богу...

Upd: ошибка крылась в верстке - при попытке чуть сдвинуть картинку, чтобы не прилипала к тексту, вместо двойного br, как написал бы человек, машина генераровала абзац. После ручной чистки лишнего кода все работает как надо.

@темы: работа, немного о личном, веб-верстка и программирование