itop portal 页面添加中英文切换按钮

思想:
修改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

itop portal 页面添加中英文切换按钮的相关文章

itop portal 页面语言切换图标按钮,界面跳转按钮,完美解决

主要修改:修改类文件,webpage.class.inc.php 加入变量,函数,功能改写修改language 配置文件,不再需要手动修改itop webservice的url,前提是itop自己的配置文件,root_url后面带有/符号 修改application/webpage.class.inc.php 在56行下面添加     protected $s_userid;     protected $s_userlanguage; 修改application/webpage.class.i

itop 各图标的超链接 ,portal 与 主界面 切换按钮

首页                 'app_icon_url' => array(                         'type' => 'string',                         'description' => 'Hyperlink to redirect the user when clicking on the application icon (in the main window, or login/logoff pages)',  

QT in VS 多语言实现(中英文切换,每个步骤都有截图,只有UTF8才能让Qt语言家正确读取。先qApp-&gt;removeTranslator,然后installTranslator,每个类都要写上槽函数RetranslateUI)

最近项目需要软件具有中英文双语切换功能,而QT又自带此功能,现将实现方式记录下来. 说到中英文切换,少不了要了解QT的内部编码方式.在此就不详述QT编码方式了,具体可参考 彻底弄懂Qt的编码.只需要记住QT采用utf-8编码!window操作系统采用ansi编码,简体中文操作系统的ansi代表gbk. 1. 生成.ts文件前置步骤:所有需要翻译的内容用QObject::tr()包起来.具体自行了解一下QObject::tr()的功能. 先创建一个factory类: // factory.cppf

Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮

昨天一同事问我如何在sharepoint2013的NewForm.aspx页面上添加一个 save and new的button.实现save 和new的功能,save的功能和默认的save按钮效果一至. 效果如图: 这里的思路如下: 1)用juqery来动态添加一个saveandnew的button 2)新建按钮的click事件将要调用默认save 按钮的click方法 3)新按钮的click事件后页面跳转主要取决于url的Source参数,所以我们必须改写获取该参数的方法,该参数的读取是在i

博客园页面添加返回顶部TOP按钮

1. 进入网页管理->设置 2. 在"页面定制CSS代码"中添加如下css样式,当然你可以改为自己喜欢的样式 #back-to-top { background-color: #00CD00; bottom: 0; box-shadow: 0 0 6px #00CD00; color: #444444; padding: 10px 10px; position: fixed; right: 50px; cursor: pointer; } 3. 在"页脚Html代码&q

如何给magento的产品页面添加返回按钮

如何给magento的产品页面添加返回按钮,最模板提供教程 第一步: 打开 E:\xampp\htdocs\magento\skin\frontend\default\bluescale\css\styles.css 在底部添加返回按钮css代码,如下: /* Back Button */ .product-b 如何给magento的产品页面添加返回按钮,最模板提供教程 第一步: 打开 E:\xampp\htdocs\magento\skin\frontend\default\bluescale

C# 在PDF页面添加打印按钮

简述 在文档中设置按钮给我们提供了一种快速操作文档的方式,简洁省事,应用于程序中能够有效的提升客户满意度.在前一篇文章中讲述了如何在PDF文档中设置页面的跳转按钮,包括跳转至指定页,包括首页.下一页.上一页.最后一页,同时也可以自定义跳转页.本篇文章将介绍如何在PDF文档页面中添加打印按钮. 使用工具 Spire.PDF for .NET 版本 4.0注:安装该类库后,注意在项目程序中添加引用Spire.Pdf.dll.dll文件可以在安装路径下的Bin文件夹中获取. 代码示例(供参考)步骤 1

用户界面框架jQuery EasyUI示例大全之切换按钮和分页演示

<jQuery EasyUI最新试用版免费下载> jQuery EasyUI致力于帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.jQuery EasyUI提供了基于当下流行的jQuery core和HTML5的控件,助您打造适合当今网络的应用程序. 基本的切换按钮 本演示主要展示了基本的切换按钮,点击切换按钮来改变其状态.[另附源代码供大家参考] |在线Demo 切换按钮操作 本演示主要展示了切换按钮操作,点击按钮来执行操作.[另附源代码供大家参考] |在线Demo 基本的分页 本

使用jquery插件kkpager为页面添加分页

首先下载kkpager插件:https://github.com/pgkk/kkpager 1.将下载下来的js和css拷贝到项目中,在需要分页的页面引入kkpager插件所需的js和css,如下: <script type="text/javascript" src="js/kkpager.js"></script> <script type="text/javascript" src="js/jquer