Skrypty do korzystania z platformy

Skrypty dla platformy SaaS Hotlist.biz CMS
Instrukcje korzystania ze skryptów
Możesz skopiować kod, aby osadzić plik skryptu lub kod skryptu i wkleić go do Bloku/Menu na swojej stronie. Zaleca się umieszczanie wszystkich skryptów w jednym bloku/menu. Możesz umieścić blok/menu w "Tagi serwisowe przed tagiem Body (Header Meta)", "Nagłówek strony (Header)" lub "Dół strony (stopka)".


Wyskakujące okno
Instrukcje, przykład, a także automatyczne generowanie wyskakujących okienek są dostępne pod tym linkiem: Generator wyskakujących okienek

[Przykład przycisku — wyskakujące okienko wideo]

Wyskakujące okienko z formularzem
Instrukcje, przykład, a także automatyczne generowanie wyskakujących okienek z formularzem dostępne są pod tym linkiem: Generator wyskakujących okienek

Zastąpienie tekstu o wyborze odmiany
Komunikat o konieczności wyboru typu produktu realizowany jest w oknie dialogowym za pomocą elementu CSS. Możesz zastąpić napisy w stylach CSS:
 Code: СSS
html:lang(ru) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Вы не выбрали разновидность товара."; }
html:lang(en) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"You did not select a complete set of goods."; }
html:lang(uk) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Вы не обрали різновид товару."; }
html:lang(pl) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Nie wybrałeś typu produktu."; }


Aby zamienić komunikat o niewybranej odmianie na karcie produktu należy dodać kod funkcji callback_hotengine_variety_require (jeżeli odmiana nie jest zaznaczona, to przed wywołaniem okna dialogowego komunikatu). Funkcja jest uruchamiana, gdy nie wybrano żadnej odmiany.

W karcie produktu wpisz tekst «Nagłówek odmiany». W zależności od tekstu zmienia się wartość dla klasy «.hotengine-shop-product-variety-title». Na przykład, jeśli tekst to «Wybierz wagę:», wówczas klasą tytułu będzie «.hotengine-sklep-produkt-odmiana-tytuł_24». Możesz sprawdzić klasę podczas zmiany wartości, przeglądając kod źródłowy strony, po określeniu nagłówka odmiany.

Kod zastępujący tekst:
 Code: html
<script type="text/javascript"> 
  <!-- 
  function callback_hotengine_variety_require(){

if($(".hotengine-shop-product-variety-title_24").length > 0){
  $text = "Nie wybrałeś wagi!";
  } else if($(".hotengine-shop-product-variety-title_38").length > 0){
  $text = "Nie wybrałeś ilości!";
  } else if($(".hotengine-shop-product-variety-title_26").length > 0){
  $text = "Nie wybrałeś koloru!";
  } else {
  $text = "Nie wybrałeś odmiany!";
  }

 $("body").append('<div id="hotengine-shop_cart_add_error_wrong_variety"><b align="center" style="display:block;">'+$text+'</b><a class="hotengine-shop_cart_add_error_wrong_variety-btn-close" onclick=\\'return $("#hotengine-shop_cart_add_error_wrong_variety").dialog("close").remove();\\'></a></div>');

  
  $("#hotengine-shop_cart_add_error_wrong_variety").dialog({
  width: $(window).width() > 420 ? 410 : "90%",
  minWidth: "300px",
  modal: true,
  stack: true,
 sticky: true,
  title: "",
  close: function(){ $(this).remove(); },
  open: function(){
  $(document).on("click",".ui-widget-overlay",function(){
  $("#hotengine-shop_cart_add_error_wrong_variety").dialog("close").remove();
  })
  return false; 
  }
  });
  
  return false; 
  }
  -->
  </script>

Popup będzie zawierał określony tekst w zmiennej $text.

Podobna funkcja podczas przeglądania listy produktów, callback_hotengine_variety_require_list($href), jest uzupełniona o link do karty produktu, dzięki czemu może być używana w wyświetlonym oknie dialogowym.

Komunikaty po autoryzacji lub aktywacji konta
Aby utworzyć wyskakujące okienko z komunikatem o statusie autoryzacji lub aktywacji, należy utworzyć funkcję callback_hotengine_authorize_result


callback_hotengine_authorize_result($result) - funkcja po autoryzacji użytkownika ($result - wynik wykonania: 1-udane, 2-błąd logowania lub hasła, 3-konto zablokowane, 4-wymagana aktywacja, 5-aktywacja powiodła się, 6-błędny kod Captcha)



Przykład standardowej funkcji, która zostanie wywołana w przypadku braku własnej funkcji:
/templates/scripts/hotengine-script-callback_hotengine_authorize_result.js
Wiadomości tekstowe załadowane stylami CSS:
/templates/styles/hotengine-script-callback_hotengine_authorize_result.css

Powiązane produkty w koszyku / przy zakupie produktu

Ajax ładuje listę produktów:
Generator bloków produktów można załadować za pomocą żądania GET/POST/AJAX. Aby to zrobić, musisz wysłać żądanie ze swojej witryny (swojej domeny) do strony «/ajax_get_list_shop.php». W żądaniu możesz określić dodatkowe właściwości wyświetlania produktów. Listę wszystkich możliwych wartości znajdziesz na stronie «Widżet z artykułami w sklepie». Aby poprawnie wyświetlić styl listy produktów, należy dodać opakowanie HTML oraz elementy nadrzędne, a także przyciski przewijania/kontynuacji listy produktów (przewijanie do przodu/do tyłu). Przykład takiego opakowania pokazano w skrypcie poniżej.


Podczas przeglądania koszyka tworzony jest element mikronarzutu, który zawiera listę «Kup z produktem». Lista takich produktów może być wyświetlana w wyskakującym okienku lub jako blok z produktami.
Włącz mikrodane «Kup z towarem» podczas przeglądania koszyka, w ustawieniach strony, w zakładce «Sklep».
Umieść jedną z opcji wyświetlania listy towarów na stronie "cart_send" - [Koszyk / Formularz zamówienia z koszyka], w treści strony.

Kod dodawania listy pod przyciskiem "Kontynuuj zakupy":
 Code: html
