方法一 加入到 admin_paths
应该说是这个方法是最快的,在一个模块中重新定义其在hook_menu定义的菜单项到hook_admin_paths_alter()来实现。那些路径属于admin_path的,即用来决定哪些页面将被呈现为Overlay叠加层样式。模块应要求Overlay模块的依赖,以确保其他页面都作为有效覆盖渲染。
你可以让其他模块定义的页面作为管理页面。
代码如下 | 复制代码 |
function mymodule_admin_paths_alter(&$paths) { $path['node/*'] = TRUE; $path['node/*/view'] = TRUE; $path['node/*/backlinks'] = FALSE; } |
通常情况下,每个模块实现hook_admin_paths()来设置他们自定义的菜单项是管理页面,这意味着,一个网页是不是一个管理页面,该页面的路径不会被添加到返回的数组。
hook_admin_paths() 是在您自己的模块中定义的菜单项执行,重新定义时,从其他模块中定义的菜单项管理页面,你需要用hook_admin_paths_alter() 来实现。
即定义当前模块中定义的页面是否为管理页面:
代码如下 | 复制代码 |
function hook_admin_paths() { $paths = array( 'mymodule/*/add' => TRUE, 'mymodule/*/edit' => TRUE, ); return $paths; } |
方法二 使用Overlay Paths
您也可以使用Overlay Paths模块。它是一个简单的模块。使管理员能够使用非管理页面到Overlay叠加层中。这意味着您可以复用Overlay作为弹出窗口而不用添加更多的JavaScript库到您的网站来实现类似的Modal功能。
使用Overlay Paths定义的API作为钩子即可实现:
代码如下 | 复制代码 |
/** * Implement hook_overlay_paths(). */ function mymodule_overlay_paths() { $paths = array( 'user' => TRUE, ); return $paths; } |
这样,网站实现弹出框的效果就使用Drupal自带的Overlay就行了,赶紧试试吧。
时间: 2024-10-16 06:53:14