Developer notes
| Item | Value |
|---|---|
| Add-on id | kv_theme_bento |
| Theme | kv_bento (child of responsive), installed from var/themes_repository/kv_bento |
| Built with | Kavio theme kit 1.x (kv-files.json in the theme lists every file with its hash and the kit version) |
| CSS prefix | bt- (theme), kv- (kit) |
design/themes/kv_bento/css/kit/{fonts,base,features,addons}.less(kit layer),css/skin/skin.less(Bento),styles/data/{Fog,Graphite,Pop,Lab}.less(styles).- Block templates:
blocks/products/kv_bento.tpl(product section, featured 2 × 2 card),blocks/products/kv_deal_tile.tpl(deal-of-the-day tile),blocks/categories/kv_mosaic.tpl(category mosaic),blocks/static_templates/kv_cathead.tpl(category header tile), plus the kit’sblocks/menu/kv_mega.tpl,blocks/static_templates/kv_icons.tplandblocks/wrappers/kv_gate.tpl. - Hook files in
templates/addons/kv_theme_bento/hooks/products/:product_multicolumns_list.pre(compare toggle, spec chips, featured lead on every grid card; card parts are placed by CSS grid),main_info_title.pre(SKU kicker),main_info_title.post(lead and chips),product_tabs.pre(“The numbers” tiles). Core and add-on templates are not overridden. - Add-on:
Tygh/Addons/KvThemeBento/Theme/Kit.php(install, licence gate, admin notice, upgrade refresh, card data),Theme/Demo.php(demo content on activation),License/,Upgrade/Synchronizer.php,js/addons/kv_theme_bento/{kit,theme}.js.
Hooks and data
Section titled “Hooks and data”| Hook | Use |
|---|---|
before_dispatch (storefront) |
assigns $kv_theme while the add-on is enabled, the storefront runs kv_bento and the licence is active |
gather_additional_products_data_post |
kit: kv_chips (features shown in product lists), kv_promo_end (end of the active catalog promotion); Bento: bt_chips (fallback: first three short feature values) |
get_product_data_post |
products.view only: bt_specs (five short feature values) and bt_numbers (number + unit + feature name, up to five) |
get_categories_post |
bt_lead (first sentence of a top-level category description, for the mosaic’s big tile) |
dispatch_before_display, update_addon_status_post |
kit: admin notice, demo content, status |
Every data hook returns at once unless the storefront runs the licensed theme; the data depends on the catalogue only (one feature query per product list).
Full page cache
Section titled “Full page cache”The theme prints nothing visitor-specific into cached markup. The countdown is an end date (the same for everyone),
ticked by theme.js. The compare toggle is a core AJAX link (product_features.add_product / delete_product,
result ids comparison_list,account_info*); its ticked state is kept in the visitor’s browser (localStorage) and
reset when the account block reports an empty comparison list. Header counters are filled by kit.js from the core
cart and account blocks.
Customising
Section titled “Customising”Use a child theme or the Theme editor’s custom CSS. Upgrades replace only theme files you have not changed. Design
tokens are LESS variables (@kv_*, @bt_*) set by each style file; the ruled grid of Lab is @bt_ruled: true with
@bt_grid_gap: 1px and @bt_grid_bg as the hairline colour.