请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 61|回复: 0

[功能实施] 二次开发-开发方法-扩展API

[复制链接]
发表于 2020-12-15 16:09:34 | 显示全部楼层 |阅读模式
扩展API
除了修改XML数据模型外,还可以通过所谓的扩展在iTop中实现特定的行为。
总览
扩展由PHP代码组成。在构建HTTP请求的答案时,iTop将调用您的代码。例如,可以挂钩对象的显示器以显示更多信息。
在实践中,您的代码包含声明一个PHP类,该类实现了iTop称为扩展接口的接口。 iTop会自动检测您的类的存在,并在其执行过程中的某些特定时刻调用方法。
为此,您的类的代码必须位于iTop包含的文件中。推荐的方法是将代码放入main.my-module.php文件中(请参阅模块内容).
一个例子
假设我们有基于Web的应用,它在服务器的可用性上提供了一些高级报告。我们想提供一个超链接,以便终端用户可以从iTop中的服务器的详细信息跳转到监控应用中的相应报告。
一种可能的解决方案是在所有服务器上向监控应用超级链接显示到“操作活动”弹出菜单中。
实施包含实现接口iPopupMenuExtension:
main.mymodule.php
class MyPopupExtension implements iPopupMenuExtension{   public static function EnumItems($iMenuId, $param)   {      if ($iMenuId == self::MENU_OBJDETAILS_ACTIONS)      {         $oObject = $param;         if ($oObject instanceof Server)         {             $sUID = 'MyPopupExtension-Monitoring'; // Make sure that each menu item has a unique "ID"             $sLabel = 'Monthly report';             $sURL = 'http://myapp/show_report?server_fqdn='.$oObject->Get('name');             $sTarget = '_blank';             $oMenuItem = new URLPopupMenuItem($sUID, $sLabel, $sURL, $sTarget);             return ($oMenuItem);         }      }      return ();   }}
在某些情况下,iTop将调用EnumItems方法。显示对象的详细信息时,$ params是目标对象。
由于将为任何类型的对象调用我们的方法,因此我们必须过滤器淘汰与此功能不相关的对象类。
如您所见,可以使用相同的扩展名($ iMenuId和$ param上的依赖)处理几种类型的对象和多种类型的菜单。
此插件的成果是任何服务器的详细信息页面上的附加菜单项:
接口引用文档
扩展的API引用
有几个用于扩展iTop的接口。每个接口都对应于特定的扩展类型,如下表所示:
接口描述
iApplicationUIExtension为某些对象的GUI行为(在显示详细信息或编辑对象时),可将该接口实现为变更的GUI行为。
iApplicationObjectExtension实现此接口以在创建,更新或删除对象时执行特定的操作活动
iPageUIExtension实现此接口以将内容添加到任何iTopWebPage(左侧包含iTop菜单的网页)
iPopupMenuExtension在iTop的“弹出”菜单中添加菜单项。





上一篇:二次开发-开发方法-表单字段预填
下一篇:二次开发-开发方法-扩展API

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2021-1-21 01:14 , Processed in 0.154220 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表