[英]How do you create pages programmatically with drupal?
我目前有一个Drupal网站。 我需要制作1000个页面,形式为domain.com/names/name1.html domain.com/names/name2.html等。每个页面稍有不同,但格式相同。 解决此问题的最佳方法是什么? 我很难找到有关此主题的任何教程。
让我们先澄清一下。
正如您的问题下的注释所建议的那样,您可以1.以编程方式创建节点 。 假设您有一个内容类型(节点类型)“ Page”,然后从您可以创建的自定义模块中调用hook_install
(在安装模块时执行任务)或hook_update_N
(在运行更新例程时执行任务)一千个“ Page”类型的节点(在for循环中或作为批处理最好用于防止超时),设置其路径别名以及您需要设置的其他所有内容。 已经有大量的教程。
当然,您还可以通过以下hook_menu
编程方式创建页面:在自定义模块中调用hook_menu
并添加一个接受通配符( $items['names/%']
)的菜单项(路由)。 然后,您可以定义一个回调函数( 'page callback'
)来构建页面内容,该页面内容将在访问匹配的URL时被调用,您还可以将通配符作为参数( 'page arguments'
)传递给该回调函数。 例如,回调函数可以简单地返回一个渲染数组。
添加带有回调函数的菜单项以通过hook_menu
呈现一些自定义内容通常意味着您实际上仅动态地控制内部页面的内容(主要是页面内容区域,或在当前主题中被调用)。 页眉,主菜单,页脚等都保持不变。 根据您的需求,您还需要以某种方式构建指向您的自定义页面的自定义链接,并将其作为自定义块或您打算对其进行处理的方式提供。
可以在“示例”模块的文档中找到第二种方法的完整概述,并在“ 页面示例”子模块的文档中详细了解。
hook_menu
示例: page_example_menu
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.