首页 > 解决方案 > 如何使用 drupal 以编程方式创建页面?

问题描述

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

标签: drupaldrupal-7

解决方案


我们先澄清一下。

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

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

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

可以在示例模块的文档和页面示例子模块的文档中找到对第二种方法的一个很好的概述。


推荐阅读