Перейти к содержимому


Вывод цены товара в "title"

ShopCMS title

  • Вы не можете ответить в тему
Сообщений в теме: 4

#1 Robby

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 162 сообщений
Репутация: 75
Продвинутый

Отправлено 03 October 2012 - 09:52 AM

По умолчанию, в описании товара выводится title вида:
Название товара которое берется из полей name или title таблицы PRODUCTS или, если эти поля пустые, то выводится Название магазина - Стандартный заголовок взятые из настроек админки.

Сделаем чтобы в title выводиласьеще и цена товара.
Находим в core/includes/head.php (примерно 48 строка) следующий код:
				else if (isset($productID) && $productID>0) //product information page
{
$q = db_query("select name, title FROM ".PRODUCTS_TABLE." WHERE productID=".(int)$productID);
$r = db_fetch_row($q);
if($r[1]) $page_title = $r[1];
elseif($r[0]) $page_title = $r[0];
else $page_title = CONF_SHOP_NAME." - ".CONF_DEFAULT_TITLE;
$meta_tags = prdGetMetaTags($productID);
}


Заменяем на этот код:
				else if (isset($productID) && $productID>0) //product information page
{
$q = db_query("select name, title, Price FROM ".PRODUCTS_TABLE." WHERE productID=".(int)$productID); // вывод цены в Title, добавлено поле Price
$r = db_fetch_row($q);
$r[2] = show_price( $r["Price"] ); // вывод цены в Title, получаем цену товара
if($r[1]) $page_title = $r[1]." - ".$r[2]; // вывод цены в Title
elseif($r[0]) $page_title = $r[0]." - ".$r[2]; // вывод цены в Title
else $page_title = CONF_SHOP_NAME." - ".CONF_DEFAULT_TITLE;
$meta_tags = prdGetMetaTags($productID);
}


Теперь titlle при просмотре товара будет иметь вид Название товара - Цена товара
 
Более правильное решение не требующее лишнего запроса к базе данных, спасибо за подсказку eugene_wb
В файле head.tpl.html вашего шаблона перед строкой
<title>{$page_title}</title>

вставить код:

{* Вывод цены товара в заголовке при просмотре детального описания *}
{if $product_info ne NULL}
{assign var="page_title" value="`$page_title` - `$product_info.PriceWithUnit`"}
{/if}

  • 2

#2 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 03 October 2012 - 10:05 AM

с моей точки зрения подход неправильный, так как цена будет отображаться только на подробном описании товара, то почему не вставить в одно условие шаблон head.tpl.html, а не трепать очередной раз mysql, когда все данные уже давно есть

{if $product_info ne NULL}
{assign var="page_title" value="`$page_title` - `$product_info.list_priceWithUnit`"}
{/if}

  • 0
Изображение Изображение Изображение

#3 Robby

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 162 сообщений
Репутация: 75
Продвинутый

Отправлено 03 October 2012 - 10:52 AM

Да, правильное решение не всегда очевидно :)
Но наверное код должен быть таким?

{if $product_info ne NULL}
{assign var="page_title" value="`$page_title` - `$product_info.PriceWithUnit`"}
{/if}

  • 0

#4 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 03 October 2012 - 10:58 AM

вероятнее всего да, не из того поля цену скопировал
  • 0
Изображение Изображение Изображение

#5 site-ok

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений
Репутация: 0
Начинающий
  • ГородКиев

Отправлено 28 March 2014 - 09:28 PM

По умолчанию, в описании товара выводится title вида:
Название товара которое берется из полей name или title таблицы PRODUCTS или, если эти поля пустые, то выводится Название магазина - Стандартный заголовок взятые из настроек админки.

Сделаем чтобы в title выводиласьеще и цена товара.
Находим в core/includes/head.php (примерно 48 строка) следующий код:

				else if (isset($productID) && $productID>0) //product information page
{
$q = db_query("select name, title FROM ".PRODUCTS_TABLE." WHERE productID=".(int)$productID);
$r = db_fetch_row($q);
if($r[1]) $page_title = $r[1];
elseif($r[0]) $page_title = $r[0];
else $page_title = CONF_SHOP_NAME." - ".CONF_DEFAULT_TITLE;
$meta_tags = prdGetMetaTags($productID);
}


Заменяем на этот код:
				else if (isset($productID) && $productID>0) //product information page
{
$q = db_query("select name, title, Price FROM ".PRODUCTS_TABLE." WHERE productID=".(int)$productID); // вывод цены в Title, добавлено поле Price
$r = db_fetch_row($q);
$r[2] = show_price( $r["Price"] ); // вывод цены в Title, получаем цену товара
if($r[1]) $page_title = $r[1]." - ".$r[2]; // вывод цены в Title
elseif($r[0]) $page_title = $r[0]." - ".$r[2]; // вывод цены в Title
else $page_title = CONF_SHOP_NAME." - ".CONF_DEFAULT_TITLE;
$meta_tags = prdGetMetaTags($productID);
}


Теперь titlle при просмотре товара будет иметь вид Название товара - Цена товара
 
Более правильное решение не требующее лишнего запроса к базе данных, спасибо за подсказку eugene_wb
В файле head.tpl.html вашего шаблона перед строкой
<title>{$page_title}</title>

вставить код:

{* Вывод цены товара в заголовке при просмотре детального описания *}
{if $product_info ne NULL}
{assign var="page_title" value="`$page_title` - `$product_info.PriceWithUnit`"}
{/if}

А подскажите каким образом можно сделать шаблон для тайтла товаров? Например, что мета заголовок Title генерировался следующим образом:
"Название товара" — купить в интернет-магазине. Цены

Буду очень признателен за подсказку, потому что тема актуальна, вот до меня спрашивали:
http://vsupport.club....club/t...B0ра/
  • 0