我正在尝试创建一个简单的小部件,它将从谷歌文档电子表格中读取并在我的网站上打印一个表格。到目前为止我在Block文件夹中:
<?php
class Namespace_Module_table
extends Mage_Core_Block_Abstract
implements Mage_widget_block_interface
{
protected function _toHtml()
{
$spreadsheet_url= pathToCSV;
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/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>
<module>
<version>0.0.1</version>
</module>
<global>
<helpers>
<module>
<class>Namespace_Module_Helper</class>
</module>
</helpers>
<blocks>
<module>
<class>Namespace_Module_Block</class>
</module>
</blocks>
</global>
</config>
你的PHP代码不是问题。作为窗口小部件模块的一部分,您已经上载了一个(可能是多个)XML文件。当Magento使用PHP代码读取这个XML文件时(可能是你的config.xml
,但这是基于你列出的调用堆栈的猜测),它发现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>
标签。