/ / PrestaShop के लिए फ्रंट पेज के रूप में CMS पृष्ठ का उपयोग कैसे करें और / someurl के लिए डिफ़ॉल्ट शॉप इंडेक्स है? - प्रेस्टैशॉप, प्रेस्टैशॉप -१.६

PrestaShop के सामने पृष्ठ के रूप में CMS पृष्ठ का उपयोग कैसे करें और / someurl के लिए डिफ़ॉल्ट दुकान सूचकांक है - प्रेस्टैशॉप, प्रेस्टैशॉप -१.६

मैंने इस कस्टम IndexController.php को / override / नियंत्रकों / फ्रंट में CMS पेज को इंडेक्स के रूप में बनाया है (देखें) $id_cms)।

class IndexControllerCore extends FrontController
{
//public $php_self = "index";

/**
* Assign template vars related to page content
* @see FrontController::initContent()
*/
/*public function initContent()
{
parent::initContent();
$this->addJS(_THEME_JS_DIR_."index.js");

$this->context->smarty->assign(array("HOOK_HOME" => Hook::exec("displayHome"),
"HOOK_HOME_TAB" => Hook::exec("displayHomeTab"),
"HOOK_HOME_TAB_CONTENT" => Hook::exec("displayHomeTabContent")
));
$this->setTemplate(_PS_THEME_DIR_."index.tpl");
}*/

public $php_self = "cms";
public $assignCase;
public $cms;

/** @var CMSCategory */
public $cms_category;
public $ssl = false;

public function canonicalRedirection($canonicalURL = "")
{
if (Tools::getValue("live_edit")) {
return;
}
if (Validate::isLoadedObject($this->cms) && ($canonicalURL = $this->context->link->getCMSLink($this->cms, $this->cms->link_rewrite, $this->ssl))) {
parent::canonicalRedirection($canonicalURL);
} elseif (Validate::isLoadedObject($this->cms_category) && ($canonicalURL = $this->context->link->getCMSCategoryLink($this->cms_category))) {
parent::canonicalRedirection($canonicalURL);
}
}

public function setMedia()
{
parent::setMedia();

if ($this->assignCase == 1) {
$this->addJS(_THEME_JS_DIR_."cms.js");
}

$this->addCSS(_THEME_CSS_DIR_."cms.css");
}

/**
* Assign template vars related to page content
* @see FrontController::initContent()
*/
public function initContent()
{
parent::initContent();

$id_cms = 6;
$this->cms = new CMS($id_cms, $this->context->language->id);

$parent_cat = new CMSCategory(1, $this->context->language->id);
$this->context->smarty->assign("id_current_lang", $this->context->language->id);
$this->context->smarty->assign("home_title", $parent_cat->name);
$this->context->smarty->assign("cgv_id", Configuration::get("PS_CONDITIONS_CMS_ID"));

if (isset($this->cms->id_cms_category) && $this->cms->id_cms_category) {
$path = Tools::getFullPath($this->cms->id_cms_category, $this->cms->meta_title, "CMS");
} elseif (isset($this->cms_category->meta_title)) {
$path = Tools::getFullPath(1, $this->cms_category->meta_title, "CMS");
}

$this->context->smarty->assign(array(
"cms" => $this->cms,
"content_only" => (int)Tools::getValue("content_only"),
"path" => $path,
"body_classes" => array($this->php_self."-".$this->cms->id, $this->php_self."-".$this->cms->link_rewrite)
));

if ($this->cms->indexation == 0) {
$this->context->smarty->assign("nobots", true);
}

$this->setTemplate(_PS_THEME_DIR_."cms.tpl");
}

अब मेरा सवाल यह है कि मैं मूल दुकान सूचकांक को url / स्टोर जैसे कैसे दे सकता हूं?

उत्तर:

उत्तर № 1 के लिए 1

1) / नियंत्रकों / सामने में एक कस्टम नियंत्रक बनाएँ

class myStoreIndexController extends FrontController {

public $php_self = "myStoreIndex";

/**
* Assign template vars related to page content
* @see FrontController::initContent()
*/
public function initContent() {
parent::initContent();
$this->addJS(_THEME_JS_DIR_."index.js");
$this->context->smarty->assign(array(
"HOOK_HOME" => Hook::exec("displayHome"),
"HOOK_HOME_TAB" => Hook::exec("displayHomeTab"),
"HOOK_HOME_TAB_CONTENT" => Hook::exec("displayHomeTabContent")
));
$this->setTemplate(_PS_THEME_DIR_."index.tpl");
}
}

2) PS नियंत्रण कक्ष मेनू में जाएं: सेटिंग> SEO & Urls, "नया पृष्ठ जोड़ें" पर क्लिक करें और फिर पेज "myStoreIndexController" के रूप में चयन करें, जो शीर्षक और मेटा आपको चाहिए वह सेट करें और अंत में अनुकूल यूआरएल के रूप में "स्टोर" दर्ज करें और सहेजें

यहां छवि विवरण दर्ज करें

3) अपने कस्टम पथ में एक cms होमपेज + स्टोर का आनंद लें


जवाब के लिए 0 № 2

मुझे लगता है कि वहाँ के साथ खिलवाड़ करने का एक आसान तरीका नहीं हैसूचकांक के लिए एक बेस यूआरएल घोषित करने के लिए आंतरिक प्रेस्टशप डिस्पैचर। मुझे बस मुख्य कक्षाओं पर एक त्वरित नज़र थी और यह आसानी से कैसे संभालना है, इसका पता नहीं लगा सकता।

अगर मुझे ऐसा करना होता, तो मैं एक नया cms पेज या एक नया कस्टम कंट्रोलर बनाता। और बस में पुनर्निर्देशित .htaccess इस पृष्ठ की जड़:

RewriteBase /
RewriteRule ^$ /store [L,R=301]

# ~~start~~ Do not remove this comment, Prestashop will keep automatically
# [...]