Undefined index, Trying to get property

NC
На сайте с 17.09.2015
Offline
0
655

Добрый вечер. Мое первое сообщение!

Подскажите пожалуйста,

В <head> прописано следующее...


{if $smarty.server.REQUEST_URI == "`$wa->shop->productUrl($product, 'reviews')`"}
{$canonical_reviews = $wa->shop->productUrl($product)}
<link rel="canonical" href="{$canonical_reviews}"/>
{/if}

Необходимый результат имеется, но в логах выскакивает следующее...


[17-Sep-2015 20:01:09 Etc/GMT-3] PHP Notice: Undefined index: product in /var/www/1234/data/www/site.ru/wa-cache/apps/shop/templates/compiled/shop_ru_RU/2e/04/c9/2e04c94bf14a38bfdbafb00d05fb0f6ce434e772.file.index.html.php on line 84
[17-Sep-2015 20:01:09 Etc/GMT-3] PHP Notice: Trying to get property of non-object in /var/www/1234/data/www/site.ru/wa-cache/apps/shop/templates/compiled/shop_ru_RU/2e/04/c9/2e04c94bf14a38bfdbafb00d05fb0f6ce434e772.file.index.html.php on line 84

В кеше на 84 строке...


<?php if ($_SERVER['REQUEST_URI']==((string)$_smarty_tpl->tpl_vars['wa']->value->shop->productUrl($_smarty_tpl->tpl_vars['product']->value,'reviews'))){?>

Как правильно сделать?

Заранее благодарю.

ДП
На сайте с 23.11.2009
Offline
203
#1

Вообще ругается из-за того, что у вас переменная $product в том месте в шаблоне не определена.

Либо вы её вообще туда не передаете, может опечатка в имени или она в другом скоупе (в цикле, например используется, а вы её вне цикла хотите использовать).

NC
На сайте с 17.09.2015
Offline
0
#2

Дикий пионер, Да, я это понимаю. Переменная $product определяется только на определенной странице

http://www.site.ru/product/odeyalo-s-podushkoy/reviews/

Голову сломал, как правильно написать на smarty условие... вернее оно правильное, но не учтены проверки в условии на отсутствие элемента в не указанной страницы.

Виктор Горняков
На сайте с 25.09.2006
Offline
175
#3
nikolay_chek:
Дикий пионер, Да, я это понимаю. Переменная $product определяется только на определенной странице
http://www.site.ru/product/odeyalo-s-podushkoy/reviews/

Голову сломал, как правильно написать на smarty условие... вернее оно правильное, но не учтены проверки в условии на отсутствие элемента в не указанной страницы.

На вскидку. попробуй переменную объявить глобальной

global $product;
МСК серверы: VPS (VDS) CPU: ОТ 1 ЯДРА/RAM: ОТ 1024MB/SSD: ОТ 10 GB/+ МЕСТО ПОД БЭКАПЫ/IPV4: 1 ШТ от 104 ₽ в мес ---> https://bit.ly/qwartaru
NC
На сайте с 17.09.2015
Offline
0
#4

Решено! на соседнем форуме подсказали.

Переменная $product не определена.

{if isset($product) && $smarty.server..... /* ну и так далее */

Всем спасибо.:)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий