Автор Тема: Как добавить meta title второго сайта?  (Прочитано 227 раз)

20 Январь 2018, 17:38:41
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
К prestashop присоединен дополнительный модуль tecdoc переработан. В корне создана папка auto… в ней есть админ панель итд., Свой автономный сайт база итд товар.Он может работать и без prestashop. Когда интегрировал его в prestashop все работает. Корзина заказы итд.
Проблемка следующая при просмотре страницы в вкладке название страницы выдает — название магазина (текст который указан: админ / настройка / Контакты магазина / Название магазина.
Когда включаю в админ Дружественный URL тогда в кладке Ошибка 404- название магазина. Когда в амин панели текдок отключаю привязку к prestashop то в вкладке пишеть текст нужной страницы.

Это нужно присоединить
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<title><?=TDM_TITLE?></title>
<meta name="keywords" content="<?=TDM_KEYWORDS?>" />
<meta name="description" content="<?=TDM_DEscriptION?>" />
</head>
<body>
20 Январь 2018, 18:05:24
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1252
  • Репутация: +16/-1
  • Сообщество PrestaShop
    • Просмотр профиля
404 ошибка в заголовке когда не неопредеят контроллер. С интеграцией какие-то проблемы. Модуль tecdoc для prestashop тут обсуждали. Но у него нет отдельной админки, админка общая и схема чпу тоже от prestashop.
20 Январь 2018, 18:33:03
Ответ #2
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Этот модуль отдельный. В корне сайта создана папка autoparts в ней модуль, если перейти autoparts / admin тогда попадаем в админ панель модуля.
20 Январь 2018, 18:37:22
Ответ #3
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Как разрешить контроллеру выдавать нужную страницу? Где рыть? Есть предположение что в файле CMS.php или CmsController.php ???
20 Январь 2018, 18:40:56
Ответ #4
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Так выглядит файл интеграции

<?if(!defined("TDM_PROLOG_INCLUDED") || TDM_PROLOG_INCLUDED!==true)die();

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

//$sql = 'SELECT * FROM `ps_1product` WHERE `id_product` = 10 ';
//$arRes = Db::getInstance()->executeS($sql);
//echo '<br><pre>';print_r($arRes);echo '</pre>';

if(!TDM_ISADMIN){
    global $TDMCore;
    $arPGID = $TDMCore->arPriceGID;
    global $USER;
    $arGroups = array((int)Group::getCurrent()->id);

    $isAuthorisedGroup = false;
    foreach($arPGID as $TDM_GID=>$CMS_GID){
        if(in_array($CMS_GID,$arGroups)){
            $isAuthorisedGroup = true;
            if($_SESSION['TDM_USER_GROUP']!=$TDM_GID){
                $_SESSION['TDM_USER_GROUP']=$TDM_GID;
                header('Location: '.$_SERVER['REQUEST_URI']);
            }
            break;
        }
    }
    if (!$isAuthorisedGroup) {
        unset($_SESSION['TDM_USER_GROUP']);
    }
}

//Add to cart
if(defined('TDM_ADD_TO_CART') AND TDM_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');

// Add cart if no cart found
if (!$id_cart){
$context->cart = new Cart();
$context->cart->id_customer = $context->customer->id;
$context->cart->id_currency = $id_currency;
$context->cart->add();
if($context->cart->id){
$context->cookie->id_cart = (int)$context->cart->id;
}
            $id_cart = (int)$context->cart->id;
}

$doAdd="Y";
//if(!$logged>0){$doAdd="N"; $TCore->arErrorMessages[] = 'You must be <a href="/index.php?controller=my-account">logged in</a> to buy products';}
//if(trim($Reference)=='' OR !$Price>0 OR !$QUANTITY>0){$doAdd="N"; $TCore->arErrorMessages[] = 'Add to cart data is missing!';}
if(!$id_cart>0){$doAdd="N"; ErAdd("Your cookie <b>id_cart</b> is wrong!",1);}
if(!$id_lang>0){$doAdd="N"; ErAdd("Your cookie <b>id_lang</b> is wrong!",1);}
if($doAdd!="N"){
//Check avail. tecdoc item in Presta
$sql = 'SELECT p.`id_product`, pl.`name` FROM `'._DB_PREFIX_.'product` p
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product`)
WHERE pl.`id_lang` = '.$id_lang.' AND
p.`price` = '.$Price.' AND
p.`reference` = "'.$Reference.'"
';
$arRes = Db::getInstance()->executeS($sql);
if(count($arRes)>0){
$NewTID = $arRes[0]['id_product'];
}else{
                    //Supplier data (for 1C integration)
$supplierName = $arCartPrice['SUPPLIER_STOCK'];
                    $supplierId = $suppliers = (Supplier::getIdByName($supplierName));
                    if (!$supplierId) {
                        $supplier = new Supplier();
                        $supplier->name = $supplierName;
                        $supplier->active = 1;
                        $supplier->add();
                        $supplierId = $supplier->id;
                    }

$obProduct = new Product(false,false,$id_lang);
$obProduct->id_category_default = $DefaultCategory;
$obProduct->unity = $arCartPrice['ADD_URL'];
$obProduct->name = substr($arCartPrice['NAME'],0,400);
$obProduct->description = '. ';
$obProduct->description_short = $arCartPrice['SUPPLIER_STOCK'].' ['.$arCartPrice['DAY'].' days]';
$obProduct->price = $Price;
                    $obProduct->wholesale_price = $arCartPrice['PRICE'];
$obProduct->reference = $Reference;
$obProduct->link_rewrite = $arCartPrice['CPID'];
$obProduct->available_for_order = 1; //true
$obProduct->visibility = 'none';
$obProduct->is_virtual = 0;
if($arCartPrice['OPTIONS']['WEIGHT']>0){$obProduct->weight = round($arCartPrice['OPTIONS']['WEIGHT']/1000,2);}
if($arCartPrice['OPTIONS']['MINIMUM']>0){$obProduct->minimal_quantity = $arCartPrice['OPTIONS']['MINIMUM']; $QUANTITY=$arCartPrice['OPTIONS']['MINIMUM'];}
if($arCartPrice['OPTIONS']['USED']>0){$obProduct->condition = 'used';}
if($arCartPrice['OPTIONS']['RESTORED']>0){$obProduct->condition = 'refurbished';}

                    //supplier
                    $obProduct->supplier_name = $supplierName;
                    $obProduct->id_supplier = $supplierId;

$obProduct->id_tax_rules_group = $DefaultTaxGroup;
//echo '<br><pre>';print_r($obProduct);echo '</pre>';die();
$obProduct->add();
if($obProduct->id>0){
$NewTID = $obProduct->id;
$obProduct->setWsCategories(Array(Array("id"=>$DefaultCategory)));
//Add image
if($arCartPrice['IMG_SRC']!='' AND $NewTID>0){
$shops = Shop::getShops(true, null, true);
$image = new Image();
$image->id_product = $NewTID;
$image->position = Image::getHighestPosition($NewTID)+1;
$image->cover = true; // or false;
if(($image->validateFields(false, true)) === true && ($image->validateFieldsLang(false, true)) === true && $image->add()){
$image->associateTo($shops);
$tmpfile = tempnam(_PS_TMP_IMG_DIR_, 'ps_import');
if(Tools::copy($arCartPrice['IMG_SRC'], $tmpfile)){
$path = $image->getPathForCreation();
ImageManager::resize($tmpfile, $path.'.jpg');
}
unlink($tmpfile);
}
}
}else{
ErAdd("Prestashop new Item ID is false",1);
}
unset($obProduct);
}

if($NewTID>0){
if($arCartPrice['AVAILABLE']>0){StockAvailable::setQuantity($NewTID, false, $arCartPrice['AVAILABLE']);}
$obCart = new Cart($id_cart);
$obCart->id_lang = $id_lang;
$obCart->id_currency = $id_currency;
if($obCart->updateQty($QUANTITY,$NewTID)){
Header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); die();
}else{
ErAdd("Prestashop Add to Cart is false. NewTID=".$NewTID,1);
}
}
}

}
}


require($_SERVER["DOCUMENT_ROOT"]."/header.php");

ErShow();
echo $TDMContent;

require($_SERVER["DOCUMENT_ROOT"]."/footer.php");
?>
21 Январь 2018, 01:05:38
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 3336
  • Репутация: +77/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Без чпу работай или придеться переделать модуль. Чтобы чпу работало нужно чтобы все запросы шли на index.php. В стандарной схеме интеграция через модуль, а модуль подхватывается через хуки.
21 Январь 2018, 12:11:32
Ответ #6
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А можно конкретнее? А то я не совсем понял (
21 Январь 2018, 12:37:53
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 15144
  • Репутация: +14589/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Вот тут написано как нужно подулючать модули - http://doc.prestashop.com/display/PS16/Creating+a+PrestaShop+Module
В вашем случае нужно создать контроллер в модуле и свой шаблон страницы.
21 Январь 2018, 14:23:25
Ответ #8
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А можно решить проблему в header.tpl всунуть js?
21 Январь 2018, 14:57:30
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 15144
  • Репутация: +14589/-5
  • Сообщество PrestaShop
    • Просмотр профиля
С js заменить текст в title конечно можно.
document.title = 'Новое значение тайтла страницы';Только не понятно как поисковики к этому отнесутся.
21 Январь 2018, 15:22:25
Ответ #10
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Имею файлы интеграции для Open Cart можно их переделать под Presta Shop:
<?php  
class Controllercommontecdocmodule extends Controller {
public function index() {


//Save customer group ID for TDMod 
$_SESSION['TDM_CMS_USER_GROUP'] = intval($this->customer->getCustomerGroupId());

//TecDoc
if(defined('TDM_TITLE')){$this->document->setTitle(TDM_TITLE);}
if(defined('TDM_KEYWORDS')){$this->document->setKeywords(TDM_KEYWORDS);}
if(defined('TDM_DESCRIPTION')){$this->document->setDescription(defined('TDM_DESCRIPTION'));}

if (file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/common/tecdoc_module.tpl')) {
$this->template $this->config->get('config_template') . '/template/common/tecdoc_module.tpl';
} else {
$this->template 'default/template/common/tecdoc_module.tpl';
}

$this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
);

$this->response->setOutput($this->render());
}
}
?>
21 Январь 2018, 15:48:16
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 15144
  • Репутация: +14589/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Про это и писали. Нужно свой контроллер и шаблон. Как с opencart, только по правилам prestashop.
http://doc.prestashop.com/pages/viewpage.action?pageId=15171646
21 Январь 2018, 16:13:43
Ответ #12
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добавил контроллер и без изменений  :( захожу http: //mysite/autoparts без изменений :-\
21 Январь 2018, 18:12:10
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 3336
  • Репутация: +77/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Показ ошибок в prestashop включи. Может контроллер не подключается.
21 Январь 2018, 18:54:31
Ответ #14
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А можно скрипт в паять который будет отображать данные страницы и подставлять в title keywords description? НЕ js?