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 bedzie miało kod 301 – przyjazny dla wyszukiwarek. Będzie takze 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() wyglada 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 konkrentej 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);

Przykład działania takiego przekierowania na jedym ze sklepów wykonanych przez firmę SmartProjects.pl:

DEMO

Share This:

  1. Igor says:

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

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

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *