0

我认为这个问题是不言自明的。

例如,我需要一个名为“人”的内容类型,其中包含 2 个字段(姓名、年龄)。

我尝试了谷歌搜索等,但虽然有很多关于“drupal 7 以编程方式添加内容类型”的参考资料,但我找不到 Drupal 8 的参考资料。

我能够在 Drupal 7 中创建内容类型,但似乎情况发生了一些变化。

欢迎任何参考(如果不是完整的代码)。

4

3 回答 3

0

只需使用 Drupal 安装创建内容类型(空测试即可)。为了让生活更轻松,请在机器名称中使用一些不同的文本。示例:假设 mkk 是您的模块名称,为您的内容类型 mkk_person 设置机器名称,字段机器名称 field_mkk_person_name。完成后,转到(测试)安装目录并在终端“drush -y cex”中运行)。在目录 .../sync(它将显示完整名称)中,您将找到名称中带有 mkk 的文件。将这些文件复制到目录 ...modules/mkk/config/install 中,您就完成了。

您仍然可以更改内容类型并重做操作,但是因为到处都有 uuid (查看文件),我假设您必须保持这些 uuid 的完整。因此,重用测试机器或先在新机器中安装模块。

于 2016-10-23T17:18:20.953 回答
0

我设置了一个启用了视图 REST API 的 Drupal 8 后端,并使用 jQuery 创建了一个简单的前端。jQuery 会将新的内容类型发布到将与 REST API 交互的 php 页面。这是我用来创建节点数组并将其发送到站点的代码:

$node = [
    '_links' => [
        'type' => ['href' => 'http://<SITE URL>/rest/type/node/page']
    ],
    'title' => [
        0 => ['value' => "New Node Title"]
    ]
];

$data = json_encode($node);

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => '<SITE URL>/entity/node',
    CURLOPT_HTTPHEADER => ['Content-type: application/hal+json'],
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => $data,
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
    CURLOPT_USERPWD => '<USERNAME>:<PASSWORD>',
]);

echo curl_exec($ch);

困难的部分是正确构建节点数组结构。

于 2015-09-29T16:34:23.687 回答
0

与任何事情一样,有几种方法可以给这只猫剥皮。

  • 使用配置默认值包括您的内容类型和字段。功能是最简单的方法。Dribbit.eu也有一个例子。
  • 创建新的(编辑旧的)配置实体。大多数情况下,这与更新内容类型有关……例如基本页面或文章。DO上有一个例子
于 2016-03-17T14:50:28.197 回答