思想:
修改portal页面调用的webpage.class.inc.php,在这里面加入我们想要的什么按钮啊,图片啊,表单啊
表单参数传给修改语言的脚本
完成后,自动跳转到portal页面
附件:
图标元素:中国国旗logo,美国国旗logo
vim main.php
vim conf.php
下载图标元素到itop的images:
[email protected]:/home/itsm# cd /var/www/html/images/ wget http://php.chinaunix.net/images/flags/usa.png wget http://php.chinaunix.net/images/flags/chn.png mv chn.png chinese.jpg mv usa.png english.jpg
修改webpage.class.inc.php
[email protected]:/var/www/html/images# cd ../application/ [email protected]:/var/www/html/application# cp webpage.class.inc.php webpage.class.inc.php.0418 [email protected]:/var/www/html/application# vim webpage.class.inc.php [email protected]:/var/www/html/portal/language# vim conf.php 修改itop 的url if (class_exists(‘MetaModel‘) && MetaModel::GetConfig()) { echo "<link rel=\"shortcut icon\" href=\"".utils::GetAbsoluteUrlAppRoot()."images/favicon.ico?itopversion=".ITOP_VERSION."\" />\n"; } $myUserID = UserRights::GetUserId(); if (Dict::GetUserLanguage()=="EN US"){$mylanguage = "ZH";$lanuage_logo ="../images/chinese.jpg";$title="切换到中文";} if (Dict::GetUserLanguage()=="ZH CN"){$mylanguage = "EN";$lanuage_logo ="../images/english.jpg";$title="switch to English";} echo "</head>\n"; echo "<body>\n"; $logo1 = ‘<div id="logo"></div>‘; $logo2 = " <div id=\"logo\"> "; $logo2 .= " <form action=language/main.php method=\"post\"> "; $logo2 .= "<input type=\"hidden\" value=\"{$myUserID}\" name=\"user_id\" />"; $logo2 .= " <input type=\"hidden\" value=\"{$mylanguage}\" name=\"lang\" />"; $logo2 .= " <input type=\"image\" src={$lanuage_logo} width=\"32\" heigth=\"32\" title=\"{$title}\" onclick=\"this.submit()\" style=\"position:absolute;right:30px;top:00px\" />"; $logo2 .= "</form>"; $logo2 .= "<a href=‘../‘><img width=\"22\" heigth=\"22\" title=\"Go to console\" src=\"../images/switch.jpg\" style=\"position:absolute;right:0px;top:00px\"></a> "; $logo2 .= "</div> "; $myhtml = self::FilterXSS($this->s_content); echo str_replace($logo1,$logo2,$myhtml); if (trim($s_captured_output) != "") { echo "<div class=\"raw_output\">".self::FilterXSS($s_captured_output)."</div>\n"; }
被调用的php脚本
[email protected]:/var/www/html/itop.new/portal/language# vim conf.php <?php //itop的webseervice 接口 define("URL", "https://itsmtest.logo.cn:11443/itop.new/webservices/rest.php"); #define("URL", "https://itsm-uat.logo.cn/webservices/rest.php"); #define("URL", "https://itsm.logo.cn/webservices/rest.php"); $aConfig = array( ‘itop_user‘ => ‘admin‘, ‘itop_pass‘ => ‘password‘, ); ?>
主程序:
[email protected]:/var/www/html/itop.new/portal/language# vim main.php <?php function request_post($url, $param) { if (empty($url) || empty($param)) return false; $postUrl = $url; $curlPost = $param; $ch = curl_init(); //初始化curl curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_URL,$postUrl); //抓取指定网页 curl_setopt($ch, CURLOPT_HEADER, 0); //设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1); //post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch); //运行curl curl_close($ch); return json_decode($data,true); //把返回的数据转换成json格式 } //检查与itop通信是否正常 function check_itop_network (){ $url = URL; $get1 = request_post($url,"test"); $get=$get1[‘message‘]; if(!strstr($get,"Missing parameter" )){ echo "与 itop 连接失败!\n"; exit; } } //itop 的 webservice 接口,可以对itop中符合Data Model进行增删改查 function Action_update($class,$key,$fields){ global $aConfig; $url = URL; $post_data[‘version‘] = ‘1.0‘; $post_data[‘auth_user‘]= $aConfig[‘itop_user‘]; $post_data[‘auth_pwd‘] = $aConfig[‘itop_pass‘]; $post_data[‘json_data‘]= "{ \"operation\": \"core/update\", \"class\": \"{$class}\", \"key\": $key, \"output_fields\": \"*\", \"fields\": { $fields } , \"comment\": \"\" }"; return request_post($url, $post_data); } #******************************************************************************** # Main #******************************************************************************** require "conf.php"; //检查与itop联络状态 check_itop_network(); $ldap_id = $_POST[‘user_id‘]; $ldap_lang = $_POST[‘lang‘]; if($ldap_lang == "EN"){$fields="\"language\": \"EN US\"";} if($ldap_lang == "ZH"){$fields="\"language\": \"ZH CN\"";} Action_update(‘UserLDAP‘,$ldap_id,$fields) ; header("Location: ../index.php"); ?>
访问测试:https://itsm.logo.cn/portal/index.php
时间: 2024-08-01 22:47:09