Jeżeli chcemy aby (np. w celach SEO albo wizerunkowych) strona główna sklepu była to wybrana strona z wbudowanego narzędzia CMS – jest na to bardzo prosty sposób.
Ponadto – przekierowanie będzie miało kod 301 – przyjazny dla wyszukiwarek. Będzie także działało dla robotów nieobsługujących JavaScript.
Edytujemy plik:
controllers/IndexController.php
Następnie znajdujemy metodę (funkcję PHP) o nazwie: displayContent() i jej domyślny wygląd:
public function displayContent() { parent::displayContent(); self::$smarty->assign('categoriescmsTree', CMSCategory::getRecurseCategory(_USER_ID_LANG_, 1, 1, 1)); self::$smarty->assign(array('cms_titles' => self::getCMStitles())); self::$smarty->display(_PS_THEME_DIR_.'index.tpl'); }
zamieniamy na:
public function displayContent() { global $cookie; parent::displayContent(); $link = new Link(); $cms = new CMS(9, (int)$cookie->id_lang); $url = $link->getCMSLink($cms, null, null, (int)$cookie->id_lang); echo $url; header("HTTP/1.1 301 Moved Permanently"); header('Location: '.$url); self::$smarty->assign('categoriescmsTree', CMSCategory::getRecurseCategory(_USER_ID_LANG_, 1, 1, 1)); self::$smarty->assign(array('cms_titles' => self::getCMStitles())); self::$smarty->display(_PS_THEME_DIR_.'index.tpl'); }
Oczywiście we fragmencie liczbę „9”:
$cms = new CMS(9, (int)$cookie->id_lang);
Zamieniamy na ID naszej strony CMS – którą chcemy pokazać na starcie sklepu.
– – –
Jeśli nasza domyślna metoda displayContent() wygląda inaczej – dopisujemy ręcznie:
Na jej początku (zaraz za otwarciem klamry) odwołanie do zmiennej globalnej:
global $cookie;
Kod odwołujący się do konkretnej strony CMS:
$link = new Link(); $cms = new CMS(9, (int)$cookie->id_lang); $url = $link->getCMSLink($cms, null, null, (int)$cookie->id_lang); echo $url; header("HTTP/1.1 301 Moved Permanently"); header('Location: '.$url);
A masz pomysł jak tę samą modyfikację zrobić na wersji PS 1.6.0.9 ?
Muszę wprowadzić taka modyfikację na nowej wersji jednak specem nie jestem w tej kwestii, Jak byś mógł nakierować gdzie w plikach PS 1.6 znajdę możliwość ustawienia strony CMS jako głównej byłbym Ci wdzięczny
Nie działa to w Twojej wersji? Teraz sprawdziłem w sklepie opartym o 1.6.0.14 i działa:
Otwórz plik:
/controllers/front/IndexController.php
Następnie w metodzie (funkcji) o nazwie initContent() po kodzie:
parent::initContent();
dodaj kod (zamieniając cyfrę 3 na ID strony CMS która ma być uruchomiona zamiast strony głównej):
$link = new Link();
$cms = new CMS(3, (int)$cookie->id_lang);
$url = $link->getCMSLink($cms, null, null, (int)$cookie->id_lang);
header("HTTP/1.1 301 Moved Permanently");
header('Location: '.$url);
exit;
Enjoy:)
Wybacz, że teraz odp.
Teraz działa 😀 dzięki !
[…] to bez użycia przekierowania np. na podstronę sklepu – tak jak np. opisaliśmy to tutaj: https://pskrk.com/presta-shop-1-4-wybrana-strona-cms-jako-strona-startowa-sklepu/ […]