【问题标题】:How do you create pages programmatically with drupal?如何使用 drupal 以编程方式创建页面?
【发布时间】:2018-04-28 17:23:00
【问题描述】:

我目前有一个 Drupal 网站。我需要制作 1000 个页面,格式为 domain.com/names/name1.html domain.com/names/name2.html 等。每个页面略有不同,但格式相同。解决这个问题的最佳方法是什么?我无法找到有关此主题的任何教程。

【问题讨论】:

  • 另外,在 google 上搜索“drupal 7 create node”会产生很多结果
  • 另外,drupal 的答案有一个特定的站点。 drupal.stackexchange.com
  • @2pha 该操作询问如何以编程方式创建drupal PAGES,您为什么要让他用谷歌搜索?
  • 到目前为止你有什么尝试?这些页面应该加载哪些内容?

标签: drupal drupal-7


【解决方案1】:

让我们先澄清一下。

正如您问题下的 cmets 建议的那样,您可以 1.以编程方式创建节点。假设您有一个内容类型(节点类型)“页面”,然后从自定义内部调用 hook_install(在模块安装时执行任务)或 hook_update_N(在运行更新例程时执行任务)模块,您可以创建一千个“页面”类型的节点(在 for 循环中或更好地作为批处理以防止超时),设置它们的路径别名以及您需要设置的任何其他内容,完成。已经有很多教程了。

当然你也可以2。通过在自定义模块中调用 hook_menu 并添加一个接受通配符 ($items['names/%']) 的菜单项(路由)以编程方式创建页面。然后,您可以定义一个回调函数 ('page callback') 来构建将在访问匹配的 URL 时调用的页面内容,您还可以将通配符作为参数 ('page arguments') 传递给该回调函数。例如,回调函数可以简单地返回一个渲染数组。

添加带有回调函数的菜单项以通过hook_menu 呈现一些自定义内容通常意味着您实际上只能动态控制内页内容(主页内容区域,或者在您当前的主题中调用它)。页眉、主菜单、页脚等保持不变。根据您的需要,您还需要以某种方式构建指向您的自定义页面的自定义链接,并将它们作为自定义块或您计划对它们执行的任何操作提供。

可以在示例模块的文档中找到对第二种方法的很好的概述,在页面示例子模块的文档中可以找到详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 2014-10-23
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    相关资源
    最近更新 更多