Press "Enter" to skip to content

[Presta Shop 1.4] wybrana strona CMS jako strona startowa sklepu

Admin 4

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);

  1. Igor Igor

    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

    • admin admin

      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:)

      • Igor Igor

        Wybacz, że teraz odp.

        Teraz działa 😀 dzięki !

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
W tym tutorialu przedstawimy jak wykonać efektowny slider z logami…