TemplateMonster: «Undefined variable: d in customer/form/logintm.phtml on line 38»

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Demon
  • Группа: Клиент
  • Сообщений: 9
  • Регистрация: 23.03.2012

10.06.2014 20:38

Появилась новая ошибка

Notice: Undefined variable: d in /var/www/domikhobbyru/data/www/domik-hobby.ru/app/design/frontend/default/theme134k/template/customer/form/logintm.phtml on line 38

#0 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/design/frontend/default/theme134k/template/customer/form/logintm.phtml(38): mageCoreErrorHandler(8, 'Undefined varia...', '/var/www/domikh...', 38, Array)
#1 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(241): include('/var/www/domikh...')
#2 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/defaul...')
#3 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#4 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml()
#5 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml()
#6 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('customer_form_l...', true)
#7 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Page/Block/Html/Footer.php(88): Mage_Core_Block_Abstract->getChildHtml('customer_form_l...', true, true)
#8 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/design/frontend/default/theme134k/template/page/html/footer.phtml(69): Mage_Page_Block_Html_Footer->getChildHtml('customer_form_l...')
#9 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(241): include('/var/www/domikh...')
#10 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/defaul...')
#11 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#12 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml()
#13 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml()
#14 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('footer', true)
#15 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/design/frontend/default/theme134k/template/page/2columns-left.phtml(55): Mage_Core_Block_Abstract->getChildHtml('footer')
#16 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(241): include('/var/www/domikh...')
#17 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/defaul...')
#18 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#19 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml()
#20 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml()
#21 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput()
#22 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Catalog/controllers/CategoryController.php(159): Mage_Core_Controller_Varien_Action->renderLayout()
#23 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/local/Vinagento/Vpager/controllers/CategoryController.php(37): Mage_Catalog_CategoryController->viewAction()
#24 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Vinagento_Vpager_CategoryController->viewAction()
#25 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('view')
#26 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#27 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#28 /var/www/domikhobbyru/data/www/domik-hobby.ru/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#29 /var/www/domikhobbyru/data/www/domik-hobby.ru/index.php(87): Mage::run('', 'store')
#30 {main}

Прикрепленное изображение: Снимок экрана 2014-06-10 в 21.20.55.png

При попытке закомментировать вывод переменной $d в 38 строчке указанного выше файла шаблона, сайт грузится, но надписи "Купить" заменяются на "Add cart", товары в корзину не добавляются.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

10.06.2014 20:49

Сообщение «Notice: Undefined variable» означает, что переменная используется без предварительной инициализации.
Как правило, причиной таких сбоев является неряшливое программирование.
В частности, в указанной точке программы в файле app/design/frontend/default/theme134k/template/customer/form/logintm.phtml расположен код:

<?php if (Mage::getSingleton('customer/session')->isLoggedIn()==0): ?>
<?php else: ?>
<?php $d = ('logout-class'); ?>
<?php endif ?> 
<div class="account-login-home <?php echo $d ?>"> <span class="btn-log">


В данном коде переменная $d будет инициализирована только если покупатель не авторизован в системе.
Если же покупатель анонимный (ещё не авторизовался), то инициализацию переменной $d неряшливый программист счёл ненужным, однако чуть ниже на строчке 38 он уже как ни в чём не бывало обращается к значению этой переменной, что и приводит к предупреждению интерпретатора.

Правильно было бы запрограммировать этот участок кода так:

<?php 
    $d = Mage::getSingleton('customer/session')->isLoggedIn() ? 'logout-class' : ''; 
?>
<div class="account-login-home <?php echo $d ?>"> <span class="btn-log">


Поделиться темой: