Jump to content

PRESTA 1.6.1.24 - nie wyświetlają się produkty na stronie głównej!


MindFlyer

Recommended Posts

Cześć,

Mam problem i już nie wiem jak to ogarnąć - probowałem prawie wszystkiego, ale od początku.

 

Był sobie sklep w wer. 1.5 z art. wirtualnymi, dru.gi sklep na shopperze (sprzed 15 lat, z tymi samymi artykułami, tylko już w wersji fizycznej - głównie książki i płyty) chciałem przerobić (za pośrednictwem multisklepu) na PRESTĘ, więc pomyślałem, że najpierw zaktualizuję wersję PRESTY. Chciałem zrobić upgrade na 1.7.5, ale... WSZYSTKO się wysypało. Dłuższą chwilę to trwało, ale udało się odzyskać cały sklep za pomocą kopii technicznej hostingu. Następnie zrobiłem bezpieczny upgrade do wer. 1.6.1.24

Następnie udało się zrobić dru.gi sklep jako multi - i tu pojawił się kolejny problem - przy imporcie KATEGORII do nowego sklepu niestety przypadkowo zostały usunięte kategorie sklepu z art. wirtualnymi. Ręcznie udało mi się je wstawić ponownie, przyporządkowałem produkty (na szczęście nie było tego dużo) i ... teoretycznie działa. Tzn produkty widać w kategoriach, kategorie widać w sklepie, wszystko się ładnie i wyszukuje i znajduje, ale... Zniknęły wszystkie produkty ze strony głównej - NIC się nie wyświetla - a powinny zgodnie z wcześniej zainstalowanymi modułami pokazywać się produkty nowe i produkty polecane.

Konfiguracje modułów z wyświetlaniem produktów na stronie głównej nie pomaga. Odinstalowanie i zainstalowanie ponowne również. Ktoś ma jakiś pomysł gdzie i o co może chodzić? To wygląda tak, jakby te stare kategorie nie do końca zostały usunięte i gdzieś PRESTA widzi te stare, a nie nowe już? Sam nie wiem... W phpmyadmin baza danych pokazuje i stare kategorie i nowe patrząc po nr id (stare, przypadkowo usunięte miały id od 3 do 89, teraz aktualnie wstawione i widoczne w panelu admina presty mają id od 90 do 122, ale w bazie danych są wszystkie widoczne.) Czy to presta gdzieś w plikach ma złe odwołania do id kategorii, czy jeszcze coś innego? Pomóżcie!

 

Z góry dzięki za pomoc i podpowiedzi,

Pozdrawiam,

M.

Edited by MindFlyer (see edit history)
Link to comment
Share on other sites

no tak krok po koku to musialbym cie nauczyc programowania.... bez tego to niemam co liczyc na wieksze efekty. raz, trzeba wiedziec co i gdzie zmodyfikowac, dwa, powienic wiedzic jak odczytac bledy, juz o poprawkach nie wspomne....

musisze wejsc w kontroler modulu i w miejscu gdzie badane sa produkty do wysweitlania (przekazywane do szablonu modulu) wrzucic powyzsze badanie zmiennej var_dump() czy print_r(), wtedy zobaczysz dokladnie co zwraca ci do szablonu. jezeli w tym miejscu wszystko bedzie sie zgadzalo i beda przekierowywane produkty poprawnie to musisz wtedy zbadac czy w ogole wyswietla szablon, czyli czy w szablonie jest odpowiedni hook zapisany.

 

Link to comment
Share on other sites

Ja wszystko rozumiem, ale każdy kiedyś 'zaczyna'. Nie pracowałem wcześniej z PRESTĄ - pomagam teraz koledze i nie proszę o darmową naukę programowania, a o proste wskazanie gdzie czego można szukać i jak naprawić? Mam w ciemno szukać w 30.000 plików? Bo nawet nie wiem gdzie szukać i jak wrzucić badanie zmiennej (czy w debugu, czy jakiejś konsoli, panelu admina, czy to jakaś zabawa plikami na serwerze?)

Zaczepy sprawdziłem i (z tego, co sam rozumiem jest wszystko ok). Ponadto jeden z modułów do wyświetlania produktów polecanych wyświetla się - tzn jest belka info z napisem "POLECANE" - ale brak tam produktów, chociaż oczywiście są one widoczne w samej kategorii 'polecane' i w innych kategoriach również - tylko widać ten moduł pobiera sobie produkty z innej, nieistniejącej kategorii (?)

Chyba faktycznie trzeba sprawdzić co i skąd pobiera moduł (zarówno 'Polecane produkty na stronie głównej', jak i 'Nowe produkty na stronie głównej' - bo żaden nic nie wyyświetla) - tylko naprawdę nie wiem jak się do tego zabrać nie znając PRESTY - jestem w sumie świeżak i dopiero poznaję ten system...A jak nie nauczę się od Was, to od kogo niby mam?

Aktualnie są aktywne dwa moduły do produktów polecanych (PrestaShop 1.8.1 i Posthemes 1.1) - żaden nie wyświetla żadnych produktów. Ten od Presty konfigurowany na różne sposoby nie przynosi żadnych efektów, ten posthemes nie ma zbyt wiele do konfigurowania :/. Usunięcie któregokolwiek nic nie daje, ponowna instalacje, czy pojedyncze uruchamienie też nie...

