Динамически добавлять "купить в магазине" в тайтл

Всем привет
Для динамического подтягивания названия товара в тайтл использую данный код:

<?php use Tygh\Registry; if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($mode == 'view' && !empty($_REQUEST['product_id'])) { $product = Registry::get('view')->getTemplateVars('product'); if(empty($product['page_title'])){ //other data can be added to title dynamic also $page_title = $product['product']; Registry::get('view')->assign('page_title', $page_title); } } ?>

Подскажите, как добавить в тайтл фразу “купить в магазине”?
Не пхпшник, не могу разобраться((
Заранее спасибо!

самое простое - в последней строке

Registry::get('view')->assign('page_title', "Купить в магазине ".$page_title);

не совсем так, видимо, фраза вставляется перед page_title, а надо, чтоб после него
попробовала написать так - отображается просто page_title
Registry::get(‘view’)->assign(‘page_title’,$page_title, “купить в интернет-магазине”);

точка вместо запятой (точка - конкатенация строк)

Registry::get(‘view’)->assign(‘page_title’,$page_title . “ купить в интернет-магазине”);

теперь при переходе в карточку товара выскакивает ошибка “service unavailable”:grimacing::grimacing::grimacing:

как сделали?

все, порядок, спасибо за помощь!

а подскажите, пожалуйста
делаю тайтл категорий по аналогии:

<?php use Tygh\Registry; if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($mode == 'view' && !empty($_REQUEST['category_id'])) { $category = Registry::get('view')->getTemplateVars('category'); if(empty($category['page_title'])){ //other data can be added to title dynamic also $page_title = $category['category']; Registry::get('view')->assign('page_title', $page_title ." купить в интернет-магазине Wismo"); } } однако подтягивается только "купить в интернет-магазине" где ошибаюсь?

когда вставляете код - пишите с новой строки три раза обратную кавычку `
затем перевод строки и вставляйте код
затем снова с новой строки тройную обратную кавычку
чтобы дальше писать свой просто текст

распечатайте category чтобы понять, какие переменные в нем есть. Для этого вставьте в любое место шаблона

{$category|fn_print_r}

например перед

$page_title = $category[‘category’];

спасибо за комментарии по поводу кода
добавила {$category|fn_print_r}, снова ошибка service unavailable
наверное, потому что я добавляю эту обработку в папке my_changes отдельным файлом и переменные не удается отобразить

Потому что вы используете smarty-синтаксис в файле php.

1 лайк

точно ))) тяжелый день )
прошу прощения

fn_print_r($category);

‘’’<?php

use Tygh\Registry;

if (!defined(‘BOOTSTRAP’)) { die(‘Access denied’); }

if ($mode == ‘view’ && !empty($_REQUEST[‘category_id’])) {
$category = Registry::get(‘view’)->getTemplateVars(‘category’);
if(empty($category[‘page_title’])){
//other data can be added to title dynamic also
fn_print_r($category);
$page_title = $category[‘category’];
Registry::get(‘view’)->assign(‘page_title’, $page_title ." купить в интернет-магазине Wismo");
}
}
‘’’
так? что должно произойти?
если убрать “купить …”, то выводятся категории как обычно, категория:подкатегория, если оставить, то выводится только эта подпись “купить…”

это говорит о том, что переменная $page_title равна пустой строке “”

а я ведь и прописываю, если переменная равна пустой строке, то выводить в нее название категории, разве нет?

здесь переменной $page_title присваивается пустая строка, то есть $category[‘category’] равно пустой строке

Сделайте вот так

<?php

use Tygh\Registry;

if (!defined(‘BOOTSTRAP’)) { die(‘Access denied’); }

if ($mode == 'view' && !empty($_REQUEST['category_id'])) {
    $category_data = Registry::get('view')->getTemplateVars('category_data');
    if(empty($category_data['page_title'])){
        Registry::get('view')->assign('page_title',  $category_data['category'] ." купить в интернет-магазине Wismo");
    }
}
1 лайк

спасибо!

1 лайк

а подскажите, пожалуйста, как еще добавить в тайтл артикул (product_code, если не ошибаюсь) после названия товара и перед фразой “купить…”
сделала вот так, но не работает
‘’’<?php

use Tygh\Registry;

if (!defined(‘BOOTSTRAP’)) { die(‘Access denied’); }

if ($mode == ‘view’ && !empty($_REQUEST[‘product_id’])) {
$product_code = Registry::get(‘view’)->getTemplateVars(‘product_code’);
$product = Registry::get(‘view’)->getTemplateVars(‘product’);
if(empty($product[‘page_title’])){
//other data can be added to title dynamic also
$page_title = $product[‘product’];
Registry::get(‘view’)->assign(‘page_title’, $page_title .$product_code ." купить в интернет-магазине Wismo");
}
}

снова всё напутали ))

use Tygh\Registry;

if (!defined('BOOTSTRAP')) { die('Access denied'); }

if ($mode == 'view' && !empty($_REQUEST['product_id'])) {
$product = Registry::get('view')->getTemplateVars('product');
if(empty($product['page_title'])){
//other data can be added to title dynamic also
Registry::get('view')->assign('page_title', $product['product'] .  " " . $product['product_code']  . " купить в интернет-магазине Wismo");
}
}