doukui7574 2017-08-23 13:31
浏览 73
已采纳

安装新主题后,Magento网站破产

My web store broke after installing a new theme, but the error persists after changing the theme back to default.

 Notice: Undefined index: catalog.topnav  in /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php on line 460

#0 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(460): mageCoreErrorHandler(8, 'Undefined index...', '/home/havhokere...', 460, Array)
#1 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('page/html_topme...', 'catalog.topnav')
#2 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('page/html_topme...', 'catalog.topnav')
#3 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#4 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(206): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#5 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(206): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(206): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#7 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#8 /home/havhokeren/public_html/magento/app/code/core/Mage/Cms/Helper/Page.php(113): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#9 /home/havhokeren/public_html/magento/app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'home')
#11 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Cms_IndexController->indexAction()
#12 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#13 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#14 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#15 /home/havhokeren/public_html/magento/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#16 /home/havhokeren/public_html/magento/index.php(89): Mage::run('', 'store')
#17 {main}

I have no idea what could be causing this, another error I've encountered after installing the theme is in the admin panel, if I click on "categories" I get this error:

Notice: Undefined offset: 0  in /home/havhokeren/public_html/magento/app/design/adminhtml/default/default/template/cmsmart/megamenu/menutop.phtml on line 85

#0 /home/havhokeren/public_html/magento/app/design/adminhtml/default/default/template/cmsmart/megamenu/menutop.phtml(85): mageCoreErrorHandler(8, 'Undefined offse...', '/home/havhokere...', 85, Array)
#1 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Block/Template.php(241): include('/home/havhokere...')
#2 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#3 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#4 /home/havhokeren/public_html/magento/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#5 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Adminhtml_Block_Template->_toHtml()
#6 /home/havhokeren/public_html/magento/app/code/local/Cmsmart/Megamenu/Block/Catalog/Category/Tabs.php(174): Mage_Core_Block_Abstract->toHtml()
#7 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Block/Abstract.php(293): Cmsmart_Megamenu_Block_Catalog_Category_Tabs->_prepareLayout()
#8 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(456): Mage_Core_Block_Abstract->setLayout(Object(Mage_Core_Model_Layout))
#9 /home/havhokeren/public_html/magento/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Edit/Form.php(55): Mage_Core_Model_Layout->createBlock('adminhtml/catal...', 'tabs')
#10 /hom    e/havhokeren/public_html/magento/app/code/core/Mage/Core/Block/Abstract.php(293): Mage_Adminhtml_Block_Catalog_Category_Edit_Form->_prepareLayout()
#11 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(456): Mage_Core_Block_Abstract->setLayout(Object(Mage_Core_Model_Layout))
#12 /home/havhokeren/public_html/magento/app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php(82): Mage_Core_Model_Layout->createBlock('adminhtml/catal...')
#13 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Block/Abstract.php(293): Mage_Adminhtml_Block_Widget_Form_Container->_prepareLayout()
#14 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(456): Mage_Core_Block_Abstract->setLayout(Object(Mage_Core_Model_Layout))
#15 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('adminhtml/catal...', 'category.edit')
#16 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('adminhtml/catal...', 'category.edit')
#17 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#18 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#19 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#20 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#21 /home/havhokeren/public_html/magento/app/code/core/Mage/Adminhtml/Controller/Action.php(275): Mage_Core_Controller_Varien_Action->loadLayout(NULL, true, true)
#22 /home/havhokeren/public_html/magento/app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php(201): Mage_Adminhtml_Controller_Action->loadLayout()
#23 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Adminhtml_Catalog_CategoryController->editAction()
#24 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('edit')
#25 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#26 /home/havhokeren/public_html/magento/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#27 /home/havhokeren/public_html/magento/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#28 /home/havhokeren/public_html/magento/index.php(89): Mage::run('', 'store')
#29 {main}

Any help is greatly appreciated.

Magento version: 1.9.1.1

Site: www.havhokeren.dk/magento

  • 写回答

1条回答 默认 最新

  • drox90250557 2017-08-24 10:12
    关注

    Never assume variables exist. Things might change if the providers don't supply the correct values.

    You might have been lucky due to caching that the error did not pop up before.

    In menutop you have this on line 85

    if($categoryArr[0]['active_product']== 1)
    

    These are the assumptions your code makes:

    • Variable $categoryArr is an array.
    • Variable $categoryArr has at least one entry with index 0
    • Variable $categoryArr[0] is an associative array
    • Variable $categoryArr[0] has an index 'active_product'

    That's a lot of assumptions to make.

    To make it more bulletproof you'd ideally use either a helper function to access arrays with a failsafe default, or a complicated if statement

    if(!is_null($categoryArr) && is_array($categoryArr) && array_key_exists(0,$categoryArr) && !is_null($categoryArr[0]) && is_array($categoryArr[0]) && array_key_exist('active_product', $categoryArr[0]) ){ 
    

    or you use a helper function

    function getValue($key, $arr, $default=null) {
       $pieces = explode('.', $key);
       $array = $arr;
    
       foreach($pieces as $array_key) {
    
          if(!is_null($array) && is_array($array) && array_key_exists($array_key, $array)) { 
              $array = $array[$array_key];
          }
          else {
              $array = null;
              break;
          }
       }
       return is_null($array) ? $default : $array;
    }
    
    $testarr = [
        ['foobar' => 'baz'],
        ['active' => false]
    ];
    $output = getValue('0.foobar',$testarr,'NOT FOUND');
    var_dump($output);
    $output = getValue('0',$testarr,'NOT FOUND');
    var_dump($output);
    $output = getValue('1.active',$testarr,'NOT FOUND');
    var_dump($output);
    $output = getValue('i.do.not.exist',$testarr,'NOT FOUND');
    var_dump($output);
    

    https://ideone.com/11jtzj

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据