//set selector prefix to have shorter and easier to read selectors for rules @products = [data-v-component-products] @product = [data-v-component-products] [data-v-product] @product-image = [data-v-product-images] [data-v-product-image] //we only need the first product element to iterate @product|deleteAllButFirstChild //set component variables @products|prepend = _component['products'][$products_idx] ?? []; $index = 0; $count = $products['count'] ?? 0; $limit = isset($products['limit'])? $products['limit'] : 5; //if page loaded in editor then set a fist empty product if there are no products //to render an empty product to avoid losing the html on edit $_default = (isset($vvveb_is_page_edit) && $vvveb_is_page_edit ) ? [0 => []] : false; //$_default = [0 => []]; $prods = empty($products['product']) ? $_default : $products['product']; ?> @products [data-v-products-category] = @products [data-v-products-count] = $products['count'] @products [data-v-products-manufacturer] = @product|before = $prod) { $index++;?> @product [data-v-product-*]|innerText = $prod['@@__data-v-product-(*)__@@'] @product a[data-v-product-*]|href = $prod['@@__data-v-product-(*)__@@'] //editor attributes @product|addNewAttribute = //title attributes @product [data-v-product-alt]|alt = $prod['name'] @product [data-product_id]|data-product_id = $prod['product_id'] //url @product [data-v-product-url]|title = $prod['name'] @product a[data-v-product-url]|href = $prod['url'] //image //@product [data-v-product-image]|src = $prod['images'][0]['image'] //@product [data-v-product-image]|data-v-id = $prod['images'][0]['id'] //@product [data-v-product-image]|data-v-type = 'product_image' @product [data-v-product-image]|src = @product [data-v-product-image-url] = $prod['image'] //@product [data-v-product-image]|data-v-id = 'image' //@product [data-v-product-image]|data-v-type = 'product_image' //usually used for second image to show hover [data-v-product-image-0] [data-v-product-image-1] //@product [data-v-product-image-*]|src = $prod['images']['@@__data-v-product-image-(\d+)__@@']['image'] @product [data-v-product-image-*]|src = @product [data-v-product-image-*]|data-v-id = $prod['images']['@@__data-v-product-image-(\d+)__@@']['id'] @product [data-v-product-image-*]|data-v-type = 'product_image' //image gallery @product [data-v-product-images] [data-v-product-image]|before = $image) { ?> @product [data-v-product-images] img[data-v-product-image-src]|src = $image['image'] @product [data-v-product-images] img[data-v-product-image-src]|data-v-id = $prod_image_id @product [data-v-product-images] img[data-v-product-image-src]|data-v-type = 'product_image' @product [data-v-product-images] a[data-v-product-image-src]|href = $image['image'] @product [data-v-product-images] [data-v-product-image]|after = //catch all data attributes @product [data-v-product-*]|innerText = $prod['@@__data-v-product-(*)__@@'] //echo description directly to avoid htmlspecialchars escape @product [data-v-product-content] = @product|after =