logo
21.10.2020 22:17
1
Nějak si nevím rady, proč zmizí DIV u rotátoru náhledů produktů (carouselu) ve spodní části stránky, když použiji filtraci (po levé části stránky). Používám PS 1.7 a na rotátor je použit Owl carousel.

Je možno otestovat zde:
https://test.darujpoukaz.cz/cviceni

V Google konzoli se správně u Owl carousel zobrazuje tento kód:

Kód:
<div class="carousel_content owl-carousel owl-theme owl-loaded owl-drag">
   <div class="owl-stage-outer">
      <div class="owl-stage" style="XY">
         <div class="owl-item cloned" style="width: 440px; margin-right: 10px;">
            <article class="dpcz-product product-miniature js-product-miniature".....>

Pokud se ale použije filtrace, kód se změní na:

Kód:
<div class="carousel_content ">                                                           
    <article class="dpcz-product product-miniature js-product-miniature".....>

Většina DIV zmizí a carousel přestane fungovat.

Můžete mi prosím někdo poradit, kde hledat chybu? Děkuji moc.
22.10.2020 09:18
2
Není mizející DIV ale resetne se ti obsah, takže owl carousel není spuštěný.

Když nastavíš filtr, tak celej obsah se přenačte znova pomocí JS. A jelikož to je v defaultním stavu obsah, nenastartoval se znova owl carousel ...
22.10.2020 11:49
3
Mohu se prosím zeptat, jak docílím toho, aby se znova Carousel nastartoval?

Soubor modulu v kořenovém adresáři modulu "yetanotheradvancedsearch.php" volá tento soubor, který to celé způsobí:
http://test.darujpoukaz.cz/modules/y...ancedsearch.js

Děkuji moc za jakoukoliv pomoc.

---------- Příspěvek doplněn 23.10.2020 v 11:50 ----------

V hlavním souboru carousel modulu jsem dohledal:

Kód:
public function hookDisplayHeader()
{
$this->context->controller->addJS($this->_path.'views/js/cp.owl.carousel.js');
}
Zkusil jsem tedy do hlavního php souboru od modulu product filter přidat toto, ale bohužel se to nerozjelo:

Kód:
public function hookDisplayHeader()
{
$this->context->controller->addJS($this->_path.'../hicarouselspack/views/js/cp.owl.carousel.js', 'all');
}
Daný soubor .js ovládá to rolování, to jsem si již ověřil a cestu z jednoho adresáře modulu do jiného doufám, že mám správně. Ovšem carousel se nespustil :(
23.10.2020 12:00
4
Ty nepotřebuješ soubor, ale funkci. V kodu jsou atributy, který se nastavují při spuštění. Takže tam někde musí bejt funkce, která se volá. Ale to není investigace na 5 minut, ale tak hodinu (já ten systém neznám ... někdo kdo zná by to třeba udělal rychleji).

---------- Příspěvek doplněn 23.10.2020 v 12:01 ----------

Funkci myslím v JS. Například:

Kód:
$('.carousel_content').owl();
23.10.2020 12:23
5
V tomto .js jsem našel danou funci:
http://test.darujpoukaz.cz/modules/h...wl.carousel.js

Kód:
function Owl(element, options)
Když ji ale takto přidám do hlavního .js souboru od product filter modulu, tak se carousel sice spustí, ale naopak přestane fungovat ta filtrace produktů. Netušíte, čím to může být?

Soubor .js, kam jsem to zkoušel přidat a rozběhlo se to, ale přestal fungovat filtr:

http://test.darujpoukaz.cz/modules/y...ancedsearch.js
04.11.2020 16:40
6
Co se týká těch 2 modulů, tak ten filtr tedy nenačítá žádnou svou šablonu, používá AJAX a pomocí něj jen načte vyfiltrované produkty do stávající šablony. Zde problém není. Jelikož AJAX používá i Carousel, tak se navzájem ovlivňují. Jde tedy o to, aby při použití filtrace produktů pomocí AJAXU fungovala i funce Carouselu, která používá také AJAX. Jen nevím, jak to v hlavním .js souboru modulu filtru provést, aby se načetl i AJAX Carouselu a nevypl ho.