当前位置:首页 > CMS教程 > 其它CMS > 列表

Drupal Overlay 应用到指定页面2种方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-12-05 11:15:44 浏览: 评论:0 

如果想让Drupal的非管理页面也出现在Overlay覆盖层中或者使用Drupal默认的Overlay模块作为普通的弹出框口来使用,那么我介绍2个方法帮助你实现.

Drupal Overlay 应用到指定页面2种方法

方法一:加入到 admin_paths

应该说是这个方法是最快的,在一个模块中重新定义其在hook_menu定义的菜单项到hook_admin_paths_alter()来实现,那些路径属于admin_path的,即用来决定哪些页面将被呈现为Overlay叠加层样式,模块应要求Overlay模块的依赖,以确保其他页面都作为有效覆盖渲染.

你可以让其他模块定义的页面作为管理页面,代码如下:

  1. function mymodule_admin_paths_alter(&$paths) { 
  2.   $path['node/*'] = TRUE; 
  3.   $path['node/*/view'] = TRUE; 
  4.   $path['node/*/backlinks'] = FALSE; 
  5. //开源软件:phpfensi.com 

通常情况下,每个模块实现hook_admin_paths()来设置他们自定义的菜单项是管理页面,这意味着,一个网页是不是一个管理页面,该页面的路径不会被添加到返回的数组.

hook_admin_paths() 是在您自己的模块中定义的菜单项执行,重新定义时,从其他模块中定义的菜单项管理页面,你需要用hook_admin_paths_alter() 来实现.

即定义当前模块中定义的页面是否为管理页面,代码如下:

  1. function hook_admin_paths() { 
  2.   $paths = array
  3.     'mymodule/*/add' => TRUE, 
  4.     'mymodule/*/edit' => TRUE, 
  5.   ); 
  6.   return $paths

方法二 使用Overlay Paths

您也可以使用Overlay Paths模块,它是一个简单的模块,使管理员能够使用非管理页面到Overlay叠加层中,这意味着您可以复用Overlay作为弹出窗口而不用添加更多的JavaScript库到您的网站来实现类似的Modal功能.

使用Overlay Paths定义的API作为钩子即可实现,代码如下:

  1. /** 
  2.  * Implement hook_overlay_paths(). 
  3.  */ 
  4. function mymodule_overlay_paths() { 
  5.   $paths = array
  6.     'user' => TRUE, 
  7.   ); 
  8.   return $paths

这样,网站实现弹出框的效果就使用Drupal自带的Overlay就行了,赶紧试试吧.

Tags: Drupal Overlay Drupal指定页面

分享到: