[1.6.4][frontend]インポート・エクスポート画面「back」ボタンパッチ
エクスポートする際に、適当な
ホスト・テンプレート・アイテム・トリガー・グラフ等の
チェックボックスを有効にしてから、プレビュー画面へ
移動し、「back」ボタンで戻った際、
テンプレート・アイテム・トリガー・グラフの
チェック状態がクリアされてしまう不具合を発見しました
ソースコードを見てみると、内部で、既存の変数を使って
別の処理を行ってしまっており、変数内容を破壊している
ようでしたので、パッチをあててみました
<code>
--- C:/exp_imp.php Fri Apr 03 23:44:07 2009
+++ C:/exp_imp.php.patched Tue May 26 11:50:37 2009
@@ -55,6 +55,7 @@
/*,
"screens"=> array(T_ZBX_INT, O_OPT, null, DB_ID, null) */
/* actions */
+ 'back'=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL),
"preview"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL),
"export"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL),
"import"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL)
@@ -326,8 +327,8 @@
' WHERE '.DBcondition('hostid',$hostids).
' GROUP BY hostid';
$result = DBselect($sql);
- while($templates=DBfetch($result)){
- $hosts[$templates['hostid']]['templates_cnt'] = $templates['cnt'];
+ while($templates_db=DBfetch($result)){
+ $hosts[$templates_db['hostid']]['templates_cnt'] = $templates_db['cnt'];
}
// items
$sql = 'SELECT hostid,count(itemid) as cnt '.
@@ -335,8 +336,8 @@
' WHERE '.DBcondition('hostid',$hostids).
' GROUP BY hostid';
$result = DBselect($sql);
- while($items=DBfetch($result)){
- $hosts[$items['hostid']]['items_cnt'] = $items['cnt'];
+ while($items_db=DBfetch($result)){
+ $hosts[$items_db['hostid']]['items_cnt'] = $items_db['cnt'];
}
// triggers
$sql = 'SELECT count(DISTINCT f.triggerid) as cnt, i.hostid '.
@@ -345,8 +346,8 @@
' AND '.DBcondition('i.hostid',$hostids).
' GROUP BY i.hostid';
$result = DBselect($sql);
- while($triggers=DBfetch($result)){
- $hosts[$triggers['hostid']]['triggers_cnt'] = $triggers['cnt'];
+ while($triggers_db=DBfetch($result)){
+ $hosts[$triggers_db['hostid']]['triggers_cnt'] = $triggers_db['cnt'];
}
// graphs
$sql = 'SELECT count(DISTINCT gi.graphid) as cnt, i.hostid '.
@@ -355,8 +356,8 @@
' AND '.DBcondition('i.hostid',$hostids).
' GROUP BY i.hostid';
$result = DBselect($sql);
- while($graphs=DBfetch($result)){
- $hosts[$graphs['hostid']]['graphs_cnt'] = $graphs['cnt'];
+ while($graphs_db=DBfetch($result)){
+ $hosts[$graphs_db['hostid']]['graphs_cnt'] = $graphs_db['cnt'];
}
foreach($hosts as $hostid => $host){
</code>
kodai - 投稿数: 1341
パッチ投稿ありがとうございます。
利用させて頂こうと思います。