我想使用Drupal来构建家谱应用程序。我认为,困难在于允许用户上传gedcom文件并对其进行解析,然后根据这些数据创建各种Drupal节点。Drupal中的节点是内容项。因此,我会将个人和家庭作为内容类型,每个人都会将各种事件作为来自gedcom文件的字段。
gedcom文件是家谱信息的通用格式。不同的桌面应用程序获取数据并将其转换为专有格式。我不确定如何完成的是给最终用户一个表单来上传他们的gedcom文件,然后让它使用Drupal创建节点,也就是内容项。我可以使用python、perl或其他语言找到解析gedcom文件的开源代码。因此,我可以使用其中一个库来创建JSON、XML、CSV等格式的gedcom文件输出。
Drupal是用PHP编写的,挑战的另一个细节是,对于最终用户来说,我不想让他/她找到在第一步中创建的文件(其中第一步是gedcom文件的解析和转换),并将其上传到Drupal中。我想在最终用户看来,以某种方式一步到位。不知何故,我需要一种方法来触发Drupal在数据转换为JSON、XML或CSV后导入数据。
我个人并不熟悉Drupal。但我知道已经有一个相当高级的程序为Drupal编写,名为家谱,这是Drupal.org上的一个项目
你可能想看看这个项目,或者更好的是,为它做出贡献并改进它
免责声明:我与这个项目没有任何联系,我甚至从未尝试过这个模块。我只是碰巧意识到了这一点。
您需要创建一个特定的模块(或搜索现有的模块)来获取gedcom文件并生成节点。这对用户来说很容易(只需上传一个文件)。
已经有一些家谱网站建立在Drupal上。我见过的最好的是https://ancestry.sandes.uk/,这是在家谱讨论小组的Functional Drupal 7家族史网站上宣布的。我已经启动了一个项目,在Drupal上建立一个基于Drupal7+OG的多用户、多家谱网站,网址为www.greatalbum.net。我在这里和这里讨论。
为了能够上传GEDCOM文件,您需要一个GEDCOM模块来完成这项工作。我发现了这个基于D8的GEDCOM沙盒模块,但它还处于非常早期的阶段,代码目前还缺失。我已经联系了作者skybow,他将恢复代码。我可能会雇人为GreatAlbum网站开发模块,但目前它将在D7上。