2013-11-25 13 views
0

我想創建一個簡單的小部件,它將從谷歌文檔電子表格中讀取並在我的網站上打印一張表。所以在塊文件夾到目前爲止,我有:當試圖創建簡單的小部件,從谷歌文檔讀取Magento XML分析器錯誤csv

<?php 
class Urbanrider_Scooterlistwidget_table 
extends Mage_Core_Block_Abstract 
implements Mage_widget_block_interface 
{ 
protected function _toHtml() 
{ 
    $spreadsheet_url="https://docs.google.com/spreadsheet/pub?key=0AmXJ4sad4yzPdHdhZGFFNHVFY0JfVlJsZFh6RWsya1E&single=true&gid=0&output=csv"; 

     if(!ini_set('default_socket_timeout', 15)) echo "<!-- unable to change socket timeout -->"; 

     if (($handle = fopen($spreadsheet_url, "r")) !== FALSE) 
     { 
      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
      { 
       $spreadsheet_data[]=$data; 
       return $spredsheet_data[]; 
      } 
     fclose($handle); 
     } 
     else 
      return 'Problem reading csv'; 
    } 
} 
?> 

這是一個相當基本的代碼只是爲了測試,如果它從文件中正確讀取,但每當我上傳包含擴展到服務器的文件夾,整個開發站點只是顯示:

Warning: simplexml_load_string(): Entity: line 19: parser error : Opening and ending tag mismatch: modules line 3 and config in /home/uriderdev/web/lib/Varien/Simplexml/Config.php on line 510 

#0 [internal function]: mageCoreErrorHandler(2, 'simplexml_load_...', '/home/uriderdev...', 510, Array) 
#1 /home/uriderdev/web/lib/Varien/Simplexml/Config.php(510): simplexml_load_string('loadString('loadFile('/home/uriderdev...') 
#4 /home/uriderdev/web/app/code/core/Mage/Core/Model/Config.php(318): Mage_Core_Model_Config->loadModulesConfiguration(Array, Object(Mage_Core_Model_Config)) 
#5 /home/uriderdev/web/app/code/local/Mage/Core/Model/App.php(406): Mage_Core_Model_Config->loadModules() 
#6 /home/uriderdev/web/app/code/local/Mage/Core/Model/App.php(334): Mage_Core_Model_App->_initModules() 
#7 /home/uriderdev/web/app/Mage.php(640): Mage_Core_Model_App->run(Array) 
#8 /home/uriderdev/web/index.php(92): Mage::run('', 'store') 
#9 {main} 

有什麼我明顯做錯了嗎?

編輯:我的繼承人config.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<config> 
    <modules> 
     <Scooterlistwidget> 
      <version>0.0.1</version> 
     </Scooterlistwidget> 
    <global> 
     <helpers> 
      <scooterlistwidget> 
       <class>Urbanrider_Scooterlistwidget_Helper</class> 
      </scooterlistwidget> 
     </helpers> 
     <blocks> 
      <scooterlistwidget> 
       <class>Urbanrider_Scooterlistwidget_Block</class> 
      </scooterlistwidget> 
     </blocks> 
    </global> 
</config> 
+0

非格式化的XML將是我的猜測。 'app/code'中的'find -type f -name'* .xml'-exec xmllint --noout {} \;'可能會有幫助。 –

+0

感謝您的回覆,具體做什麼? – eddhall

+0

'simplexml_load_string'堆棧跟蹤不會告訴你,哪個'* .xml'文件失敗並且會削減錯誤輸出。 'xmllint'行檢查是否所有找到的* .xml文件格式正確,並輸出文件名並發現錯誤,如果不是。 –

回答

1

你的PHP代碼是不是這裏的問題。作爲Widget模塊的一部分,您已經上傳了一個可能不止一個XML文件。當Magento使用PHP代碼讀取這個XML文件時(可能是您的​​3210,但這是基於您列出的調用堆棧的猜測),它發現XML文件無效。

警告:simplexml_load_string():實體:行19:分析器錯誤:打開和結束標記不匹配:模塊3號線和配置

這聽起來像文件中的部分代碼沒有被正確平衡。解決這個問題,你就可以繼續前進。

更新:每更新的答案,以下

... 
<modules> 
    <Scooterlistwidget> 
     <version>0.0.1</version> 
    </Scooterlistwidget> 
<global> 
... 

應該

<modules> 
    <Scooterlistwidget> 
     <version>0.0.1</version> 
    </Scooterlistwidget> 
</modules> 
<global> 

你缺少一個右</modules>標籤。

+0

感謝您的回覆,這裏是我的配置文件,它對我來說看起來很平衡:\編輯:看起來醜陋的評論,將它放在原始帖子 – eddhall

+0

@edward總是最好有一個計算機/編輯器確定你的平衡性XML文件。答案已更新。 –