<script type="text/javascript"><!--
  $(function(){ 
  if(!$("#hotengine-shop-cart-form").length){
  //check bought with values 
  $product_in_cart = $(".hotengine-marking[data-hotengine-marking-type='shop_catalog_page_cart_products_list']");
  $bought_with_all = '';
$product_in_cart.each(function(){
  if(typeof $product_in_cart !== typeof undefined && $product_in_cart !== false && $product_in_cart !='undefined' && $product_in_cart !=''){
  var $boughtwith = $(this).attr("data-hotengine-marking-boughtwith");
  
  if(typeof $boughtwith !== typeof undefined && $boughtwith !== false && $boughtwith !='undefined' && $boughtwith !='' && $boughtwith.length > 0){
  if($bought_with_all!=''){ $bought_with_all += ','; }
  $bought_with_all += $boughtwith;
  }
  
  
  
  }
});
  //check bought with values 

if($bought_with_all!=''){   //we have a sku or id list

 $product_in_cart_id = $(".hotengine-marking[data-hotengine-marking-type='shop_catalog_page_cart_products_list']");
var $shop_catalog_page_remove = [];
$product_in_cart.each(function(){
  if(typeof $product_in_cart !== typeof undefined && $product_in_cart !== false && $product_in_cart !='undefined' && $product_in_cart !=''){
  
  $shop_catalog_page_remove.push($(this).attr("data-hotengine-marking-shop_catalog_page_id"));
  $shop_catalog_page_remove.push($(this).attr("data-hotengine-marking-shop_catalog_page_sku"));
  $site_id = $(this).attr("data-hotengine-marking-site_id");
  }
  });

var $bought_with_all = $bought_with_all.split(',');
$bought_with_all = $.grep($bought_with_all, function(value){
  return $.inArray(value, $shop_catalog_page_remove) < 0;
  });

$bought_with_all.filter(Boolean);
if($bought_with_all.length>0){
var $bought_with_all = $bought_with_all.join(',')
//USING LIST OF BOUGHT WITH AS PRODUCT LIST 

 var $onpage = "20";
  var $param = ':shop_products_slider:htmlonly:products_id-'+$bought_with_all+':site-'+$site_id+':start-0:on_page-'+$onpage+':description:button-cart:id-hotengine-shop-products-list-boughtwith';
  $('.hotengine-shop-cart_continue_link').after('<div id="hotengine-shop-products-list-boughtwith" style="display:none;"><div class="hotengine-shop-products-list-div" data-hotengine-shop-products-list-param="'+$param+'" data-product_limits="'+$onpage+'"><span class="hotengine-shop-products-list-div-button-left hotengine-shop-products-list-div-button hotengine-shop-products-list-right" data-site-id="'+$site_id+'" data-product_limits_start_n="0"></span><span class="hotengine-shop-products-list-content"></span><span class="hotengine-shop-products-list-div-button-right hotengine-shop-products-list-div-button, hotengine-shop-products-list-right" data-site-id="'+$site_id+'" data-product_limits_start_n="0"></span></div></div>');
 
 
  $("#hotengine-shop-products-list-boughtwith .hotengine-shop-products-list-content").load("/ajax_get_list_shop.php?get&c="+$site_id+"&n=0&onpage="+$onpage+"&param="+$param , function(){

$(".hotengine-shop-products-list-content-loading").hide("fast", function(){ 
  $(".hotengine-shop-products-list-content-loading").remove(); 
  }); 

  
  if($("#hotengine-shop-products-list-boughtwith .hotengine-shop-products-list-content").is(':not(:empty)') && $("#hotengine-shop-products-list-boughtwith .hotengine-shop-products-list-content .hotengine-shop-product-list-block-empty").length < 0){
  $("#hotengine-shop-products-list-boughtwith").show(); 
    if(typeof(callback_hotengine_shop_products_list_div_button) === "function"){ 
    callback_hotengine_shop_products_list_div_button(); 
    }
  }
  
  }); 


//USING LIST OF BOUGHT WITH AS PRODUCT LIST 
} //if($bought_with_all.length>0){
} //if($bought_with_all!=''){
}
});
  //--></script>




