我正在尝试从CVS的文件导入数据对象,并使用php脚本将数据从Pimcore导出到XML文件。我已经设法从CVS文件导入数据,但是我无法弄清楚如何导出到XML文件。
我尝试在网上浏览,但是官方文档并没有说太多(www.pimcore.org/wiki/display/PIMCORE/External+System+Interaction):
数据对象的导出可以通过编程或通过pimcore CSV导出来实现。当单击对象文件夹并选择“搜索,编辑和导出”选项卡时,可以找到UI导出。
我发现了各种“松散代码”,例如:
include(“ pimcore / cli / startup.php”); $ class = Object_Class :: getById(1); 回声Object_Class_Service :: generateClassDefinitionXml($ class);
我什至设法找到了上面示例中提到的“ Object_Class_Service ”,但无济于事,每当我尝试使用它时,它都会出错,据我所知,它甚至无法正常工作。
我一直在寻找各种Helpers和其他方法来找到将pimcore数据对象导出到XML的正确方法,但是实际上什么也没有。
导出非常简单,一个数据对象,我们将其命名为User,输入字段带有getter / setter“ Name”。
我需要创建PHP脚本,该脚本将数据对象“用户”与数据一起导出。您到底如何通过脚本实现这一目标?
保存类定义的最佳方法是使用JSON,因为这是Pimcore用于类定义导出和导入的方式。
/*
* Export class definition
*/
// !!! This is the id of the object class, not the id of object instance.
// Go to Settings > Object > Classes and find the object class ID there
$classId = 5;
$class = Pimcore\Model\Object\ClassDefinition::getById($classId);
$classDefinitionJson = Pimcore\Model\Object\ClassDefinition\Service::generateClassDefinitionJson($class);
header("Content-type: application/json");
header("Content-Disposition: attachment; filename=\"class_" . $class->getName() . "_export.json\"");
echo $classDefinitionJson;
/*
* Import class definition
*/
$nameOfTheClass = "someClass";
$class = Pimcore\Model\Object\ClassDefinition::getByName($name);
if (!$class) {
$class = new Pimcore\Model\Object\ClassDefinition();
$class->setName($name);
}
$classDefinitionJson = @file_get_contents($classDefinitionJson);
$classDefinitionJson = json_decode($classDefinitionJson, true);
Pimcore\Model\Object\ClassDefinition\Service::importClassDefinitionFromJson($class, $classDefinitionJson);
请注意,对象类ID和对象类的名称未保存在对象定义文件中。这就是为什么需要这样做的原因:
$nameOfTheClass = "someClass";
$class = Pimcore\Model\Object\ClassDefinition::getByName($name);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句