Skip to content

Developer notes

  • Theme directory: design/themes/kv_hearth (child of responsive), delivered by the add-on kv_theme_hearth. The add-on copies var/themes_repository/kv_hearth into design/themes on install; never edit the copy in var/themes_repository.
  • Styles: styles/data/<Style>.less (Theme editor variables + @kv_* kit tokens + @he_* Hearth tokens), the skin in css/skin/skin.less. Own CSS classes use the he- prefix.
  • Templates added by the theme (all render the stock output, or nothing, without the licensed design):
    • blocks/products/kv_he_grid.tpl, blocks/products/kv_he_look.tpl
    • blocks/categories/kv_he_rooms.tpl, blocks/categories/kv_he_cats.tpl
    • addons/banners/blocks/kv_he_hero.tpl, addons/banners/blocks/kv_he_promos.tpl
    • addons/blog/blocks/kv_he_posts.tpl, blocks/vendor_list_templates/kv_he_makers.tpl, blocks/wrappers/kv_he_shop.tpl
    • hook files of the add-on: product grid card (products:product_multicolumns_list override with the card partial addons/kv_theme_hearth/partials/kv_he_card.tpl), product page (products:main_info_title pre, products:product_detail_bottom pre, products:product_tabs post), store reviews (discussion:items_list_row override for the block with the user class he-revs-block), index:html_tag pre, index:scripts pre.
  • Data: app/addons/kv_theme_hearth/func.php (“hearth-data”): $product.he from gather_additional_products_data_post (material, colour, delivery, days, assembly, dimensions, seat height, New flag, swatches, main category), $he from dispatch_before_display (room photos for the mega menu, frequently bought together), vendor facts from get_companies_post / get_company_data_post. Every handler returns at once unless the storefront runs the licensed design. Catalogue data only: safe with the block cache and the full page cache.
  • Script: js/addons/kv_theme_hearth/theme.js on the Kavio kit API (Tygh.kvTheme): hero slider, mega menu tiles, colour dots, lens zoom, delivery dates, bundle totals. It reads only the page and Tygh.kv_hearth.
  • Features are found by code (HE_*) or by name; see Usage.
  • Hooks you can use in your own add-on stay untouched: the theme never overrides core templates.