Как создать модуль в Prestashop 1.7? С подключением второго сайта

Автор watsongx, 02 апреля 2019, 22:10:03

« назад - далее »

watsongx

Работает магазин на Prestashop 1.7. Хочу создать модуль для подключения каталога товара. В корне сайта есть папка catalog в ней есть index.php, своя база, есть свой сайт в сайте. Хочу создать модуль через который можно будет с главной страницы Prestashop перейти в каталог, причем  header и footer сайта отображалась из магазина Prestashop, а данные из папки catalog?

lapitsky

#1
Генерируй модуль https://validator.prestashop.com/generator
Вот материалы http://doc.prestashop.com/display/PS17/Creating+a+PrestaShop+1.7+Module
Дальше просто знание php и модели mvc

в твоем случае надо просто сделать ссылку в меню на второй сайт и во втором сайте в шаблоне прописать путь к header и footer первого
модуль не нужен

watsongx

Цитата: lapitsky от 03 апреля 2019, 01:20:08
Генерируй модуль https://validator.prestashop.com/generator
Вот материалы http://doc.prestashop.com/display/PS17/Creating+a+PrestaShop+1.7+Module
Дальше просто знание php и модели mvc

в твоем случае надо просто сделать ссылку в меню на второй сайт и во втором сайте в шаблоне прописать путь к header и footer первого
модуль не нужен
Как это сделать? В версии 1.6 можно было так:
require($_SERVER["DOCUMENT_ROOT"]."/header.php");
В 1.7 такое не работает?

PrestaMan

Зачем вам модуль, когда нужно создать только шаблон страницы?
CSS, JS берете из темы и на основе темы делаете такой-же дизайн.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

lapitsky

Цитата: watsongx от 03 апреля 2019, 21:47:03
Как это сделать? В версии 1.6 можно было так:
require($_SERVER["DOCUMENT_ROOT"]."/header.php");
В 1.7 такое не работает?

Второй сайт тоже на prestashop?

watsongx

#5
Цитата: lapitsky от 06 апреля 2019, 23:26:27
Цитата: watsongx от 03 апреля 2019, 21:47:03
Как это сделать? В версии 1.6 можно было так:
require($_SERVER["DOCUMENT_ROOT"]."/header.php");
В 1.7 такое не работает?

Второй сайт тоже на prestashop?
Второй сайт не prestashop. Он может подключаться к prestashop ли OpenCart. У него нет header, footer. Мне нужно, чтобы отображалось  header с корзиной  prestashop 1.7 и сам контент из каталога.

watsongx

В папке catalog является файл подключения. Возможно нужно что-то поправить?
<?if(!defined("CAT_PROLOG_INCLUDED") || CAT_PROLOG_INCLUDED!==true)die();

require($_SERVER["DOCUMENT_ROOT"].'/config/config.inc.php');



//Add to cart
if(defined('CAT_ADD_TO_CART') AND CAT_ADD_TO_CART){
global $arCartPrice;
if(is_array($arCartPrice)){
if($arCartPrice['OPTIONS']['MINIMUM']>1){$QUANTITY=$arCartPrice['OPTIONS']['MINIMUM'];}else{$QUANTITY=1;}
$DefaultCategory = 12;
$DefaultTaxGroup = 0;
$Price = $arCartPrice['PRICE_CONVERTED'];
$Reference = $arCartPrice['ARTICLE'].' / '.$arCartPrice['BRAND'];

//Presta init
global $context;
if(!$context){$context = Context::getContext();}
$logged = $context->cookie->__get('logged');
$id_cart = $context->cookie->__get('id_cart');
$id_lang = $context->cookie->__get('id_lang');
$id_guest = $context->cookie->__get('id_guest');
$id_currency = $context->cookie->__get('id_currency');


                   
<?php


$_GET
=Array();
$controller = new FrontController();

$tm=time();

$controller->init();

//echo 'init() '.(time()-$tm).' sec.<br>'; $tm=time();

//$controller->initContent();
//echo 'initContent() '.(time()-$tm).' sec.<br>'; $tm=time();

$controller->setMedia();


//$controller->initHeader();


$context->smarty->tpl_vars['page']->value['page_name'] = 'CATod';
$context->smarty->tpl_vars['page']->value['meta']['title'] = CAT_TITLE;
$context->smarty->tpl_vars['page']->value['meta']['description'] = CAT_DESCRIPTION;
$context->smarty->tpl_vars['page']->value['meta']['keywords'] = CAT_KEYWORDS;
$context->smarty->tpl_vars['page']->value['meta']['robots'] = '';

$controller->displayHeader();


ErShow();
echo
$CATContent;

mAgency

/modules/mymodule/controllers/front/mycontroller.php
class MymoduleModuleFrontController extends ModuleFrontController
{
    public function initContent()
    {
        parent::initContent();
                $this->setTemplate('module:mymodule/views/templates/front/mymodule.tpl');
    }
}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

PrestaMan

Создать свою страницу в prestashop 1.7 можно так:
1. Создаете контроллер : /override/controllers/front/MyController.php
2. Содаете темплейт tpl : /themes/mytheme/templates/mytpl.tpl
3. В адмнке  : Настройки / SEO & URLs / добавляете свой контроллер
4. Очищаете кеш
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!