Do wyświetlania produktów nowych na głównej jest Posthemes 1.1, też nie pokazuje nic (produkty są widoczne jako 'nowe' w kategoriach, ale na głównej już się nie wyświetlają...

Nadmieniam, że wszystko działało jeszcze kilka dni temu bez zarzutu - do momentu ręcznej reorganizacji kategorii. Teraz kategorie są te same, ale z innymi id - ale wszystkie produkty są od nowa właściwie przypisane do odpowiednich kategorii (Również do 'strona główna' i 'polecane')

Chcę się tym pobawić, nikogo nie proszę o wyręczenie - tylko wskazanie sposobu. Raz jeszcze z góry dziękuję za wszelkie wskazówki i pomoc.

Link to comment
Share on other sites

nikt nie kaze ci szukac w 30tys ilokow, na samym poczatku juz wspomnialem, ze musisz szukac i zbadac pliki kontrolerow w danych modulach. to juz ogranicza sie do jednego pliku na modul... teraz juz wiecej, bo jak piszesz, do samych polecanych masz juz dwa na stornie. z tego co pamietam to w oryginalnym module masz do wybory kategorie, z ktorej produkty ma wyswietlac, moze ta kategoria nie jest zybrana, albo wybrana jest zle. a w ogole jak usunales wszstkie kateogrie to przywrociles rowniez root (Id=1) i home (id=2) ?

 

a odnosnie badania zmiennych starczy to co masz napisane wrzucic w google i dostajesz idpowiedz jak uzyc np.

https://www.php.net/manual/en/function.var-dump.php

 

Link to comment
Share on other sites

Cześć,

Badanie zmiennej nic nie zwraca, nie wiem czy dobrze to robię... :/ 

W module od POSTHEMES faktycznie istnieje możliwość konfiguracji i próbowałem wszystkiego - różnych id kategorii, wpisywałem też pozycje, próbowałem różne kategorie (w których są oczywiście produkty) i dalej nic. Ale moduł wyświetla się prawidłowo - tzn jest na stronie głównej  belka POLECANE PRODUKTY, ale poniżej już pustka.

Produktów oznaczonych jako NOWE też na głównej stronie nie ma...

Moduł od PRESTA jest niewidoczny i nie da się tam skonfigurować wyboru kategorii.

ROOT jest widoczny jako id=1, Strona główna id=2 i pod STRONĄ GŁÓWNĄ są wszystkie inne kategorie...

 

Dalej nie wiem gdzie pies pogrzebany :/

Nie jestem specem od programowania i php, żeby prześledzić plik i sprawdzić co gdzie i jak :(

Jeśli możliwe, proszę o dalsze podpowiedzi. Oczywiście mogę zamieścić jakieś screeny, czy kody plików, tylko muszę wiedzieć co by się przydało do zobaczenia?

 

Dzięki raz jeszcze za pomoc :/

Link to comment
Share on other sites

bez zbadania zmiennej getProducts - co zwraca, czy zwraca i dlaczego nie, zadne screeny nie pomoga. moze masz usunieety hook Tabs lub moduly nie sa do niego przypisane ? przyczyn moze byc wiele, ale to juz trzeba by sie zaglebic w kodowanie i przesledzic cala sciezke pobierania i zwracania produktow do modulu oraz jego samego wyswietlania

Link to comment
Share on other sites

Debug pokazuje jeszcze coś takiego (może tu coś się wykrzaczyło?)

Notice: Undefined property: Possearchcategories::$_html in /public_html/modules/possearchcategories/possearchcategories.php on line 260

 

Poniżej ten fragment kodu z zaznaczonym wierszem 260.

 

	private function getCategoryOption($id_category = 1, $id_lang = false, $id_shop = false, $recursive = true) {
		$id_lang = $id_lang ? (int)$id_lang : (int)Context::getContext()->language->id;
		$category = new Category((int)$id_category, (int)$id_lang, (int)$id_shop);
		if (is_null($category->id))
			return;
		if ($recursive)
		{
			$children = Category::getChildren((int)$id_category, (int)$id_lang, true, (int)$id_shop);
			if($category->level_depth=='1'){
				$spacer='';
			}else{
				$spacer = str_repeat('-', $this->spacer_size * (int)$category->level_depth);
			}

		}
		$shop = (object) Shop::getShop((int)$category->getShopID());
		if($category->name!='Root' && $category->name!='Home'){
//260		$this->_html .= '<option value="'.(int)$category->id.'">'.(isset($spacer) ? $spacer : '').$category->name.' </option>';
		}

 

Edited by MindFlyer (see edit history)
Link to comment
Share on other sites

Hmmm... Dodałem w wierszu 259 ";;" - ale nic to nie dało - ani 'notice' nie zniknął, ani pierwotny problem nie rozwiązał.

Dobrze zrozumiałem, że powinno to tak wyglądać: (?)

wiersz 259:

if($category->name!='Root' && $category->name!='Home'){;;

 

Link to comment
Share on other sites

 nie dwa sredniki tylko "dwa apostrofy"....moj blad.  teraz to na pewno bedziesz mial blad :D

 

$shop = (object) Shop::getShop((int)$category->getShopID());
		if($category->name!='Root' && $category->name!='Home'){
		
$this->_html = '';

$this->_html .= '<option value="'.(int)$category->id.'">'.(isset($spacer) ? $spacer : '').$category->name.' </option>';
		}

tak to ma wygladac

Link to comment
Share on other sites

O dziwo żadnego innego błędu nie wyrzuciło, ale teraz faktycznie ten notice zniknął - i jak słusznie przypuszczałeś nie poprawiło to problemu z kategoriami niestety... DZIĘKUJĘ ZA TĄ POPRAWKĘ ! :)

jest jeszcze jeden notice, ale ten to już z pewnością tutaj nie pomoże:

 

Notice: Undefined variable: maincolor in /public_html/modules/posthemeoption/posthemeoption.php on line 346
posthemeoption.php:

 345 // in case you need rgba color
 346      $grbacolor = $this->hex2rgba($maincolor);

 

Edited by MindFlyer (see edit history)
Link to comment
Share on other sites

zapewne $maincolor bedzie gdzies pobierany z ustawien w konfiguracji modulu, moze brakuje utawien, zwraca NULL i tutaj bedzie krzaczylo. tez tak amo do sprawdzenia przez var_dump co ta zmienna przekazuje. wrzuc ponizej

var_dump('grbacolor = ' .$grbacolor . '; maincolor = '.$maincolor); odswierz strone i powinno sie na samej gorze pokazac, jak nie (zniknie) to wejdz wzrodlo strony to powinno sie pojawic w pierwszej linijce, chyba, ze to juz zwracane jest w jakims hook, to powinno sie w jego okolicach pojawic

 

Edited by design4VIP (see edit history)
Link to comment
Share on other sites

Hmmm... Teraz zwraca dokładnie to:

 

Notice: Undefined variable: maincolor in /public_html/modules/posthemeoption/posthemeoption.php on line 346

Notice: Undefined variable: maincolor in /public_html/modules/posthemeoption/posthemeoption.php on line 347
string(41) "grbacolor = rgba(0,0,0,0.8); maincolor = "

Kod jest dokładnie taki, jak proponowałeś:

 // in case you need rgba color
346       $grbacolor = $this->hex2rgba($maincolor);
347  var_dump('grbacolor = ' .$grbacolor . '; maincolor = '.$maincolor);

 

 

Dodatkowo pojawiły się notice w BO - klikając w katalog (ale tylko przy wyborze 'wszystkich sklepów' multistore - bo zmieniając na którykolwiek sklep, a nie grupę, to tych notice nie ma: 

Notice w linii 33 w pliku /public_html/cache/smarty/compile/da/3c/97/da3c97eb0bf798b58beefcb8419dc4763835dcc9.file.tree_node_folder_radio.tpl.php
[8] Undefined index: id_category

Notice w linii 35 w pliku /public_html/cache/smarty/compile/da/3c/97/da3c97eb0bf798b58beefcb8419dc4763835dcc9.file.tree_node_folder_radio.tpl.php
[8] Undefined index: id_category

Notice w linii 39 w pliku /public_html/cache/smarty/compile/da/3c/97/da3c97eb0bf798b58beefcb8419dc4763835dcc9.file.tree_node_folder_radio.tpl.php
[8] Undefined index: name

a w tymże pliku mamy to:

<?php if ($_valid && !is_callable('content_5ece6009b0ad74_23125476')) {function content_5ece6009b0ad74_23125476($_smarty_tpl) {?><?php if      (!is_callable('smarty_modifier_escape')) include '/public_html/tools/smarty/plugins/modifier.escape.php';
?>
<li class="tree-folder">
	<span class="tree-folder-name<?php if (isset($_smarty_tpl->tpl_vars['node']->value['disabled'])&&$_smarty_tpl->tpl_vars['node']->value['disabled']==true) {?> tree-folder-name-disable<?php }?>">
33		<?php if ($_smarty_tpl->tpl_vars['node']->value['id_category']!=$_smarty_tpl->tpl_vars['root_category']->value) {?>
		<input type="radio" name="<?php echo $_smarty_tpl->tpl_vars['input_name']->value;?>
35 " value="<?php echo $_smarty_tpl->tpl_vars['node']->value['id_category'];?>
"<?php if (isset($_smarty_tpl->tpl_vars['node']->value['disabled'])&&$_smarty_tpl->tpl_vars['node']->value['disabled']==true) {?> disabled="disabled"<?php }?> />
		<?php }?>
		<i class="icon-folder-close"></i>
39		<label class="tree-toggler"><?php echo htmlspecialchars($_smarty_tpl->tpl_vars['node']->value['name'], ENT_QUOTES, 'UTF-8', true);?>
</label>
	</span>
	<ul class="tree">
		<?php echo smarty_modifier_escape($_smarty_tpl->tpl_vars['children']->value, 'UTF-8');?>

	</ul>
</li>
<?php }} ?>

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...