Lista zostanie wyświetlona tylko wtedy, gdy zostaną znalezione powiązane produkty.
#hotengine-shop-products-list-boughtwith - ustaw styl dla bloku listy produktów.
:append - pokaż przycisk "pokaż więcej" na dole (dodaj :append przed :button-cart)
Aby wyświetlić przycisk na dole, dodaj klasę «hotengine-shop-products-list-append» do klasy «hotengine-shop-products-list-right», a także hotengine-shop-products-list-div- dołącz do klasy `hoengine-shop-products-list-div


Przykład stylu CSS:
 Code: CSS

#hotengine-shop-products-list-boughtwith:before{ content:"Z wybranym towarem kup:"; display:block; text-align:center; line-height:30px;}
#hotengine-shop-products-list-boughtwith {margin-top:50px;}





Kod wyskakującego pola listy:
 Code: html
<script type="text/javascript"><!--
  $(function(){ 
if(!$("#hotengine-shop-cart-form").length){
  //check bought with values 
  $product_in_cart = $(".hotengine-marking[data-hotengine-marking-type='shop_catalog_page_cart_products_list']");
var $bought_with_all = '';
$product_in_cart.each(function(){
  if(typeof $product_in_cart !== typeof undefined && $product_in_cart !== false && $product_in_cart !='undefined' && $product_in_cart !=''){
  var $boughtwith = $(this).attr("data-hotengine-marking-boughtwith");
  
  if(typeof $boughtwith !== typeof undefined && $boughtwith !== false && $boughtwith !='undefined' && $boughtwith !='' && $boughtwith.length > 0){
  if($bought_with_all!=''){ $bought_with_all += ','; }
  $bought_with_all += $boughtwith;
  }
  
  
  
  }
});
  //check bought with values 

if($bought_with_all!=''){   //we have a sku or id list

 $product_in_cart_id = $(".hotengine-marking[data-hotengine-marking-type='shop_catalog_page_cart_products_list']");
var $shop_catalog_page_remove = [];
$product_in_cart.each(function(){
  if(typeof $product_in_cart !== typeof undefined && $product_in_cart !== false && $product_in_cart !='undefined' && $product_in_cart !=''){
  
  $shop_catalog_page_remove.push($(this).attr("data-hotengine-marking-shop_catalog_page_id"));
  $shop_catalog_page_remove.push($(this).attr("data-hotengine-marking-shop_catalog_page_sku"));
  $site_id = $(this).attr("data-hotengine-marking-site_id");
  }
  });

var $bought_with_all = $bought_with_all.split(',');
$bought_with_all = $.grep($bought_with_all, function(value){
  return $.inArray(value, $shop_catalog_page_remove) < 0;
  });

$bought_with_all.filter(Boolean);
if($bought_with_all.length>0){
var $bought_with_all = $bought_with_all.join(',')
//USING LIST OF BOUGHT WITH AS PRODUCT LIST 
 var $width='800'; //winodw width at start
  var $product_width = '350'; //product width
  if($width>$(window).width()){ 
  $width = $(window).width()-30; //resize to window widrth 
  };
  var $onpage = Math.round($width/$product_width);  //count product on one window
  var $param = ':shop_products_slider:htmlonly:products_id-'+$bought_with_all+':site-'+$site_id+':start-0:on_page-'+$onpage+':description:button-cart:auto_width:id-hotengine-shop-products-list-boughtwith';
if (typeof $bought_with_all !== typeof undefined && $bought_with_all !== false && $bought_with_all !== "undefined" && $bought_with_all.length > 0 && $bought_with_all!=""){
  var $title = "Z wybranym towarem kup:";
  $("body").append('<div id="hotengine-bought_with-window"><div id="hotengine-shop-products-list-boughtwith"><div class="hotengine-shop-products-list-div" data-hotengine-shop-products-list-param="'+$param+'" data-product_limits="'+$onpage+'"><span class="hotengine-shop-products-list-div-button-left hotengine-shop-products-list-div-button" data-site-id="'+$site_id+'" data-product_limits_start_n="0"></span><span class="hotengine-shop-products-list-content"></span><span class="hotengine-shop-products-list-div-button-right hotengine-shop-products-list-div-button" data-site-id="'+$site_id+'" data-product_limits_start_n="0"></span></div></div><br/><a class="hotengine-bought_with-window-btn-close" onclick=\'return $("#hotengine-bought_with-window").dialog("close").remove();\'></a></div>');
$("#hotengine-shop-products-list-boughtwith .hotengine-shop-products-list-content").load("/ajax_get_list_shop.php?get&c="+$site_id+"&n=0&onpage="+$onpage+"&param="+$param , function(){
$(".hotengine-shop-products-list-content-loading").hide("fast", function(){ 
  $(".hotengine-shop-products-list-content-loading").remove(); 
  }); 

if ($("#hotengine-bought_with-window .hotengine-shop-products-list-content .hotengine-shop-product-list-block span").length > 2){
  $("#hotengine-bought_with-window").dialog({
  width: $width+"px",
  minWidth: $width+"px",
  modal: true,
  stack: true,
  sticky: true,
  title: $title,
  close: function(){ $(this).remove(); },
  open: function(){
  $(document).on("click",".ui-widget-overlay",function(){
  $("#hotengine-bought_with-window").dialog("close").remove();
    if(typeof(callback_hotengine_shop_products_list_div_button) === "function"){ 
     callback_hotengine_shop_products_list_div_button(); 
    }
  })
  }
  });
  
  } else { $("#hotengine-bought_with-window").hide(0);}
  
  }); 
  }


//USING LIST OF BOUGHT WITH AS PRODUCT LIST 
} //if($bought_with_all.length>0){
} //if($bought_with_all!=''){
}
});
  //--></script>



Okno pojawi się tylko wtedy, gdy zostaną znalezione powiązane produkty.

.hotengine-bought_with-window-btn-close - określić styl przycisku zamknięcia okna (wyświetlanego pod listą produktów w oknie).

Przykład stylu CSS:
 Code: CSS

.hotengine-bought_with-window-btn-close:before{ content:"Zamknij";}
.hotengine-bought_with-window-btn-close {
  display:block;
  background:none;
  width:110px;
  line-height:38px;
  height: auto;
  padding: 0px 0px;
  white-space:nowrap;
  background: #4f86b1;
  cursor: pointer;
  transition-delay: 0;
  transition-duration: 0.2s;
  transition-property: all;
  transition-timing-function: cubic-bezier(0, 0, 1, 1);
  border:none; box-shadow: 0 1px 3px rgba(0,0,0,0.12);
  -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px;
  text-shadow:1px 1px 1px rgba(1, 39, 106, 1);
  color: #fff!important;
  text-decoration: none;
  margin:-10px auto 0px auto;
  text-align: center;
}
.hotengine-bought_with-window-btn-close:hover { background:#24689E; opacity: 1; -moz-opacity: 1; -khtml-opacity: 1; filter: alpha(opacity=100);  }




Lista "Kup z produktem" jest dodatkowo wyświetlana podczas przeglądania karty produktu. Jeśli potrzebujesz zrobić wyskakujące okienko lub listę produktów, która wyświetla się tylko w koszyku, to skorzystaj z «Listy produktów do wysyłki». W takim przypadku zamień «data-hotengine-marking-boughtwith» na «data-hotengine-marking-boughtwith-email»

Kod wyskakującego okienka listy po dodaniu przedmiotu do koszyka (callback_hotengine_cart_plus_after_boughtwith):

Funkcja callback_hotengine_cart_plus_after_boughtwith jest wywoływana po dodaniu produktu do koszyka i zawiera wartość listy "kup z produktem".

 Code: html
<script type="text/javascript"><!--
function callback_hotengine_cart_plus_after_boughtwith($bought_with_all){
if($bought_with_all!=''){   //we have a sku or id list
  //USING LIST OF BOUGHT WITH AS PRODUCT LIST 
  var $width='800'; //winodw width at start
  var $product_width = '350'; //product width
  if($width>$(window).width()){ 
  $width = $(window).width()-30; //resize to window widrth 
  };
  var $onpage = Math.round($width/$product_width);  //count product on one window
  var $param = ':shop_products_slider:htmlonly:products_id-'+$bought_with_all+':start-0:on_page-'+$onpage+':description:button-cart:auto_width:id-hotengine-shop-products-list-boughtwith';
 var $title = "Z wybranym towarem kup:";
  $("body").append('<div id="hotengine-bought_with-window"><div id="hotengine-shop-products-list-boughtwith"><div class="hotengine-shop-products-list-div" data-hotengine-shop-products-list-param="'+$param+'" data-product_limits="'+$onpage+'"><span class="hotengine-shop-products-list-div-button-left hotengine-shop-products-list-div-button"  data-product_limits_start_n="0"></span><span class="hotengine-shop-products-list-content"></span><span class="hotengine-shop-products-list-div-button-right hotengine-shop-products-list-div-button" data-product_limits_start_n="0"></span></div></div><br/><a class="hotengine-bought_with-window-btn-close" onclick=\'return $("#hotengine-bought_with-window").dialog("close").remove();\'></a></div>');
  $("#hotengine-shop-products-list-boughtwith .hotengine-shop-products-list-content").load("/ajax_get_list_shop.php?n=0&onpage="+$onpage+"&param="+$param , function(){
  $(".hotengine-shop-products-list-content-loading").hide("fast", function(){ 
  $(".hotengine-shop-products-list-content-loading").remove(); 
  }); 

  if ($("#hotengine-bought_with-window .hotengine-shop-products-list-content .hotengine-shop-product-list-block span").length > 2){
  $("#hotengine-bought_with-window").dialog({
  width: $width+"px",
  minWidth: $width+"px",
  modal: true,
  stack: true,
  sticky: true,
  title: $title,
  close: function(){ $(this).remove(); },
  open: function(){
  $(document).on("click",".ui-widget-overlay",function(){
  $("#hotengine-bought_with-window").dialog("close").remove();
     if(typeof(callback_hotengine_shop_products_list_div_button) === "function"){ 
      callback_hotengine_shop_products_list_div_button(); 
     }
  })
  }
  });
  
  }
  
  }); 
  

//USING LIST OF BOUGHT WITH AS PRODUCT LIST 
} //if($bought_with_all!=''){
  }
//--></script>

Funkcję callback_hotengine_cart_plus_after_boughtwith można zastąpić funkcją callback_hotengine_cart_plus_after_boughtwith_email, aby wyświetlić tę samą listę, ale w celu marketingu e-mailowego (wysyłanie e-mailem innych produktów).

Okno pojawi się tylko wtedy, gdy zostaną znalezione powiązane produkty.

.hotengine-bought_with-window-btn-close - określić styl przycisku zamknięcia okna (wyświetlanego pod listą produktów w oknie).

Przykład stylu CSS:
 Code: CSS

.hotengine-bought_with-window-btn-close:before{ content:"Zamknij";}
.hotengine-bought_with-window-btn-close {
  display:block;
  background:none;
  width:110px;
  line-height:38px;
  height: auto;
  padding: 0px 0px;
  white-space:nowrap;
  background: #4f86b1;
  cursor: pointer;
  transition-delay: 0;
  transition-duration: 0.2s;
  transition-property: all;
  transition-timing-function: cubic-bezier(0, 0, 1, 1);
  border:none; box-shadow: 0 1px 3px rgba(0,0,0,0.12);
  -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px;
  text-shadow:1px 1px 1px rgba(1, 39, 106, 1);
  color: #fff!important;
  text-decoration: none;
  margin:-10px auto 0px auto;
  text-align: center;
}
.hotengine-bought_with-window-btn-close:hover { background:#24689E; opacity: 1; -moz-opacity: 1; -khtml-opacity: 1; filter: alpha(opacity=100);  }





Funkcja po dodaniu towaru do koszyka. Powiadomienie o rabacie kupującego

Funkcja callback_hotengine_cart_plus_after jest wywoływana po dodaniu produktu do koszyka. W tym przykładzie zaimplementowane jest powiadomienie o wielkości ewentualnego rabatu dla kupującego. Dane są pobierane z mikrodanych data-hotengine-cart-discount w koszyku.

 Code: html
<script type="text/javascript">
  <!--
  function callback_hotengine_cart_plus_after(){
  var $stick_cart = $(".hotengine-shop-cart-sticker-cart-cart");
  if (typeof $stick_cart !== typeof undefined && $stick_cart !== false && $stick_cart !== "undefined" && $stick_cart.length > 0){
  var $your_discount = $stick_cart.attr("data-hotengine-cart-discount");
  if($your_discount!='' && $your_discount!= undefined){ $("#cart").after('<span class="hotengine-your_discount">'+$your_discount+'</span>'); }
  }
  }
$(function(){
  callback_hotengine_cart_plus_after();
  });
  -->
  </script>

Aby powiadomienie zostało wywołane nie tylko po dodaniu produktu do koszyka, konieczne jest zduplikowanie skryptu sprawdzającego obecność mikronarzutu o rabacie. Na przykład jest to realizowane za pomocą dodatkowego wywołania funkcji callback_hotengine_cart_plus_after() ; bez dodawania produktu do koszyka.

Przykład stylu CSS:
 Code: CSS
.hotengine-your_discount  { 
    white-space: nowrap;
    position: absolute;
    margin-top: -32px;
    right: 47px;
    background: #f00;
    color: #fff;
    border-radius: 50px 50px 0px 50px;
    line-height: 30px;
    width: 50px;
    opacity: 0.9;
    text-align: center;
  }






Ładowanie listy artykułów za pomocą Javascript

Ajax ładuje listę artykułów:
Generator bloków z artykułami można załadować za pomocą żądania GET/POST/AJAX. Aby to zrobić, musisz wysłać żądanie ze swojej witryny (twoja domena) na stronę «/ajax_get_list_blog.php». Możesz określić dodatkowe właściwości w zapytaniu, aby wyświetlić artykuły. Listę wszystkich możliwych wartości znajdziesz na stronie "Widżet z artykułami". Do poprawnego wyświetlania artykułów należy dodać wrapper HTML oraz elementy nadrzędne, a także przyciski przewijania/kontynuacji listy artykułów (przewijanie do przodu/do tyłu). Przykład takiego opakowania pokazano w skrypcie poniżej.




 Code: html
<div class="blog-page-list-AJAXLOAD">
</div>
<script type="text/javascript"><!--
  $(function(){ 
  $blog_marking = $(".hotengine-marking[data-hotengine-marking-type='blog_catalog_page']");
  if(typeof $blog_marking !== typeof undefined && $blog_marking !== false && $blog_marking !='undefined' && $blog_marking !=''){
  
  $site_id = 'XXXX';
  $blog_cat_id = $blog_marking.attr("data-hotengine-marking-blog_cat_page_catid");

 var $onpage = "4"; 
  var $param = ':blog_page_slider:htmlonly:cat_id-'+$blog_cat_id+':site-'+$site_id+':start-0:on_page-'+$onpage+':description:append:id-hotengine-blog-page-list-AJAXLOAD';
  $('.blog-page-list-AJAXLOAD').html('<div id="hotengine-blog-page-list-AJAXLOAD" style="display:none;"><div class="hotengine-blog-page-list-div hotengine-blog-page-list-div-append" data-hotengine-blog-page-list-param="'+$param+'" data-blog_limits="'+$onpage+'"><span class="hotengine-blog-page-list-div-button-left hotengine-blog-page-list-div-button hotengine-blog-page-list-append" data-site-id="'+$site_id+'" data-blog_limits_start_n="0"></span><span class="hotengine-blog-page-list-content"></span><span class="hotengine-blog-page-list-div-button-right hotengine-blog-page-list-div-button hotengine-blog-page-list-append" data-site-id="'+$site_id+'" data-blog_limits_start_n="0"></span></div></div>');
  
  
  $("#hotengine-blog-page-list-AJAXLOAD .hotengine-blog-page-list-content").load("/ajax_get_list_blog.php?c="+$site_id+"&n=0&onpage="+$onpage+"&param="+$param , function(){
$(".hotengine-blog-page-list-content-loading").hide("fast", function(){ 
  $(".hotengine-blog-page-list-content-loading").remove(); 
  }); 
  
  
  if($("#hotengine-blog-page-list-AJAXLOAD .hotengine-blog-page-list-content").is(':not(:empty)')  && $("#hotengine-blog-page-list-AJAXLOAD .hotengine-blog-page-list-content .hotengine-blog-product-list-block-empty").length < 0){
  $("#hotengine-blog-page-list-AJAXLOAD").show(); 
  }
  
  }); 

 
  }
});
  //--></script>


Ten kod ładuje artykuły, na przykład za pomocą «Generatora bloków/menu, suwaka z artykułami». W tym skrypcie ładowanie następuje z zastąpieniem kategorii nadrzędnej listy artykułów, która jest określana za pomocą mikrodanych.
XXXX — ID witryny.
$onpage - ilość artykułów na jednej stronie (slajd)
$blog_cat_id - kategoria katalogu, która w przykładzie jest określona za pomocą mikrodanych z tego otwartego artykułu.
.blog-page-list-AJAXLOAD — blok, w którym ładowane są artykuły.


Ładowanie artykułu przy użyciu JavaScript w formacie JSON

Skrypt do ładowania artykułu w formacie JSON

Artykuły te są dostępne na żądanie /ajax.php?json&blog_cat_p=XX

  • XX - Identyfikator artykułu

Żądanie działa tylko wtedy, gdy na przykład określisz swoją domenę http://example.com/ajax.php?json&blog_cat_p=0


 Code:
<script type="text/javascript">
function decodeHtml(str)
  {
  var map =
  {
  '&amp;': '&',
  '&lt;': '<',
  '&gt;': '>',
  '&quot;': '"',
  '&amp;#039;': "'"
  };
  return str.replace(/&amp;|&lt;|&gt;|&quot;|&#039;/g, function(m) {return map[m];});
  }
$(function(){
  $.getJSON("/ajax.php?json&blog_cat_p=14675", function(blog){
   if(Object.keys(blog).length > 0){ 
    // full parameters console.log(blog);
    console.log(decodeHtml(blog.blog_cat_page_title_inpage));
    console.log(decodeHtml(blog.blog_cat_page_description));
    console.log(decodeHtml(blog.blog_cat_page_text));
    console.log(decodeHtml(blog.blog_cat_page_datestamp));
   } 
  });
});
</script>


Stylizacja filtra wyszukiwania (ukrywanie listy wartości po kliknięciu)

Jeśli chcesz ukryć/ujawnić wartości filtrów wyszukiwania, możesz użyć skryptu z poniższego przykładu. Skrypt zapisuje ID bloku z listą wartości do Cookies i wyświetla/ukrywa go zgodnie z opcją wybraną przez użytkownika.
Uwaga! Aby skorzystać z filtra wyszukiwania, najpierw utwórz «Typ produktu» i wprowadź wartości dla typu charakterystycznego. Ten skrypt jest zalecany dla «wiele wartości».



 Code: html
<script><!--
  /*FILTER STYLE*/
  $(function(){
$("#shop_catalog_product_types_id_ajax .shop_catalog_product_types_block").each(function(){
 if ($.cookie("scptbt"+$(this).attr("data-id"))){ 
  $(this).find(".shop_catalog_product_types_block_title").addClass("scptbt_ishidden");
  $(this).find(".shop_catalog_product_types_block_value").css({"max-height":"0px"});
  }
  })

$(document).on('click','#shop_catalog_product_types_id_ajax .shop_catalog_product_types_block_title',function(){
  var thise = $(this);
  var sptelem = $(this).next(".shop_catalog_product_types_block_value");
  if(sptelem.outerHeight() < 1){
  sptelem.css({"max-height":"unset"});
  thise.removeClass("scptbt_ishidden");
  if ($.cookie("scptbt"+thise.parent().attr("data-id"))){ $.cookie('scptbt' + thise.parent().attr("data-id"), null, {expires: null, path: '/'});	}
  } else {
  sptelem.css({"max-height":"0px"}); 
  thise.addClass("scptbt_ishidden");
  $.cookie('scptbt' + thise.parent().attr("data-id"), true, {expires: null, path: '/'}); 
  }
  
  
  })

})
  /*FILTER STYLE*/
  --></script>


Css styl nagłówka (ikona):

 Code: css
#search_smart_hotengine-search_form_block .shop_catalog_product_types_block_title:after{

position: relative;
    content: "";
    display: inline-block;
    top: -2px;
    left: 10px;
    width: 8px;
    height: 5px;

background:url('/templates/styles/menu_arrow/arrow_shop_filter_en.png') no-repeat;
}
.scptbt_ishidden:after{
 transform: rotate(270deg);
}



Tworzenie własnego sortowania listy produktów

Jeśli chcesz utworzyć własny formularz sortowania produktów, możesz to zrobić, przekazując zmienne GET. Poniżej znajdziesz instrukcję zapisywania wybranego sortowania w COOKIES, a także przykład implementacji sortowania. Aby szybko utworzyć sortowanie, możesz skorzystać z «Menu funkcjonalnego» - «Sortowanie produktów ". Do menu zostanie wstawiony formularz wyszukiwania, a także podstawowe pola do sortowania.


Do sortowania niestandardowego dostępne są następujące parametry GET:
«order_by»:
  • 0 - według identyfikatora produktu
  • 1 - według daty dodania produktu
  • 2 - cena przedmiotu
  • 4 - według nazwy produktu
  • 5 - według priorytetu produktu

«sort_by»:
  • 0 — Malejąco (DESC)
  • 1 — Rosnąco (ASC)

«sort_instock_priority»: (posortowane według priorytetu, pozycje w magazynie są wyższe niż pozycje niedostępne)

  • 0 - ignoruj ​​parametr
  • 1 - najpierw towary w magazynie i na zamówienie, potem te, których nie ma w magazynie. Następnie brane są pod uwagę opcje sortowania określone powyżej.
  • 2 - produkty, które są niedostępne jako pierwsze.

"cena_od" - cena od
"cena_do" - cena do
"producent" - producent (id lub nazwa producenta)
"kolekcja" - kolekcja (ID lub nazwa kolekcji)
"szukaj" - zapytanie wyszukiwania
"smart_search" - dane zapytania wyszukiwania z filtra wyszukiwania

Ponadto wartości, które są brane pod uwagę, jeśli określono wartość niepustą (na przykład «1»):
"shop_sale" - promocyjny,
"shop_new_goods" - nowe pozycje,
"shop_bestsellers" - bestsellery,
"shop_discount" - rabat,
"shop_reduced_price" - Obniżona cena,
"order_by_param" - dodatkowy parametr o dowolnej wartości do stworzenia własnej listy sortującej według nazwy lub wartości.

Gdy GET znajdzie zmienną «sort_by» w adresie otwartej strony, dane sortowania zostaną odpowiednio ustawione. Jeśli strona z listą produktów jest otwarta, wówczas wartości zostaną uzupełnione z linku elementu «.hotengine-pagination-current». Ponadto po otwarciu posortowanej strony zostaną utworzone pliki cookie zapamiętujące opcje wybrane przez użytkownika. Skrypt realizujący tę funkcję, który jest również instalowany podczas tworzenia funkcjonalnego menu sortowania, znajduje się w /templates/scripts/hotengine -script-sort-shop-products.js.

Spójrz na przykład tworzenia sortowania z własnymi wartościami.

Można to zrobić za pomocą dodatkowego parametru «order_by_param», którego wybranie spowoduje zmianę wartości pól «order_by», «sort_by» i innych.
Ustawmy jedno pole (#order_by_param) z wyborem opcji i pozostaw liczbę wyświetlanych produktów.


Utwórz «Blok/Menu», lokalizacja «na górze».
Nazwa bloku/menu: hotengine_sort_products
Nagłówek/menu bloku: hotengine_sort_products
Pozycja bloku/menu: Góra
Pokaż blok/menu na stronach: wszędzie
Wprowadź znaki, po wykryciu których wyświetli się blok/menu: (bez spacji)
/pers_shop/ /producer/ /collection/ /shop/

Wprowadź znaki, które, jeśli zostaną znalezione, nie wyświetlają bloku/menu: (bez spacji)
.htm
Tekst menu:
 Code:
<form id="hotengine-sort-products-generated" name="hotengine-sort-products-generated" method="get" action="">
 <span>

<label>
<select name="order_by_param" id="order_by_param">
<option value="none">Sortować</option>
<option value="lowtohight">Od tanich do drogich</option>
<option value="highttolow">Od drogiego do taniego</option>
<option value="new">Nowy</option>
<option value="sales">Promocyjny</option>
<option value="date">Według daty</option>
</select>
</label>

<div class="hidden">
<select name="shop_new_goods" id="shop_new_goods"><option value=""><option value="1"></select>
<select name="shop_sale" id="shop_sale"><option value=""><option value="1"></select>

 <label>
 <select name="sort_by" id="sort_by"> 
 <option value="ASC">Sortować:</option>
 <option value="ASC">Rosnąco</option>
 <option value="DESC">Malejąco</option>
 </select>
 </label>
<label>
 <select name="order_by" id="order_by"> 
 <option value="5">Sortować:</option>
 <option value="0">Według ID produktu</option>
 <option value="4">Nazwa</option>
 <option value="1">Według daty</option>
 <option value="2">Według ceny</option>
 </select>
 </label>
</div>
<label>
 <select name="NUM_ONPAGE" id="NUM_ONPAGE" onchange="this.form.submit()"> 
 <option value="10">10</option>
 <option value="20">20</option>
 <option value="30">30</option>
 <option value="50">50</option> 
 </select>
 </label>
 <input class="smart_search" name="smart_search" type="hidden" value="">
 <input class="search" name="search" type="hidden" value="">
 </span>
 </form> 
 
 
<script>
$(function(){
$(document).on("change","#order_by_param",function(){
if($(this).val()=="lowtohight"){
$('#hotengine-sort-products-generated select[name="order_by"]').val("2").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="sort_by"]').val("ASC").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_new_goods"]').val("").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_sale"]').val("").prop('selected',true); 
} else if($(this).val()=="highttolow"){
$('#hotengine-sort-products-generated select[name="order_by"]').val("2").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="sort_by"]').val("DESC").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_new_goods"]').val("").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_sale"]').val("").prop('selected',true); 
} else if($(this).val()=="date"){
$('#hotengine-sort-products-generated select[name="order_by"]').val("1").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="sort_by"]').val("DESC").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_new_goods"]').val("").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_sale"]').val("").prop('selected',true); 
} else if($(this).val()=="sales"){
$('#hotengine-sort-products-generated select[name="order_by"]').val("1").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="sort_by"]').val("DESC").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_new_goods"]').val("").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_sale"]').val("1").prop('selected',true); 
} else if($(this).val()=="new"){
$('#hotengine-sort-products-generated select[name="order_by"]').val("1").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="sort_by"]').val("DESC").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_new_goods"]').val("1").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_sale"]').val("").prop('selected',true); 
} else if($(this).val()=="none"){
$('#hotengine-sort-products-generated select[name="order_by"]').val("5").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="sort_by"]').val("ASC").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_new_goods"]').val("").prop('selected',true); 
$('#hotengine-sort-products-generated select[name="shop_sale"]').val("").prop('selected',true); 
}
$(this).closest("form").submit();
});
});
</script>

 <script type="text/javascript" src="/templates/scripts/hotengine-script-sort-shop-products.js"></script>


 


CSS styl do sortowania (dodaj w edytorze projektów do stylów css):
 Code:
.menu_position_top_000000 #menu_c .headm{ display:none; }
.menu_position_top_000000 #menu_c { border: none; background: none; text-align: right;}
.menu_position_top_000000 #menu_c select { 
 background: transparent; 
 padding: 5px 8px 5px 5px; 
 font-size: 12px;
 line-height: 1;
 border-radius: 2px;
 height: 24px;
 -webkit-appearance: none;
 overflow: hidden;
 background: url(/templates/styles/menu_arrow/arrow-down.svg) no-repeat 95%; background-size: 16px;

 }
 .menu_position_top_000000 #menu_c select[name="NUM_ONPAGE"] { background:none;}
 .menu_position_top_000000 #menu_c span:before{ content:"Sortować:"; display:inline-block; padding: 5px; font-size: 12px; }
 
 @-moz-document url-prefix(){ 
 .menu_position_top_000000 #menu_c select {
  padding:0px!important;
  background:none!important;

 }

}
 

Gdzie 000000 należy zastąpić identyfikatorem utworzonego menu z kodem rozliczeniowym.



Zmiana pola «order_by_param» spowoduje zmianę wartości sortowania i przesłanie formularza. Do Formularza dodano pola sortowania, w tym «Nowość» i «Promocja». Pola są ukryte, ponieważ wizualnie używana będzie tylko osobna lista «order_by_param» oraz liczba wyświetlanych produktów. Po przesłaniu formularza Wartości zostaną zapisane w PLIKU COOKIE.

Ładowanie wózka po najechaniu

Jeśli chcesz wyświetlić zawartość koszyka po najechaniu kursorem na ikonę koszyka, możesz włączyć tę opcję «Krótkie + Treść po najechaniu myszką» w «Ustawienia», patka «Sklep» - «Projekt wózka». Lub wykonaj połączenie GET pod wskazany adres «/ajax.php?cart&load_cart_ajax»
JavaScript wyświetlić zawartość koszyka:

 Code:
<script type="text/javascript" src="/templates/scripts/hotengine-script-cart-hover-block.js"></script>


CSS styl:
 Code:
/*CART HOVER BLOCK*/
#hotengine-cart_menu-hover-block{position:absolute; z-index:99; background:#fff; color:#444; border:1px solid #C7C7C7; padding:20px; display:block; width:50%; display:none; text-align:left;}
#hotengine-cart_menu-hover-block:before{ content:""; height:15px; width:100%; display:block; position:absolute; top:-10px; left:0px; z-index:99999;  }
#hotengine-cart_menu:hover + #hotengine-cart_menu-hover-block{ display:block; }
#hotengine-cart_menu-hover-block:hover{display:block; }
#hotengine-cart_menu-hover-block .hotengine-cart_menu-hover-block-close:after {
    content: "x";
    background: rgb(255,255,255);
    background: radial-gradient(circle,rgba(255,255,255,0) 0%,rgba(182,182,182,1) 100%);
    oveflow: hidden;
    border-radius: 50%;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    width: 15px;
    height: 15px;
    position: absolute;
    right: 5px;
    top: 5px;
    line-height: 14px;
    text-align: center;
    color: #656565;
    cursor: pointer;
    opacity: 0.8;
    font-size: 9px;
}
/*CART HOVER BLOCK*/

Skrypt wyświetla dodatkowy blok w przypadku znalezienia pozycji w koszyku i najechania na nie kursorem myszy «#hotengine-cart_menu» (koszyk w bloku/menu strony).




Obrazy podrzędne karty produktu

Ładowanie listy zdjęć produktów

Dla każdej karty produktu możesz otrzymać listę osadzonych obrazów w formacie JSON. Aby to zrobić, musisz wysłać zapytanie do strony «/ajax.php?get_shop_images=PATH», gdzie PATH to ścieżka do dowolnego obrazu produktu lub identyfikatora produktu.

Ładowanie listy zdjęć produktów w wyskakującej galerii Colorbox:

Aby dodać ikonę, po kliknięciu pojawi się galeria colorbox, przewijając wszystkie obrazy dostępne w produkcie. Dodaj następujący skrypt do Bloku/Menu:
 Code:
<script type="text/javascript" defer src="/templates/scripts/hotengine-script-shop-load-images-product.js"></script>


CSS styl ikony:
 Code:
/*CHILD IMAGES SHOW POPUP IN SHOP LIST*/
.hotengine-shop-product-img-load-list {
    background: url(/templates/styles/mobile/search.png) no-repeat center center;
    width: 18px;
    height: 18px;
    position: relative;
    z-index: 5;
    background-size: contain;
}
/*CHILD IMAGES SHOW POPUP IN SHOP LIST END*/

Wyświetlaj obrazy potomne na liście produktów za pomocą przycisków przewijania listy obrazów:

Jeśli chcesz wyświetlić obrazy potomne na liście produktów, włącz opcję «Zainstalowane obrazy na liście produktów». w ustawieniach sklepu, w zakładce «Widok produktu / Zakładki / Odmiany». Dodaj następujący skrypt do bloku/menu:
 Code:
<script type="text/javascript" defer src="/templates/scripts/hotengine-script-shop-images-child-in-list.js"></script>


CSS styl:
 Code:
/*CHILD IMAGES SHOW IN SHOP LIST*/
.hotengine-imgchenge { position:absolute; z-index:2; padding:4px; font-size:20px; display:inline-block;  background: #858585;
    color: #fff;
    border-radius: 50%;
    height: 20px;
    width: 20px; line-height:20px; top: 50%; cursor:pointer; margin:-10px 5px 5px 5px; opacity:0;}
.hotengine-imgchenge-left {left:0px;} 
.hotengine-imgchenge-left:after{content:"<";}
.hotengine-imgchenge-right {right:0px;} 
.hotengine-imgchenge-right:after{content:">";}
.hotengine-shop-product-list-block:hover .hotengine-imgchenge{ opacity:1; -webkit-transition: opacity 1s ease-in-out;
  -moz-transition: opacity 1s ease-in-out;
  -ms-transition: opacity 1s ease-in-out;
  -o-transition: opacity 1s ease-in-out;
  transition: opacity 1s ease-in-out;}
/*CHILD IMAGES SHOW IN SHOP LIST END*/

Jeśli produkt zawiera obrazy potomne, skrypt wyświetla przyciski do ich przewijania, do przodu i do tyłu.

Wyświetl obrazy podrzędne na liście produktów: Wymiana obrazu po najechaniu kursorem:

Jeśli chcesz wyświetlić obraz dziecka po najechaniu kursorem na listę produktów, włącz opcję «Zainstalowane obrazy na liście produktów». w ustawieniach sklepu, w zakładce «Widok produktu / Zakładki / Odmiany». Dodaj następujący skrypt do Bloku/Menu:
 Code:
<script type="text/javascript" defer src="/templates/scripts/hotengine-script-shop-images-child-in-list-hover.js"></script>


Skrypt menu rozwijanego

Skrypt menu rozwijanego (domyślnie)

Domyślnie można dostosować sposób wyświetlania elementów podrzędnych w menu głównym. Można to zrobić w «Edytorze projektu», w zakładce «Menu główne» lub podczas zmiany elementów menu głównego w sekcji «Moje bloki/menu».

Podczas zmiany parametrów do elementu «id="hotengine-mainmenu"» zostaną dodane odpowiednie klasy.

  • «.hotengine-mainmenu-dropdown-default» - listy rozwijane domyślnie
  • «.hotengine-mainmenu-categories-popup» - wyskakujące okienko z pozycjami menu na całą szerokość strony
  • «.hotengine-mainmenu-categories-column» – rozwijane okno z pozycjami menu na całej szerokości strony
W celu poprawnego użycia skryptów elementom listy zawierającym podpozycje przypisywana jest klasa «.hotengine-mainmenu-dropdown».
Wyłączając te skrypty w opcjach menu głównego lub usuwając powyższe klasy, możesz ustawić własny kod zdarzenia lub style CSS po najechaniu myszką.

Poniżej przedstawiono przykłady skryptów, które aktywują te elementy podrzędne listy rozwijanej dla menu głównego i są domyślnie wbudowane.
Domyślne menu rozwijane
 Code:
<script type="text/javascript">
$(function(){
if(!$(".hotengine-mainmenu-categories-popup").length && !$(".hotengine-mainmenu-categories-column").length && $(".hotengine-mainmenu-dropdown-default").length && $("#hotengine-mainmenu .hotengine-mainmenu-dropdown").length){ 
if(typeof $hotengine_mainmenu_categories_dropdown == "undefined"){
$.getScript("/templates/scripts/hotengine-script-mainmenu-categories-dropdown.js"); 
}
}
});
</script>

Wyskakujące okno
 Code:
<script type="text/javascript">
$(function(){
if($(".hotengine-mainmenu-categories-popup").length && $("#hotengine-mainmenu .hotengine-mainmenu-dropdown").length){
if(typeof $hotengine_mainmenu_categories_popup == "undefined"){
$.getScript("/templates/scripts/hotengine-script-mainmenu-categories-popup.js");
}
}
});
</script>

Zrzucanie okna
 Code:
<script type="text/javascript">
$(function(){
if($(".hotengine-mainmenu-categories-column").length && $("#hotengine-mainmenu .hotengine-mainmenu-dropdown").length){ 
if(typeof $hotengine_mainmenu_categories_popup_column == "undefined"){
$.getScript("/templates/scripts/hotengine-script-mainmenu-categories-popup-column.js"); 
}
}
});
</script>
Skrypt po załadowaniu Automatyczne opisy

Skrypt dodawania przycisku «Kup» po załadowaniu Automatyczne opisy na karcie produktu

Jeśli korzystasz z autoopisów w krótkiej formie, po kliknięciu «Czytaj więcej» możesz dodać przycisk «Kup» oraz cenę.
Po załadowaniu tekstu zostanie wykonana funkcja wywołania zwrotnego «callback_hotengine_shop_autodescription_readmore».

 Code:
<script type="text/javascript">
function callback_hotengine_shop_autodescription_readmore($id,$job){ 
  if($job=="load"){
 var clone = $(".hotengine-shop-product-offerdetails .hotengine-shop-product-cart_icon").clone();
  var priceblock = $(".hotengine-shop-product-offerdetails .hotengine-shop-product-price_box").clone();
  $(".hotengine-store-autodescription-block .hotengine-store-autodescription-list-block[data-hotengine-marking-id=\""+$id+"\"] .hotengine-store-autodescription-fulltext").append([priceblock,clone]);
  
  }
}
</script>
Json ładowanie towarów

Skrypt do ładowania karty produktu w formacie JSON

Dane karty produktu dostępne na życzenie /ajax.php?json&shop_products

Podczas rozładunku towaru możesz określić opcje sortowania i filtrowania według następujących parametrów:
  • id - identyfikator karty produktu (jedna lub więcej wartości oddzielonych przecinkami).
  • pers_shop_cat_page_catid - identyfikator kategorii sklepu (jedna lub więcej wartości oddzielonych przecinkami)
  • producer - producent (jedna lub więcej wartości oddzielonych przecinkami)
  • collection - kolekcja (jedna lub więcej wartości oddzielonych przecinkami)
  • sort_by - sortowanie
  • order_by - sortowanie
  • sort_instock_priority - priorytet sortowania
  • price_from - cena od
  • price_to — cena do
  • stock - dostępność

Żądanie działa tylko na przykład z Twoją domeną http://example.com/ajax.php?json&shop_products&id=0


 Code:
<script type="text/javascript">
function decodeHtml(str)
  {
  var map =
  {
  '&amp;': '&',
  '&lt;': '<',
  '&gt;': '>',
  '&quot;': '"',
  '&amp;#039;': "'"
  };
  return str.replace(/&amp;|&lt;|&gt;|&quot;|&#039;/g, function(m) {return map[m];});
  }
$(function(){
  $.getJSON("/ajax.php?json&shop_products&id=12345,12346", function(offers){
   if(Object.keys(offers).length > 0){ 
    // full parameters console.log(offers);
    $.each( offers.offers, function(z, items){ 
      $.each(items, function(i, item){ 
        console.log(decodeHtml(item.description)); //show description with htmldecode
        console.log(decodeHtml(item.text)); //show text with htmldecode
      });
    });
   } 
  });
});
</script>
Ukrywanie/pokazywanie cech w opisie produktu

Ukryj/pokaż funkcje w opisie produktu

W karcie produktu dostępne jest wyświetlanie Charakterystyki. Blok może zawierać długą listę, więc możesz użyć skryptu, aby ukryć niektóre cechy. Aby to zrobić, utwórz blok/menu i wklej następujący skrypt:
 Code:
<script type="text/javascript" defer src="/templates/scripts/hotengine-script-hide-properties.js"></script>

Skrypt można zmienić, określając liczbę domyślnie wyświetlanych pól. Aby to zrobić, skopiuj Skrypt z pliku i wklej go do Bloku/Menu.

Styl css przycisku:
 Code:
/*SHOW/HIDE PROPERTIES*/
.shop_catalog_product_properties_block_showblock{text-align:left; margin-bottom:40px;}
.shop_catalog_product_properties_block_showblock:before{
    content: "Pokaż wszystkie cechy"!important;
    white-space: nowrap;
    cursor: pointer;
    white-space: nowrap;
    text-align: center;
    height: auto;
    border-radius:0px;
    margin: 5px auto 5px auto;
    font-size: 15px;
    padding: 4px 4px;
    border-bottom: 1px dashed #666666;
    margin-left:19px;
    display: inline-block;
}
html:lang(en) .shop_catalog_product_properties_block_showblock:before{
    content: "Show all characteristics"!important;
}
html:lang(ru) .shop_catalog_product_properties_block_showblock:before{
    content: "Показать все характеристики"!important;
}
html:lang(uk) .shop_catalog_product_properties_block_showblock:before{
    content: "Показати всі характеристики"!important;
}
html:lang(pl) .shop_catalog_product_properties_block_showblock:before{
    content: "Pokaż wszystkie cechy"!important;
}

html:lang(en) .shop_catalog_product_properties_block_showblock.visible:before{
    content: "Hide"!important;
}
html:lang(ru) .shop_catalog_product_properties_block_showblock.visible:before{
    content: "Скрыть"!important;
}
html:lang(uk) .shop_catalog_product_properties_block_showblock.visible:before{
    content: "Приховати"!important;
}
html:lang(pl) .shop_catalog_product_properties_block_showblock.visible:before{
    content: "Ukrywać"!important;
}


.shop_catalog_product_properties_block_showblock:hover:before{
    color:#008fc3;
    border-color: #008fc3;
}
/*SHOW/HIDE PROPERTIES END*/


Menu mobilne. Dodanie przycisku menu mobilnego i aktywacja przy zmianie rozmiaru ekranu

Dodanie przycisku menu mobilnego do nagłówka witryny i aktywacja przy zmianie rozmiaru ekranu.

Jeśli chcesz używać przycisku mobilnego bez konieczności dodawania górnej płytki, a jednocześnie wyświetlać przycisk mobilny tylko przy określonej wielkości ekranu, skorzystaj z funkcji «Zamień przycisk menu mobilnego» w zakładce «Aktywacja menu», w «Widgecie menu mobilnego». Określ «.mobile_left_menu_slide_btn» w pozycji «Zamień przycisk menu mobilnego». Dzięki temu możesz umieścić element (przycisk) w nagłówku swojej witryny i wyświetlić go np. na ekranie o wielkości mniejszej niż 900px.

Kod HTML przycisku (umieść go w odpowiednim miejscu w nagłówku strony):
 Code:
<div class="mainmenu-mobile-outer mobile_left_menu_slide_btn"><span class="mainmenu-mobile-icon"><span></span><span></span><span></span></span><span class="mainmenu-mobile-button-text"></span></div>
Przykład stylu CSS do wklejenia do edytora projektów:
 Code:
/*MOBILE BUTTON*/

.mainmenu-mobile-outer {display:block; position:relative; width:46px; min-height:inherit; height:auto;  color:inherit; background:inherit; display:none;}
.mainmenu-mobile-outer .mainmenu-mobile-button-text {line-height:inherit; display:inline-block; text-indent:80px; color:inherit;  background:inherit;}
.mainmenu-mobile-outer .mainmenu-mobile-icon{ 
    display: inline-block;
    cursor: pointer;
    padding: 3px;
    background-color:# 4c4c4c;  
    border-radius: 4px;
    color: #000;
    width: 40px;
    height: 20px;
    text-align: center;
    box-sizing: unset;
}
.mainmenu-mobile-outer .mainmenu-mobile-icon span {
    display: block;
    height: 1px;
    background: #D7D7D7;
    margin: 4px auto;
    width: 60%;
}


/*MOBILE BUTTON*/
@media (max-width:900px) { .mainmenu-mobile-outer { display:inline-block;} }
Przycisk będzie wyświetlany tylko wtedy, gdy rozmiar ekranu jest mniejszy niż 900 pikseli.


Alternatywną opcją jest dodanie elementu, po którym następuje kod przycisku, jeśli rozmiar ekranu jest mniejszy niż 900 pikseli. Utwórz blok/menu, zaznacz pole JavaScript i wklej następujący kod:
 Code:
/*MOBILE BUTTON ADD */
  $(function(){
  $(window).on('resize load', function() {
  if($(window).width()<900){
if($(".mobile_left_menu_slide_btn").length < 1){
  $(".mainmenu-mobile-icon-insert-here").after('<div class="mainmenu-mobile-outer mobile_left_menu_slide_btn"><span class="mainmenu-mobile-icon"><span></span><span></span><span></span></span><span class="mainmenu-mobile-button-text"></span></div>');
}
  } 
  } else { 
  $(".mobile_left_menu_slide_btn").remove();
  } //900
  
  });
  });
/*MOBILE BUTTON ADD */

Teraz w nagłówku witryny musisz utworzyć element «.mainmenu-mobile-icon-insert-here», po którym zostanie wstawiony przycisk menu mobilnego, jeśli rozmiar ekranu jest mniejszy niż 900 pikseli.
 Code:
<span class="mainmenu-mobile-icon-insert-here"></span>
Z powyższego przykładu można zastosować styl CSS przycisku mobilnego.