Автор Тема: Не отображается введеный через бэк офис title  (Прочитано 1998 раз)

23 Июль 2013, 11:11:42
Ответ #15
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тогда проверять нужно Tools.php и файлы классов.
Если все данные есть и все правильно, то проблема только в этих классах.
Имено в функциях вывода мета-тегов.
23 Июль 2013, 12:20:46
Ответ #16
  • Пользователь
  • **
  • Сообщений: 52
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А вы могли бы посмотреть все что касается метатегов в tools.php и сказать в чем ошибка? я уже правда не знаю где копать больше и помощи искать... Потому что на двух сайтах стоит разная версия престы, а ошибка везде одна и та же...

* Get meta tages for a given page
*
* @param integer $id_lang Language id
* @return array Meta tags
*/
public static function getMetaTags($id_lang, $page_name, $title = '')
{
global $maintenance;

if (!(isset($maintenance) && (!in_array(self::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP'))))))
{
/* Products specifics meta tags */
if ($id_product = self::getValue('id_product'))
{
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description_short`
FROM `'._DB_PREFIX_.'product` p
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.`id_product` = p.`id_product`)
WHERE pl.id_lang = '.(int)($id_lang).' AND pl.id_product = '.(int)($id_product).' AND p.active = 1');
if ($row)
{
if (empty($row['meta_description']))
$row['meta_description'] = strip_tags($row['description_short']);
return self::completeMetaTags($row, $row['name']);
}
}

/* Categories specifics meta tags */
elseif ($id_category = self::getValue('id_category'))
{
if (!empty($title))
$title = ' - '.$title;
$page_number = (int)self::getValue('p');
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description`
FROM `'._DB_PREFIX_.'category_lang`
WHERE id_lang = '.(int)$id_lang.' AND id_category = '.(int)$id_category);
if ($row)
{
if (empty($row['meta_description']))
$row['meta_description'] = strip_tags($row['description']);

// Paginate title
if (!empty($row['meta_title']))
$row['meta_title'] = $title.$row['meta_title'].(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME');
else
$row['meta_title'] = $row['name'].(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME');

if (!empty($title))
$row['meta_title'] = $title.(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME');

return self::completeMetaTags($row, $row['name']);
}
}

/* Manufacturers specifics meta tags */
elseif ($id_manufacturer = self::getValue('id_manufacturer'))
{
$page_number = (int)self::getValue('p');
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`
FROM `'._DB_PREFIX_.'manufacturer_lang` ml
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (ml.`id_manufacturer` = m.`id_manufacturer`)
WHERE ml.id_lang = '.(int)($id_lang).' AND ml.id_manufacturer = '.(int)($id_manufacturer));
if ($row)
{
if (empty($row['meta_description']))
$row['meta_description'] = strip_tags($row['meta_description']);
$row['meta_title'] .= (empty($row['meta_title']) ? $row['name'] : '').(!empty($page_number) ? ' ('.$page_number.')' : '');
$row['meta_title'] .= ' - '.Configuration::get('PS_SHOP_NAME');
return self::completeMetaTags($row, $row['meta_title']);
}
}

/* Suppliers specifics meta tags */
elseif ($id_supplier = self::getValue('id_supplier'))
{
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`
FROM `'._DB_PREFIX_.'supplier_lang` sl
LEFT JOIN `'._DB_PREFIX_.'supplier` s ON (sl.`id_supplier` = s.`id_supplier`)
WHERE sl.id_lang = '.(int)$id_lang.' AND sl.id_supplier = '.(int)$id_supplier);

if ($row)
{
if (empty($row['meta_description']))
$row['meta_description'] = strip_tags($row['meta_description']);
if (!empty($row['meta_title']))
$row['meta_title'] = $row['meta_title'].' - '.Configuration::get('PS_SHOP_NAME');
return self::completeMetaTags($row, $row['name']);
}
}

/* CMS specifics meta tags */
elseif ($id_cms = self::getValue('id_cms'))
{
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `meta_title`, `meta_description`, `meta_keywords`
FROM `'._DB_PREFIX_.'cms_lang`
WHERE id_lang = '.(int)$id_lang.' AND id_cms = '.(int)$id_cms);
if ($row)
{
$row['meta_title'] = $row['meta_title'].' - '.Configuration::get('PS_SHOP_NAME');
return self::completeMetaTags($row, $row['meta_title']);
}
}

/* CMS category specifics meta tags */
elseif ($id_cms = self::getValue('id_cms_category'))
{
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `meta_title`, `meta_description`, `meta_keywords`
FROM `'._DB_PREFIX_.'cms_category_lang`
WHERE id_lang = '.(int)$id_lang.' AND id_cms_category = '.(int)$id_cms);
if ($row)
{
$row['meta_title'] = $row['meta_title'].' - '.Configuration::get('PS_SHOP_NAME');
return self::completeMetaTags($row, $row['meta_title']);
}
}
}

/* Default meta tags */
return self::getHomeMetaTags($id_lang, $page_name);
}

/**
* Get meta tags for a given page
*
* @param integer $id_lang Language id
* @return array Meta tags
*/
public static function getHomeMetaTags($id_lang, $page_name)
{
/* Metas-tags */
$metas = Meta::getMetaByPage($page_name, $id_lang);
$ret['meta_title'] = isset($metas['title']) && $metas['title'] ? $metas['title'].' - '.Configuration::get('PS_SHOP_NAME') : Configuration::get('PS_SHOP_NAME');
$ret['meta_description'] = isset($metas['description']) && $metas['description'] ? $metas['description'] : '';
$ret['meta_keywords'] = isset($metas['keywords']) && $metas['keywords'] ? $metas['keywords'] :  '';
return $ret;
}


public static function completeMetaTags($metaTags, $defaultValue)
{
global $cookie;

if (empty($metaTags['meta_title']))
$metaTags['meta_title'] = $defaultValue.' - '.Configuration::get('PS_SHOP_NAME');
if (empty($metaTags['meta_description']))
$metaTags['meta_description'] = Configuration::get('PS_META_DESCRIPTION', (int)($cookie->id_lang)) ? Configuration::get('PS_META_DESCRIPTION', (int)($cookie->id_lang)) : '';
if (empty($metaTags['meta_keywords']))
$metaTags['meta_keywords'] = Configuration::get('PS_META_KEYWORDS', (int)($cookie->id_lang)) ? Configuration::get('PS_META_KEYWORDS', (int)($cookie->id_lang)) : '';
return $metaTags;
}
23 Июль 2013, 16:32:25
Ответ #17
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Все вроде правильно. Остальные файлы проверяйте. Удалите все модули, которые подставляли значения.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
24 Июль 2013, 15:16:56
Ответ #18
  • Пользователь
  • **
  • Сообщений: 52
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Разобралась все-таки. Виной всему модуль Url Without Id, после которого перестают отображаться title.

Теперь вопрос в следующем - как подключить этот модуль чтобы не было проблем с мета тегами? Либо возможно у кого-нибудь есть версия этого модуля без косяков с мета тегами и этот кто-нибудь поделится модулем? :)
24 Июль 2013, 15:27:44
Ответ #19
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
24 Июль 2013, 18:27:54
Ответ #20
  • Пользователь
  • **
  • Сообщений: 52
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нашла такой же модуль, правда не в этой теме, который дает нормально отображаться Title.

Всем большое спасибо!!!