Возможно, Вы смогли успешно закончить проект. Но не стали верстальщиком после завершения одного проекта.
В Битрикс работает идеология компонентов. Вы пишете свой шаблон к стандартному компоненту.
Т.е. у битрикс24 есть API, который позволяет делать что душа пожелает, обращаясь к нему из своих скриптов.
По вопросу сложности посадки на битрикс. Я признаться боюсь, но мне проще гораздо сделать это именно на битриксе. Но тут вопрос больше опыта и времени работы с разными cms.
здесь нужно заниматься структурированием кода
<div class="section-5_content-wrap">
<div class="section-5_content flex">
{if $avto_slide}
<div class="section-5_slider-wrap">
<div class="owl-carousel section-5_slider">
{set $avto_slide = json_decode(json_encode($_pls['avto_slide']), true)}
{foreach $avto_slide as $row}
<picture class="section-5_img">
<img src="{$row.avto_img}" alt="{$row.avto_title}">
</picture>
{/foreach}
</div>
<div class="section-5_slider_dots flex"></div>
</div>
{/if}
<div class="section-5_text">
<p class="section-5_text-title">Характеристика<br>
авто</p>
{$char_avto}
</div>
</div>
<div class="section-btn">
<button class="btn-order" onclick="location.href='[[~16]]'">Забронировать авто</button>
</div>
</div>
0.0000000: pdoTools loaded
0.0009999: xPDO query object created
0.0000000: Included list of tvs: char_avto, avto_slide
0.0009999: leftJoined modTemplateVarResource as TVchar_avto
0.0000000: leftJoined modTemplateVarResource as TVavto_slide
0.0010002: Added selection of modResource: `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
0.0000000: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.char_avto`
0.0000000: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.avto_slide`
0.0019999: Processed additional conditions
0.0029998: Added where condition: modResource.parent:IN(5), modResource.published=1, modResource.deleted=0
0.0000000: Replaced TV conditions
0.0000000: Sorted by modResource.publishedon, DESC
0.0000000: Limited to 10, offset 0
0.0010002: SQL prepared "SELECT `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`, IFNULL(`TVchar_avto`.`value`, '') AS `tv.char_avto`, IFNULL(`TVavto_slide`.`value`, '') AS `tv.avto_slide` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVchar_avto` ON `TVchar_avto`.`contentid` = `modResource`.`id` AND `TVchar_avto`.`tmplvarid` = 5 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVavto_slide` ON `TVavto_slide`.`contentid` = `modResource`.`id` AND `TVavto_slide`.`tmplvarid` = 6 WHERE ( `modResource`.`parent` IN (5) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY modResource.publishedon DESC LIMIT 10 "
0.0000000: SQL executed
0.0000000: Rows fetched
0.0039999: Prepared and processed TVs
0.0020010: Loaded "modChunk" with name "avto.tpl"
0.0100000: Compiled Fenom chunk with name "modchunk/45"
0.0160010: Returning processed chunks
0.0270009: Total time
10 747 904: Memory usage
&where=`{"S_general:>=":"[[*S_general:decr=`20`]]","S_general:<=":"[[*S_general:add=`50`]]","AND:t_filter:=":"[[*t_filter]]"}`
P.S. Кстати, из всех этих тестовых именно те два, что требуют изучения фреймворков мне и понравились, хоть они и сложнее и объемнее. Во-первых, потому что возьмут меня в одно из тех мест или нет, но я получу новые знания, новый опыт, в последствие выберу один из этих фреймворков и буду дальше с ним работать, ибо мне давно надо было их изучить, да не было времени никак начать. Во-вторых, задачки интересные, и что-то новое всегда интересно само по себе. А вот выполнять тестовые из рубрики "делал 1000 раз" как раз-таки очень скучно, и это просто надо заставлять себя их делать. Но это проблема уже тех, кто составляет тестовые. Даже примитивные задачи для начального уровня скиллов можно делать интересными и увлекательными, даже если они на каких-то 5-10 мин, чтобы на их примере можно было узнать больше о кандидате, чем "как он пишет код", а не из рубрики "на автопилоте под музыку и не надо думать головой".